학습
학습 경로
Implement finance and operations apps - Training
Plan and design your project methodology to successfully implement finance and operations apps with FastTrack services, data management and more.
(2011년 4월 도구 업데이트 포함)
ASP.NET MVC 3은 잘 설정된 디자인 패턴과 ASP.NET 및 .NET Framework 사용하여 확장 가능한 표준 기반 웹 애플리케이션을 빌드하기 위한 프레임워크입니다.
ASP.NET MVC 2와 함께 설치되므로 지금 사용을 시작하세요!
여기에서 설치 관리자 다운로드
ASP.NET MVC 3의 새로운 기능
설치 및 도움말
ASP.NET MVC 3은 ASP.NET MVC 1 및 2를 기반으로 빌드되며 코드를 간소화하고 더 심층적인 확장성을 허용하는 훌륭한 기능을 추가합니다. 이 항목에서는 다음 섹션으로 구성된 이 릴리스에 포함된 많은 새로운 기능에 대한 개요를 제공합니다.
새로운 스캐폴딩 시스템을 사용하면 프레임워크를 완전히 접하는 경우 생산성을 더 쉽게 선택하고 사용할 수 있으며, 경험이 있고 이미 무엇을 하고 있는지 알고 있는 경우 일반적인 개발 작업을 자동화할 수 있습니다.
MvcScaffolding이라는 새 NuGet 스캐폴딩 패키지에서 지원됩니다. "스캐폴딩"이라는 용어는 많은 소프트웨어 기술에서 "편집하고 사용자 지정할 수 있는 소프트웨어의 기본 개요를 신속하게 생성"하는 데 사용됩니다. ASP.NET MVC에 대해 만드는 스캐폴딩 패키지는 여러 시나리오에서 매우 유용합니다.
MvcScaffolding의 다른 기능은 다음과 같습니다.
ASP.NET MVC 3 도구 업데이트에는 다음과 같은 이 스캐폴딩 시스템에 대한 훌륭한 Visual Studio 지원이 포함되어 있습니다.
ASP.NET MVC 3의 스캐폴딩에 대한 자세한 내용은 다음 리소스를 참조하세요.
스티브 샌더슨의 포스트 시리즈, 포함:
Scott Hanselman의 PDC 2010 세션 게시물 Microsoft "이름 없는 웹 사랑의 패키지"로 블로그 빌드
새 프로젝트 대화 상자에는 HTML 5 버전의 프로젝트 템플릿 사용 확인란이 포함되어 있습니다. 이러한 템플릿은 Modernizr 1.7을 활용하여 하위 수준 브라우저에서 HTML 5 및 CSS 3에 대한 호환성 지원을 제공합니다.
ASP.NET MVC 3에는 다음과 같은 이점을 제공하는 Razor라는 새 뷰 엔진이 제공됩니다.
몇 가지 새로운 Razor 기능에는 다음이 포함됩니다.
@model
뷰에 전달되는 형식을 지정하는 구문입니다.@* *@
주석 구문입니다.layoutpage
)을 한 번 지정하는 기능입니다.Html.Raw
HTML 인코딩 없이 텍스트를 표시하는 메서드입니다.Razor에는 다음과 같은 새 HTML 도우미도 포함되어 있습니다.
Chart
. 차트를 렌더링하여 ASP.NET 4의 차트 컨트롤과 동일한 기능을 제공합니다.WebGrid
. 페이징 및 정렬 기능이 포함된 데이터 그리드를 렌더링합니다.Crypto
. 해시 알고리즘을 사용하여 올바르게 솔트되고 해시된 암호를 만듭니다.WebImage
. 이미지를 렌더링합니다.WebMail
. 이메일 메시지를 보냅니다.Razor에 대한 자세한 내용은 다음 리소스를 참조하세요.
ASP.NET MVC 3의 보기 추가 대화 상자를 사용하면 작업할 보기 엔진을 선택할 수 있으며 새 프로젝트 대화 상자를 사용하면 프로젝트의 기본 보기 엔진을 지정할 수 있습니다. ASPX(Web Forms 뷰 엔진), Razor 또는 Spark, NHaml 또는 NDjango와 같은 오픈 소스 뷰 엔진을 선택할 수 있습니다.
작업 메서드가 실행되기 전이나 작업 메서드가 실행된 후 논리를 수행하려는 경우가 있습니다. 이를 지원하기 위해 MVC 2 제공 작업 필터를 ASP.NET. 작업 필터는 특정 컨트롤러 작업 메서드에 사전 작업 및 사후 작업 동작을 추가하는 선언적 수단을 제공하는 사용자 지정 특성입니다. 그러나 경우에 따라 모든 작업 메서드에 적용되는 사전 작업 또는 사후 작업 동작을 지정할 수 있습니다. MVC 3을 사용하면 전역 필터를 컬렉션에 추가하여 지정할 수 GlobalFilters
있습니다. 전역 작업 필터에 대한 자세한 내용은 다음 리소스를 참조하세요.
MVC 2 컨트롤러는 런타임에 바인딩된 사전 API를 사용하여 뷰 템플릿에 데이터를 전달할 수 있는 속성을 지원 ViewData
합니다. MVC 3에서는 속성과 함께 ViewBag
다소 간단한 구문을 사용하여 동일한 목적을 달성할 수도 있습니다. 예를 들어 를 작성하는 ViewData["Message"]="text"
대신 를 작성 ViewBag.Message="text"
할 수 있습니다. 속성을 사용하기 ViewBag
위해 강력한 형식의 클래스를 정의할 필요가 없습니다. 동적 속성이므로 속성을 가져오기 또는 설정할 수 있으며 런타임에 동적으로 resolve. 내부적으로 ViewBag
속성은 사전에 이름/값 쌍 ViewData
으로 저장됩니다. (참고: MVC 3의 대부분의 시험판 버전에서는 속성 이름이 ViewBag
속성으로 ViewModel
지정되었습니다.)
MVC 3에서는 다음과 같은 ActionResult
형식과 해당 도우미 메서드가 새로 사용되거나 향상되었습니다.
RedirectToRoutePermanent
및 RedirectToActionPermanent
가 있습니다RedirectPermanent
. 이러한 메서드는 속성이 로 설정된 의 RedirectResult
Permanent
instance 반환합니다true
.기본적으로 MVC 3의 Ajax 및 유효성 검사 도우미는 눈에 거슬리지 않는 JavaScript 접근 방식을 사용합니다. 눈에 거슬리지 않는 JavaScript는 인라인 JavaScript를 HTML에 삽입하지 않습니다. 이렇게 하면 HTML이 더 작고 덜 복잡해지며 JavaScript 라이브러리를 더 쉽게 교환하거나 사용자 지정할 수 있습니다. MVC 3의 유효성 검사 도우미도 기본적으로 플러그 인을 jQueryValidate
사용합니다. MVC 2 동작을 원하는 경우 web.config 파일 설정을 사용하여 눈에 거슬리지 않는 JavaScript를 사용하지 않도록 설정할 수 있습니다. JavaScript 및 Ajax 개선 사항에 대한 자세한 내용은 다음 리소스를 참조하세요.
이전 버전의 MVC에서는 클라이언트 쪽 유효성 검사를 사용하도록 설정하기 위해 뷰에서 메서드를 명시적으로 호출 Html.EnableClientValidation
해야 합니다. MVC 3에서는 클라이언트 쪽 유효성 검사가 기본적으로 사용하도록 설정되어 있으므로 더 이상 필요하지 않습니다. ( web.config 파일의 설정을 사용하여 사용하지 않도록 설정할 수 있습니다.)
클라이언트 쪽 유효성 검사가 작동하려면 사이트에서 적절한 jQuery 및 jQuery 유효성 검사 라이브러리를 참조해야 합니다. 해당 라이브러리를 사용자 서버에서 호스트하거나 Microsoft 또는 Google의 CDN과 같은 CDN(콘텐츠 배달 네트워크)에서 참조할 수 있습니다.
ASP.NET MVC 3은 jQuery 유효성 검사 플러그 인의 원격 유효성 검사기 지원을 활용할 수 있는 새 RemoteAttribute 클래스를 지원합니다. 이렇게 하면 클라이언트 쪽 유효성 검사 라이브러리가 서버 쪽에서만 수행할 수 있는 유효성 검사 논리를 수행하기 위해 서버에서 정의하는 사용자 지정 메서드를 자동으로 호출할 수 있습니다.
다음 예제에서 특성은 Remote
클라이언트 유효성 검사에서 필드의 유효성을 검사하기 위해 클래스에서 UsersController
라는 UserNameAvailable
작업을 호출하도록 UserName
지정합니다.
public class User
{
[Remote("UserNameAvailable", "Users")]
public string UserName { get; set; }
}
다음 예제에서는 해당 컨트롤러를 보여줍니다.
public class UsersController
{
public bool UserNameAvailable(string username)
{
if(MyRepository.UserNameExists(username))
{
return "false";
}
return "true";
}
}
특성을 사용하는 Remote
방법에 대한 자세한 내용은 방법: MSDN 라이브러리 의 ASP.NET MVC에서 원격 유효성 검사 구현 을 참조하세요.
ASP.NET MVC 3에는 작업 메서드가 JSON으로 인코딩된 데이터를 수신하고 action-method 매개 변수에 모델 바인딩할 수 있는 기본 제공 JSON 바인딩 지원이 포함되어 있습니다. 이 기능은 클라이언트 템플릿 및 데이터 바인딩과 관련된 시나리오에서 유용합니다. (클라이언트 템플릿을 사용하면 클라이언트에서 실행되는 템플릿을 사용하여 단일 데이터 항목 또는 데이터 항목 집합의 서식을 지정하고 표시할 수 있습니다.) MVC 3을 사용하면 JSON 데이터를 보내고 받는 서버의 작업 메서드와 클라이언트 템플릿을 쉽게 연결할 수 있습니다. JSON 바인딩 지원에 대한 자세한 내용은 Scott Guthrie의 MVC 3 미리 보기 블로그 게시물의JavaScript 및 AJAX 개선 사항 섹션을 참조하세요.
ASP.NET MVC 3은 과 같은 DisplayAttribute
메타데이터 특성을 지원합니다DataAnnotations
.
클래스는 ValidationAttribute
유효성을 검사할 개체와 같이 현재 유효성 검사 컨텍스트에 대한 자세한 정보를 제공하는 새 IsValid
오버로드를 지원하기 위해 .NET Framework 4에서 개선되었습니다. 이렇게 하면 모델의 다른 속성을 기반으로 현재 값의 유효성을 검사할 수 있는 다양한 시나리오가 가능합니다. 예를 들어 새 CompareAttribute
특성을 사용하면 모델의 두 속성 값을 비교할 수 있습니다. 다음 예제에서 속성은 ComparePassword
유효하려면 필드와 Password
일치해야 합니다.
public class User
{
[Required]
public string Password { get; set; }
[Required, Compare("Password")]
public string ComparePassword { get; set; }
}
IValidatableObject 인터페이스를 사용하면 모델 수준 유효성 검사를 수행할 수 있으며, 전체 모델의 상태 또는 모델 내의 두 속성 간에 유효성 검사 오류 메시지를 제공할 수 있습니다. 이제 MVC 3은 모델 바인딩 시 IValidatableObject
인터페이스에서 오류를 검색하고 기본 제공 HTML 양식 도우미를 사용하여 보기 내에서 영향을 받는 필드에 자동으로 플래그를 지정하거나 강조 표시합니다.
IClientValidatable 인터페이스를 사용하면 ASP.NET MVC가 런타임에 유효성 검사기가 클라이언트 유효성 검사를 지원하는지 여부를 검색할 수 있습니다. 이 인터페이스는 다양한 유효성 검사 프레임워크와 통합될 수 있도록 설계되었습니다.
유효성 검사 인터페이스에 대한 자세한 내용은 Scott Guthrie의 MVC 3 미리 보기 블로그 게시물의모델 유효성 검사 개선 섹션을 참조하세요. 그러나 블로그의 "IValidateObject"에 대한 참조는 "IValidatableObject"여야 합니다.
ASP.NET MVC 3은 DI(종속성 주입)를 적용하고 IOC(종속성 주입 또는 제어 반전) 컨테이너와 통합하는 데 더 나은 지원을 제공합니다. DI에 대한 지원이 다음 영역에 추가되었습니다.
MVC 3은 Common Service Locator 라이브러리 및 해당 라이브러리의 IServiceLocator
인터페이스를 지원하는 모든 DI 컨테이너를 지원합니다. 또한 DI 프레임워크를 보다 쉽게 통합할 수 있는 새 IDependencyResolver
인터페이스를 지원합니다.
MVC 3의 DI에 대한 자세한 내용은 다음 리소스를 참조하세요.
ASP.NET MVC 3은 설치의 일부로 NuGet을 자동으로 설치하고 사용하도록 설정합니다. NuGet은 프로젝트에서 .NET 라이브러리 및 도구를 쉽게 찾고 설치하고 사용할 수 있는 무료 오픈 소스 패키지 관리자입니다. 모든 Visual Studio 프로젝트 형식(ASP.NET Web Forms 및 ASP.NET MVC 포함)에서 작동합니다.
NuGet을 사용하면 오픈 소스 프로젝트(예: Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, RhinoMocks 및 Elmah와 같은 프로젝트)를 유지 관리하는 개발자가 라이브러리를 패키지하고 온라인 갤러리에 등록할 수 있습니다. 그런 다음 이러한 라이브러리 중 하나를 사용하여 패키지를 찾고 작업 중인 프로젝트에 설치하려는 .NET 개발자가 쉽게 설치할 수 있습니다.
ASP.NET 3 도구 업데이트를 통해 프로젝트 템플릿에는 미리 설치된 JavaScript 라이브러리 NuGet 패키지가 포함되어 있으므로 NuGet을 통해 업데이트할 수 있습니다. Entity Framework Code First도 NuGet 패키지로 미리 설치됩니다.
NuGet에 대한 자세한 내용은 NuGet 설명서를 참조하세요.
ASP.NET MVC는 버전 1 이후 전체 페이지 응답의 출력 캐싱을 지원했습니다. MVC 3은 응답의 영역 또는 조각을 쉽게 캐시할 수 있는 부분 페이지 출력 캐싱도 지원합니다. 캐싱에 대한 자세한 내용은 MVC 3 릴리스 후보 및 MVC 3 릴리스 정보의 자식 작업 출력 캐싱 섹션에 있는 Scott Guthrie의 블로그 게시물의 부분 페이지 출력 캐싱 섹션을 참조하세요.
ASP.NET MVC에는 XSS 및 HTML 삽입 공격으로부터 자동으로 보호하는 데 도움이 되는 기본 제공 요청 유효성 검사가 있습니다. 그러나 사용자가 HTML 콘텐츠(예: 블로그 항목 또는 CMS 콘텐츠)를 게시하도록 허용하려는 경우와 같이 요청 유효성 검사를 명시적으로 사용하지 않도록 설정하려는 경우가 있습니다. 이제 모델에 AllowHtml 특성을 추가하거나 모델을 확인하여 모델 바인딩 중에 속성별로 요청 유효성 검사를 사용하지 않도록 설정할 수 있습니다. 요청 유효성 검사에 대한 자세한 내용은 다음 리소스를 참조하세요.
ASP.NET MVC 3에서는 프로젝트 템플릿, 뷰 엔진 및 단위 테스트 프로젝트 프레임워크를 새 프로젝트 대화 상자에 추가할 수 있습니다.
ASP.NET MVC 3 스캐폴딩 템플릿은 모델의 기본 키 속성을 식별하고 이전 버전의 MVC보다 적절하게 처리하는 더 나은 작업을 수행합니다. (예를 들어 스캐폴딩 템플릿은 이제 기본 키가 편집 가능한 양식 필드로 스캐폴드되지 않았는지 확인합니다.)
기본적으로 스캐폴드 만들기 및 편집은 이제 도우미 대신 도우미를 Html.TextBoxFor
사용합니다Html.EditorFor
. 이렇게 하면 보기 추가 대화 상자에서 뷰를 생성할 때 데이터 주석 특성 형식으로 모델에 대한 메타데이터 지원이 향상됩니다.
및 LabelForModel
도우미 메서드에 대한 새 메서드 오버로드가 LabelFor
추가되었습니다. 새 오버로드를 사용하면 레이블 텍스트를 지정하거나 재정의할 수 있습니다.
ASP.NET MVC 3에서는 컨트롤러 클래스가 세션 상태를 사용할지 여부와 세션 상태를 읽기/쓰기 또는 읽기 전용으로 사용할지 여부를 나타낼 수 있습니다. 세션리스 컨트롤러 지원에 대한 자세한 내용은 MVC 3 릴리스 정보를 참조하세요.
AdditionalMetadata 특성을 사용하여 모델 속성에 ModelMetadata.AdditionalValues
대한 사전을 채울 수 있습니다. 예를 들어 보기 모델에 관리자에게만 표시해야 하는 속성이 있는 경우 다음 예제와 같이 해당 속성에 주석을 달 수 있습니다.
public class ProductViewModel
{
[AdditionalMetadata("AdminOnly", true)]
public string RefundCode {get; set;}
}
이 메타데이터는 제품 보기 모델이 렌더링될 때 모든 디스플레이 또는 편집기 템플릿에서 사용할 수 있습니다. 메타데이터 정보를 해석하는 것은 사용자에게 달려 있습니다.
인터넷 프로젝트 템플릿의 AccountController가 크게 개선되었습니다.
Windows 인증을 사용하도록 설정하고 AccountController를 제거하는 새 인트라넷 프로젝트 템플릿이 포함되어 있습니다.
학습
학습 경로
Implement finance and operations apps - Training
Plan and design your project methodology to successfully implement finance and operations apps with FastTrack services, data management and more.