asp.net-mvcasp.net-mvc 시작하기


비고

MVC (Model-View-Controller) 아키텍처 패턴은 애플리케이션을 세 가지 주요 구성 요소 (모델, 뷰 및 컨트롤러)로 구분합니다. ASP.NET MVC 프레임 워크는 웹 응용 프로그램을 만드는 ASP.NET Web Forms 패턴 대신 사용할 수 있습니다. ASP.NET MVC 프레임 워크는 (Web Forms 기반 응용 프로그램과 마찬가지로) 마스터 페이지 및 멤버 자격 기반 인증과 같은 기존 ASP.NET 기능과 통합되는 경량의 테스트 가능한 프레젠테이션 프레임 워크입니다. MVC 프레임 워크는 System.Web.Mvc 어셈블리에 정의되어 있습니다.

MVC 프레임 워크에는 다음과 같은 구성 요소가 포함됩니다.

  • 모델 . 모델 객체는 응용 프로그램의 데이터 영역에 대한 논리를 구현하는 응용 프로그램의 일부입니다. 종종 모델 객체는 모델 상태를 검색하여 데이터베이스에 저장합니다. 예를 들어, Product 개체는 데이터베이스에서 정보를 검색하고이를 조작 한 다음 업데이트 된 정보를 SQL Server 데이터베이스의 Products 테이블에 다시 쓸 수 있습니다. 작은 응용 프로그램에서 모델은 종종 물리적 인 개념이 아닌 개념적 분리입니다. 예를 들어, 응용 프로그램이 데이터 세트를 읽고 뷰로 보내는 경우 응용 프로그램에는 실제 모델 레이어 및 관련 클래스가 없습니다. 이 경우 데이터 집합은 모델 객체의 역할을 수행합니다.
  • 조회수 . 뷰는 응용 프로그램의 UI (사용자 인터페이스)를 표시하는 구성 요소입니다. 일반적으로이 UI는 모델 데이터에서 생성됩니다. 예를 들어 Product 테이블의 편집 뷰를 사용하면 Product 객체의 현재 상태를 기반으로 텍스트 상자, 드롭 다운 목록 및 확인란을 표시 할 수 있습니다.
  • 컨트롤러 . 컨트롤러는 사용자 상호 작용을 처리하고 모델과 작업하며 궁극적으로 UI를 표시하는 렌더링 할보기를 선택하는 구성 요소입니다. MVC 응용 프로그램에서보기에는 정보 만 표시됩니다. 컨트롤러는 사용자 입력 및 상호 작용을 처리하고 응답합니다. 예를 들어, 컨트롤러는 쿼리 문자열 값을 처리하고 이러한 값을 모델에 전달합니다.이 값은 모델을 쿼리하는 데 사용할 수 있습니다.

버전

번역 .NET 버전 출시일
MVC 1.0 .NET 3.5 2009-03-13
MVC 2.0 .NET 3.5 / 4.0 2010-03-10
MVC 3.0 .NET 4.0 2011 년 1 월 13 일
MVC 4.0 .NET 4.0 / 4.5 2012-08-15
MVC 5.0 .NET 4.5 2013-10-17
MVC 5.1 .NET 4.5 2014-01-17
MVC 5.2 .NET 4.5 2014-08-28
MVC 6.0 .NET 4.5 2015-11-18
코어 MVC 1.0 .NET 4.5 2016-07-12
코어 MVC 1.1 .NET 4.5 2016-11-18

안녕 MVC!

ASP.NET MVC 는 오픈 소스 웹 응용 프로그램 프레임 워크입니다. MVC 자체는 세 가지 주요 구성 요소 인 모델 뷰 컨트롤러를 기반으로 설계된 디자인 패턴입니다.

모델 - 모델은 비즈니스 객체를 반영하며 컨트롤러와 뷰간에 데이터를 전달하는 수단입니다.

보기 -보기는 모델 데이터를 렌더링하고 사용자에게 표시하는 페이지입니다. ASP.NET MVC 뷰는 일반적으로 Razor 구문을 사용하여 작성됩니다.

컨트롤러 - 컨트롤러는 클라이언트로부터 들어오는 HTTP 요청을 처리하고 일반적으로 하나 이상의 모델을 적절한보기로 반환합니다.

ASP.NET MVC 기능 :

  1. 복잡하지만 가벼운 어플리케이션 개발에 이상적
  2. 쉽게 대체되고 사용자 정의 될 수있는 확장 가능하고 플러 거블 프레임 워크를 제공합니다. 예를 들어 내장형 Razor 또는 ASPX View Engine을 사용하지 않으려면 다른 타사 뷰 엔진을 사용하거나 기존 엔진을 사용자 정의 할 수 있습니다.
  3. 논리적으로 Model, View 및 Controller 구성 요소로 나누어 응용 프로그램의 구성 요소 기반 디자인을 활용합니다. 이를 통해 개발자는 대규모 프로젝트의 복잡성을 관리하고 개별 구성 요소를 관리 할 수 ​​있습니다.
  4. MVC 구조는 모든 구성 요소가 모의 객체를 사용하여 인터페이스 기반으로 설계되고 테스트 될 수 있기 때문에 응용 프로그램의 테스트 주도 개발 및 테스트 가능성을 향상시킵니다. 따라서 ASP.NET MVC 프레임 워크는 웹 개발자 팀이 많은 프로젝트에 이상적입니다.
  5. 권한 부여 및 인증, 마스터 페이지, 데이터 바인딩, 사용자 정의 컨트롤, 멤버쉽, ASP.NET 라우팅 등과 같은 기존의 모든 광대 한 ASP.NET 기능을 지원합니다.
  6. 뷰 상태 개념 (ASP.NET에 있음)은 사용하지 않습니다. 이는 경량이며 개발자에게 완전한 제어권을 제공하는 응용 프로그램을 빌드하는 데 도움이됩니다.

간단한 MVC 응용 프로그램

우리는 사람의 세부 사항을 보여주는 간단한 MVC 애플리케이션을 만들 예정입니다. Visual Studio를 사용하여 새 MVC 프로젝트를 만듭니다. 다음과 같이 Person to Models 폴더라는 새 모델을 추가하십시오.

public class Person
{
    public string Surname { get; set; }
    public string FirstName { get; set; }
    public string Patronymic { get; set; }
    public DateTime BirthDate { get; set; }
}
 

Controllers 폴더에 새 컨트롤러 추가 :

public class HomeController : Controller
{
    //Action Method
    public ActionResult Index()
    {
        // Initialize model
        Person person = new Person
        {
            Surname = "Person_SURNAME",
            FirstName = "Person_FIRSTNAME",
            Patronymic = "Person_PATRONYMIC",
            BirthDate = new DateTime(1990, 1, 1)
        };

        // Send model to View for displaying to user
        return View(person);
    }
}
 

마지막으로 Index.cshtml 이라는 이름의 / Views / Home / 폴더에 View를 추가합니다.

@* Model for this view is Person *@
@model Hello_MVC.Models.Person

<h2>Hello @Model.FirstName !</h2>

<div>
    <h5>Details:</h5>
    <div>
        @Html.LabelFor(m => m.Surname)
        @Html.DisplayFor(m => m.Surname)
    </div>
    <div>
        @Html.LabelFor(m => m.FirstName)
        @Html.DisplayFor(m => m.FirstName)
    </div>
    <div>
        @Html.LabelFor(m => m.Patronymic)
        @Html.DisplayFor(m => m.Patronymic)
    </div>
    <div>
        @Html.LabelFor(m => m.BirthDate)
        @Html.DisplayFor(m => m.BirthDate)
    </div>
</div>