초보자를 위한 ASP.NET MVC 자습서:이란 무엇입니까? Archi강의

⚡ 스마트 요약

ASP.NET MVC는 오픈 소스입니다. Microsoft 웹 애플리케이션을 모델, 뷰, 컨트롤러 계층으로 분리하는 프레임워크로, 개발자에게 HTML에 대한 완벽한 제어권, 테스트 가능한 코드, 깔끔한 라우팅, 그리고 기존 웹 폼보다 가벼운 대안을 제공합니다.

  • 🏛️ Archi강의: 모델은 도메인 데이터를 저장하고, 뷰는 Razor를 사용하여 UI를 렌더링하며, 컨트롤러는 이 둘 사이의 모든 요청을 중개합니다.
  • MVC를 사용하는 이유: 웹 폼의 ViewState 및 성능 오버헤드 문제를 해결하고 깔끔한 라우팅과 테스트 주도 개발을 가능하게 합니다.
  • 🔀 라우팅 : 경로 기반 URL들어오는 요청을 컨트롤러 액션에 매핑하여 파일 기반 .aspx 파일을 대체합니다. URLSEO 친화적인 경로를 가진 s.
  • 🧪 테스트 가능성: 뷰에는 비즈니스 로직이 없기 때문에 컨트롤러와 모델은 독립적으로 단위 테스트를 수행할 수 있습니다.
  • ⚖️ 웹 양식 비교: 웹 폼은 이벤트 기반 서버 컨트롤을 사용하고, MVC는 요청 기반 액션과 수동 상태 관리를 사용합니다.
  • 🛠️ 최고의 연습: 비즈니스 로직은 모델에 유지하고, 컨트롤러는 간결하게 유지하며, 부분 뷰 또는 레이아웃을 사용하여 마크업을 재사용하세요.

ASP.NET MVC 튜토리얼

ASP.NET MVC란?

ASP.NET MVC 오픈 소스 웹 개발 프레임워크입니다. Microsoft ASP.NET MVC는 모델-뷰-컨트롤러(MVC) 아키텍처를 제공합니다. 웹 애플리케이션 구축을 위한 ASP.NET 웹 폼의 대안으로 사용될 수 있습니다. 웹 앱을 구축, 배포 및 실행하기 위한 .NET 플랫폼의 일부입니다. HTML, CSS, jQuery 등을 사용하여 웹 앱과 웹사이트를 개발할 수 있습니다. Java대본 등

초보자를 위한 MVC의 모든 기본 개념을 다루는 이 ASP.NET MVC 튜토리얼로 MVC를 배워보세요:

ASP.NET MVC를 사용하는 이유는 무엇일까요?

웹 양식은 매우 성공적이었지만, Microsoft 개발에 대한 생각ping ASP.NET MVC. ASP.NET 웹폼의 주요 문제는 성능입니다.

안에 웹 애플리케이션, 성능을 정의하는 네 가지 주요 측면이 있습니다.

  • 응답 시간 문제
  • 단위 테스트 문제
  • HTML 사용자 정의
  • 코드 숨김 클래스의 재사용성

ASP.NET MVC는 위의 기준에서 탁월한 성능을 보여줍니다.

MVC 버전 기록

ASP.NET MVC1

  • 13년 2009월 XNUMX일 출시
  • 이 프로그램은 .NET 3.5에서 실행됩니다.
  • 비주얼 스튜디오 2008
  • WebForm Engine을 사용한 MVC 패턴 아키텍처
  • 주요 기능에는 HTML 및 단위 테스트, Ajax 도우미, 라우팅 등

ASP.NET MVC2

  • 이 버전은 10년 2010월 XNUMX일에 출시되었습니다.
  • .NET 3.5, 4.0에서 실행됩니다. Microsoft 비주얼 스튜디오 2008
  • 템플릿 기반 도우미, 자동 스캐폴딩 및 사용자 정의 가능한 템플릿을 갖춘 UI 도우미와 같은 기능을 포함합니다.
  • 클라이언트 및 서버 측에서 모델 유효성 검사를 적용하기 위해 DataAnnotations 속성을 지원합니다.

