ASP.Net MVC 개요
모델-뷰-컨트롤러( MVC) 아키텍처 패턴은 애플리케이션을 모델, 뷰, 컨트롤러의 세 가지 주요 구성 요소로 나눕니다. ASP.NET MVC 프레임워크는 웹 애플리케이션 생성을 위해 ASP.NET Web Forms 모드에 대한 대체 모드를 제공합니다. ASP.NET MVC 프레임워크는 웹 양식 기반 응용 프로그램과 같이 마스터 페이지 및 멤버십 기반 인증과 같은 기존 ASP.NET 기능과 통합되는 매우 테스트하기 쉽고 가벼운 프레젠테이션 프레임워크입니다. MVC 프레임워크는 System.Web.Mvc 어셈블리에 정의되어 있습니다.
MVC 디자인 패턴
MVC는 많은 개발자에게 친숙한 표준 디자인 패턴입니다. 일부 유형의 웹 애플리케이션은 MVC 프레임워크의 이점을 누릴 수 있습니다. 일부 유형은 Web Forms 및 포스트백을 기반으로 하는 기존 ASP.NET 애플리케이션 패턴을 계속 사용합니다. 다른 유형의 웹 애플리케이션은 이 두 가지 방법을 결합합니다. 두 가지 방법은 서로 배타적입니다.
MVC 프레임워크에는 다음 구성 요소가 포함됩니다.
모델. 모델 객체는 애플리케이션 데이터 도메인 로직을 구현하는 애플리케이션 구성 요소입니다. 일반적으로 모델 객체는 모델 상태를 검색하여 데이터베이스에 저장합니다. 예를 들어 Product 개체는 데이터베이스에서 정보를 검색하고 해당 정보를 조작한 다음 업데이트된 정보를 SQL Server 데이터베이스 내의 Products 테이블에 다시 쓸 수 있습니다.
소형 애플리케이션에서는 모델이 실제로 분리되기보다는 개념적으로 분리되는 경우가 많습니다. 예를 들어, 애플리케이션이 데이터 세트를 읽고 이를 뷰로 보내는 경우 애플리케이션에는 물리적 모델 계층 및 관련 클래스가 없습니다. 이 경우 데이터세트가 모델 개체 역할을 합니다.
보기. 보기는 애플리케이션 사용자 인터페이스(UI)를 표시하는 구성 요소입니다. 일반적으로 이 UI는 모델 데이터를 사용하여 생성됩니다. 보기의 예로는 제품 개체의 현재 상태에 따라 텍스트 상자, 드롭다운 목록 및 확인란을 표시하는 제품 테이블의 편집 보기가 있습니다.
컨트롤러. 컨트롤러는 사용자 상호 작용을 처리하고, 모델을 사용하고, 궁극적으로 렌더링할 뷰를 선택하여 UI를 표시하는 구성 요소입니다. MVC 애플리케이션에서 보기는 정보만 표시하고 사용자 입력 및 상호 작용을 처리하고 응답합니다. 예를 들어 컨트롤러는 쿼리 문자열 값을 처리하고 이 값을 모델에 전달하며 모델은 이 값을 사용하여 데이터베이스를 쿼리할 수 있습니다.
MVC 패턴은 애플리케이션의 다양한 측면(입력 로직, 비즈니스 로직, UI 로직)을 분리하는 동시에 이러한 요소들 간의 느슨한 결합을 제공하는 애플리케이션을 만드는 데 도움이 됩니다. 이 패턴은 애플리케이션에서 각 논리 유형이 상주해야 하는 위치를 지정합니다. UI 로직은 뷰에 있습니다. 입력 로직은 컨트롤러에 있습니다. 비즈니스 로직은 모델에 있습니다. 이러한 분리를 사용하면 한 번에 애플리케이션의 한 측면을 구현하는 데 집중할 수 있으므로 애플리케이션을 구축할 때 복잡성을 단순화하는 데 도움이 됩니다. 예를 들어 비즈니스 로직과 관계없이 뷰에 집중할 수 있습니다.
MVC 애플리케이션의 세 가지 주요 구성 요소 간의 느슨한 결합도 병렬 개발을 촉진합니다. 예를 들어, 한 개발자는 뷰 작업을 하고, 두 번째 개발자는 컨트롤러 로직 작업을 하고, 세 번째 개발자는 모델의 비즈니스 로직에 집중할 수 있습니다.
테스트 중심 개발 지원
MVC 패턴을 사용하면 복잡성을 단순화할 수 있을 뿐만 아니라 Web Forms 기반보다 애플리케이션 테스트 작업을 더 빠르게 수행할 수 있습니다. ASP.NET 웹 애플리케이션 테스트가 더 쉬워졌습니다. 예를 들어 Web Forms 기반 ASP.NET 웹 응용 프로그램에서는 출력을 표시하고 사용자 입력에 응답하는 데 단일 클래스가 사용됩니다. Web Forms 기반 ASP.NET 응용 프로그램에 대한 자동화된 테스트를 작성하는 것은 단일 페이지를 테스트하려면 응용 프로그램에서 페이지 클래스, 모든 하위 컨트롤 및 기타 관련 클래스를 인스턴스화해야 하기 때문에 복잡한 노력이 될 수 있습니다. 페이지를 실행하기 위해 너무 많은 클래스가 인스턴스화되기 때문에 특히 애플리케이션의 단일 부분에 초점을 맞춘 테스트를 작성하기가 어려울 수 있습니다. 따라서 Web Forms 기반 ASP.NET 응용 프로그램을 테스트하는 것은 MVC 응용 프로그램을 테스트하는 것보다 구현하기가 더 어렵습니다. 또한 Web Forms 기반 ASP.NET 응용 프로그램을 테스트하려면 웹 서버가 필요합니다. MVC 프레임워크를 사용하면 구성 요소를 분리하고 인터페이스를 많이 사용할 수 있으므로 개별 구성 요소를 나머지 프레임워크와 별도로 테스트할 수 있습니다.
MVC 애플리케이션을 만드는 시기
웹 애플리케이션을 구현하기 위해 ASP.NET MVC 프레임워크를 사용할지 ASP.NET Web Forms 모델을 사용할지 신중하게 고려해야 합니다. . MVC 프레임워크는 Web Forms 모델을 대체하지 않으며 웹 애플리케이션에 두 프레임워크 중 하나를 사용할 수 있습니다. (기존 Web Forms 기반 애플리케이션이 있는 경우 해당 애플리케이션은 예전과 똑같은 방식으로 계속 작동합니다.)
특정 웹 사이트에 MVC 프레임워크 또는 Web Forms 모델을 사용하기로 결정하기 전에 다음 사항을 고려하십시오. 각 접근 방식의 장점.
ASP.NET MVC 프레임워크는 다음과 같은 이점을 제공합니다.
애플리케이션을 모델, 뷰 및 컨트롤러로 나누어 복잡한 작업을 더 쉽게 만듭니다.
뷰 상태나 서버 기반 양식을 사용하지 않습니다. 따라서 MVC 프레임워크는 애플리케이션 동작을 완벽하게 제어하려는 개발자에게 특히 적합합니다.
단일 컨트롤러를 통해 웹 애플리케이션 요청을 처리하는 전면 컨트롤러 패턴을 사용합니다. 이를 통해 풍부한 라우팅 인프라를 지원하는 애플리케이션을 설계할 수 있습니다. 자세한 내용은 전면 컨트롤러를 참조하세요.
테스트 중심 개발(TDD)에 대한 더 나은 지원을 제공합니다.
애플리케이션 동작을 엄격하게 제어해야 하는 웹 디자이너는 물론 대규모 개발자 팀이 지원하는 웹 애플리케이션에 이상적입니다.
Web Forms 기반 프레임워크에는 다음과 같은 장점이 있습니다.
HTTP를 통해 상태를 유지하는 이벤트 모델을 지원하며 이는 LOB(기간 업무) 웹 개발에 유용합니다. 응용 프로그램. Web Forms 기반 응용 프로그램은 수백 개의 서버 컨트롤에서 지원되는 많은 이벤트를 제공합니다.
페이지 컨트롤러 패턴을 사용하여 단일 페이지에 기능을 추가합니다. 자세한 내용은 페이지 컨트롤러를 참조하세요.
서버 기반 양식에 대한 보기 상태를 사용하므로 상태 정보 관리가 더 쉽습니다.
많은 수의 구성 요소가 포함된 애플리케이션을 신속하게 개발하려는 소규모 웹 개발자 및 디자이너 팀에 이상적입니다.
일반적으로 애플리케이션 개발의 경우 구성 요소(페이지 클래스, 컨트롤 등)가 긴밀하게 통합되어 있고 일반적으로 MVC 모델보다 적은 코드가 필요하기 때문에 더 간단합니다.
ASP.NET MVC 프레임워크에는 다음과 같은 기능이 있습니다.
애플리케이션 작업 분리(입력 로직, 비즈니스 로직 및 UI 로직), 테스트 가능성 및 테스트 중심 개발( TDD). MVC 프레임워크의 모든 핵심 프로토콜은 인터페이스를 기반으로 하며 애플리케이션에서 실제 개체의 동작을 모방하는 모의 개체인 모의 개체를 사용하여 테스트할 수 있습니다. ASP.NET 프로세스에서 컨트롤러를 실행하지 않고도 응용 프로그램을 단위 테스트할 수 있으므로 단위 테스트가 빠르고 유연해집니다. .NET Framework와 호환되는 모든 단위 테스트 프레임워크를 사용할 수 있습니다.
확장 가능하고 플러그 가능한 프레임워크입니다. ASP.NET MVC 프레임워크 구성 요소는 쉽게 교체하거나 사용자 지정할 수 있도록 설계되었습니다. 자체 뷰 엔진, URL 라우팅 전략, 작업 메서드 매개변수 직렬화 및 기타 구성 요소를 연결할 수 있습니다. ASP.NET MVC 프레임워크는 DI(종속성 주입) 및 IOC(제어 반전) 컨테이너 모델의 사용도 지원합니다. DI를 사용하면 클래스에 의존하여 객체 자체를 생성하는 대신 클래스에 객체를 주입할 수 있습니다. IOC는 객체에 다른 객체가 필요한지 여부를 지정합니다. 첫 번째 객체는 구성 파일과 같은 외부 소스에서 두 번째 객체를 가져와야 합니다. 이렇게 하면 테스트가 더 쉬워집니다.
이해하기 쉬운 검색 가능한 URL로 애플리케이션을 구축할 수 있는 강력한 URL 매핑 구성 요소인 ASP.NET 라우팅을 광범위하게 지원합니다. URL에는 반드시 파일 확장자가 포함될 필요는 없으며 SEO(검색 엔진 최적화) 및 REST(표현 상태 전송) 주소 지정에 적합한 URL 명명 패턴을 지원하도록 설계되었습니다.
기존 ASP.NET 페이지(.aspx 파일), 사용자 컨트롤(.ascx 파일) 및 마스터 페이지(.master 파일) 마크업 파일의 마크업을 보기 템플릿으로 사용하도록 지원합니다. 중첩된 마스터 페이지, 인라인 식(), 선언적 서버 컨트롤, 템플릿, 데이터 바인딩, 지역화 등과 같은 기존 ASP.NET 기능을 ASP.NET MVC 프레임워크와 결합하여 사용할 수 있습니다.
기존 ASP.NET 기능을 지원합니다. ASP.NET MVC를 사용하면 양식 인증 및 Windows 인증, URL 권한 부여, 멤버십 및 역할, 출력 및 데이터 캐싱, 세션 및 프로필 상태 관리, 상태 모니터링, 구성 시스템, 공급자 아키텍처와 같은 기능을 사용할 수 있습니다.
【관련 추천】
1. ASP.NET MVC와 WebForm의 차이점에 대한 심층 이해
3. 4. .NET MVC--라우팅asp.net mvc를 통해 WeChat 사용자 정의 메뉴 편집 도구를 개발하기 위한 코드 예제위 내용은 ASP.NET MVC란 무엇입니까? 요약 ASP.NET MVC의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!