ASP.NET MVC3

  • 13년 2011월 XNUMX일에 출시되었습니다.
  • .NET 4.0 및 다음에서 실행됩니다. Microsoft 비주얼 스튜디오 2010
  • N의 사용uGet 소프트웨어를 제공하고 플랫폼 전반에 걸쳐 종속성을 관리할 수 있습니다.
  • 더 나은 JavajQuery 유효성 검사 및 JSON 바인딩을 통한 스크립트 지원
  • 이 플랫폼은 Razor 뷰 엔진 및 향상된 데이터 주석 속성과 같은 기능을 제공하여 클라이언트와 서버 양쪽에서 모델 유효성 검사를 지원합니다.

ASP.NET MVC4

  • 이 버전은 2012년 XNUMX월에 출시되었습니다.
  • .NET 4.0, 4.5 및 Visual Studio 2010 및 Visual Studio 2012에서 실행됩니다.
  • 기본 프로젝트 템플릿의 개선 사항
  • jQuery Mobile을 사용한 모바일 프로젝트 템플릿, 비동기 컨트롤러에 대한 작업 지원, 번들링, 최소화 등의 기능을 제공합니다.

ASP.NET MVC5

  • 17년 2013월 XNUMX일 출시
  • .NET 4.5, 4.5.1 및 Visual Studio 2012, Visual Studio 2013에서 실행됩니다.
  • MVC에서 속성 라우팅을 지원합니다.

MVC의 특징

  • 쉽고 마찰 없는 테스트 가능성
  • HTML을 완벽하게 제어하고, Java스크립트 및 URLs
  • 기존 활용 ASP.NET 기능
  • ASP.NET용 새로운 프레젠테이션 옵션
  • ASP.NET 프로그래밍을 더 간단하게 하는 방법
  • 명확한 로직 분리: 모델, 뷰, 컨트롤러
  • 테스트 주도 개발
  • 병렬 개발 지원

MVC 애플리케이션 생성 시 기억해야 할 사항

다음은 MVC 응용 프로그램을 만들 때 기억해야 할 ASP.NET MVC 자습서의 몇 가지 유용한 사항입니다.

  • ASP.NET MVC는 ASP.NET 웹 폼 기반 애플리케이션을 대체하는 것이 아니라는 점을 명심해야 합니다.
  • MVC 앱 개발 접근 방식은 특정 개발 요구 사항에 맞춰 애플리케이션 요구 사항과 ASP.NET MVC에서 제공하는 기능을 기반으로 결정해야 합니다.
  • ASP.NET MVC를 사용한 애플리케이션 개발 과정은 웹 폼 기반 애플리케이션에 비해 더 복잡합니다.
  • 애플리케이션 작업을 분리하면 애플리케이션 유지 관리 가능성이 항상 높아집니다.

MVC 아키텍처 패턴

MVC 아키텍처 패턴

MVC는 관심사 분리 원칙을 따르는 소프트웨어 아키텍처 패턴입니다. 이 모델에서 .NET 애플리케이션은 모델, 뷰, 컨트롤러라는 세 가지 상호 연결된 부분으로 나뉩니다.

MVC 패턴의 목표는 이러한 각 부분을 상대적으로 분리하여 개발하고 테스트하며 결합하여 매우 강력한 애플리케이션을 만드는 것입니다.

이제 그것들을 모두 자세히 살펴보겠습니다.

모델

모델 객체는 애플리케이션의 논리를 구현하는 애플리케이션의 일부입니다. 데이터 도메인. 데이터베이스에서 모델 상태를 검색하고 저장합니다. 예를 들어, 제품 개체는 다음에서 정보를 검색할 수 있습니다. 데이터베이스, 이를 조작합니다. 그런 다음 SQL 서버의 제품 테이블에 정보를 다시 씁니다.

조회수

뷰는 애플리케이션의 사용자 인터페이스(UI)를 표시하는 데 사용되는 구성 요소이며, MVC에서는 뷰모델이라고도 합니다. 뷰는 모델 데이터를 기반으로 생성된 .NET MVC 애플리케이션을 표시합니다.

일반적인 예로는 항목 테이블의 편집 뷰가 있습니다. 제품 및 개체의 현재 상태에 따라 텍스트 상자, 팝업 및 체크 상자를 표시합니다.

제어 장치

컨트롤러는 사용자 상호작용을 처리하고, 모델을 조작하며, UI를 표시할 뷰를 선택합니다. .NET MVC 앱에서 뷰는 정보만 표시하고, 컨트롤러는 MVC의 액션 필터를 사용하여 사용자 입력 및 상호작용을 관리하고 응답합니다.

예를 들어 컨트롤러는 쿼리 문자열 값을 관리하고 해당 값을 모델에 전달합니다.

웹 양식과 MVC

파라미터 웹폼 MVC
모델 ASP.NET 웹 폼은 이벤트 기반 개발 모델을 따릅니다. ASP.NET MVC는 MVC 패턴 기반 개발 모델을 사용합니다.
이후 사용 2002년부터 존재해왔어 2009년에 처음 출시된
보기 상태 지원 ASP.NET 웹 폼은 클라이언트 측 상태 관리를 위해 뷰 상태를 지원합니다. .NET MVC는 뷰 상태를 지원하지 않습니다.
URL 유형 ASP.NET 웹 폼은 파일 기반입니다. URLs. 즉, 파일 이름이 존재한다는 뜻입니다. URL그리고 그것들은 물리적으로 존재해야 합니다. ASP.NET MVC는 경로 기반 방식을 사용합니다. URL즉, URL컨트롤러와 액션으로 리디렉션되는 s입니다.
통사론 ASP.NET 웹 폼은 웹 폼 구문을 따릅니다. ASP.NET MVC는 사용자 정의 가능한 구문을 따릅니다.
보기 유형 웹 폼과 뷰는 밀접하게 연결되어 있습니다. Code (ASPX-CS) 뒤에 있는 것, 즉 논리입니다. MVC, 뷰 및 로직은 항상 별도로 유지됩니다.
일관된 디자인과 느낌 일관된 모양을 위한 마스터 페이지가 있습니다. ASP.NET MVC는 일관된 디자인을 위한 레이아웃을 제공합니다.
Code 재사용 성 Web Form은 코드 재사용을 위한 사용자 컨트롤을 제공합니다. ASP.NET MVC는 코드 재사용성을 위해 부분 뷰를 제공해 왔습니다.
HTML 제어 Less 렌더링된 HTML을 제어합니다. HTML에 대한 모든 권한
상태 관리 제어의 자동 상태 관리. 수동 상태 관리.
TDD 지원 약한 TDD 또는 사용자 정의 TDD가 필요합니다. TDD를 장려하고 포함합니다.

ASP.NET MVC의 장점

  • 기본적으로 유지 관리 가능성이 높은 애플리케이션
  • 이를 통해 애플리케이션의 모든 구성 요소를 교체할 수 있습니다.
  • 테스트 주도 개발에 대한 더 나은 지원
  • 모델, 뷰, 컨트롤러를 구분해 놓았기 때문에 복잡한 애플리케이션을 쉽게 관리할 수 있습니다.
  • 전면 컨트롤러 패턴으로 강력한 라우팅 메커니즘 제공
  • 보기 상태 및 서버 기반 양식을 제거하여 애플리케이션 동작에 대한 더 나은 제어 기능을 제공합니다.
  • .NET MVC 애플리케이션은 대규모 개발자 및 웹 디자이너 팀의 지원을 받습니다.
  • 이는 응용 프로그램의 동작을 더 강력하게 제어할 수 있는 기능을 제공합니다. 또한 서버에 대한 요청에 최적화된 대역폭을 사용합니다.

ASP.NET MVC의 단점

  • .aspx 페이지처럼 디자인 페이지 미리보기를 볼 수 없습니다.
  • 실제 디자인을 보려면 매번 프로그램을 실행해야 합니다.
  • 애플리케이션의 흐름을 이해하는 것이 어려울 수 있습니다.
  • 구현하기가 상당히 복잡하므로 소규모 애플리케이션에는 이상적인 옵션이 아닙니다.
  • MVC 패턴에 대한 깊은 이해가 필요하므로 ASP.NET용 MVC를 배우기가 어렵습니다.

ASP.NET MVC를 사용하는 동안 최고의 사례

  • 규모가 크고 복잡한 코드의 경우, 원치 않는 상황을 방지하기 위해 모델용으로 별도의 어셈블리를 생성하십시오.
  • 모델에는 비즈니스 로직, 세션 유지 관리, 유효성 검사 부분, 데이터 로직 부분이 포함되어야 합니다.
  • VIEW에는 비즈니스 로직 및 세션 유지 관리가 포함되어서는 안 됩니다. ViewData를 사용하여 View의 데이터에 액세스하세요.
  • 비즈니스 로직 및 데이터 접근은 컨트롤러에서 절대 발생해서는 안 됩니다.
  • 컨트롤러는 뷰 준비 및 반환, 모델 호출, 작업 리디렉션 등의 작업만 담당해야 합니다.
  • 애플리케이션을 생성할 때 데모 코드를 삭제하세요(AccountController 삭제).
  • HTML과 프로그래밍 코드의 조합이므로 특정 뷰 엔진만 사용하여 뷰에서 HTML 마크업을 생성하세요.

자주 묻는 질문

예. GitHub Copilot은 액션 메서드, 라우트 속성 및 해당 Razor 뷰를 포함하는 컨트롤러 클래스를 생성할 수 있습니다. Rev생성된 코드를 프로젝트에 추가하기 전에 모델 바인딩 및 권한 부여가 올바른지 확인하십시오.

머신러닝 기반 어시스턴트는 웹 폼 페이지를 컨트롤러와 뷰에 매핑하고, 코드 비하인드를 액션 메서드로 변환하며, ViewState 사용 여부를 표시할 수 있습니다. 하지만 개발자는 여전히 라우팅, 모델 바인딩, 그리고 마이그레이션된 모든 비즈니스 규칙을 검증해야 합니다.

ViewData는 문자열을 키로 하는 객체 사전으로, 한 번의 요청 동안 유지됩니다. ViewBag은 ViewData를 동적으로 감싸는 래퍼입니다. TempData는 세션 상태를 사용하며 한 번의 리디렉션 동안 유지되므로, 연속적인 두 요청 간에 데이터를 전달하는 데 사용됩니다.

라우팅 엔진은 들어오는 요청을 일치시킵니다. URL RouteConfig에 등록된 템플릿과 비교하여 일치하는 템플릿을 찾습니다. 템플릿이 일치하면 MVC는 컨트롤러와 액션을 선택하고, 필요한 매개변수를 바인딩한 후 액션을 호출하여 ActionResult를 반환합니다.

Razor는 .cshtml 또는 .vbhtml 파일 내에 C# 또는 VB.NET 코드를 삽입하기 위한 간결한 구문입니다. @ 연산자를 사용하여 HTML과 코드 간 전환이 가능하고, 템플릿의 가독성을 유지하며, 런타임에 빠르고 강력한 형식의 클래스로 컴파일됩니다.

기존 ASP.NET MVC는 완전한 .NET 프레임워크에서 실행됩니다. Windows 오직 ASP.NET Core MVC만이 .NET Core에서 실행됩니다. Windows, 리눅스 및 macOS이 플랫폼은 웹 API와 통합 컨트롤러 모델을 사용하며, 내장된 의존성 주입 기능을 제공합니다.

ASP.NET Identity 또는 외부 공급자를 사용하세요. Azure 로그인에는 AD를 사용합니다. 컨트롤러 또는 액션에 [Authorize] 속성을 추가하여 접근을 제한하고, 역할 또는 정책 매개변수를 사용하여 더욱 세밀한 규칙을 설정할 수 있습니다.

테스트 메서드에서 컨트롤러 인스턴스를 생성하고, 생성자를 통해 가짜 또는 모의 서비스를 주입하고, 액션을 호출한 다음, 반환된 ActionResult가 예상되는 뷰 이름, 모델 또는 리디렉션 대상과 일치하는지 검증합니다.

이 게시물을 요약하면 다음과 같습니다.