Visual Studio 2013 릴리스 정보용 ASP.NET 및 Web Tools 2013.2

작성자: Microsoft

설치 참고 사항

Visual Studio 2013.2용 ASP.NET 및 Web Tools 기본 설치 관리자에 번들로 제공됩니다. Visual Studio 2013 업데이트 2의 일부로 다운로드할 수 있습니다.

설명서

Visual Studio 2013.2용 ASP.NET 및 Web Tools 대한 자습서 및 기타 정보는 ASP.NET 웹 사이트에서 확인할 수 있습니다.

소프트웨어 요구 사항

Visual Studio 2013.2에 대한 ASP.NET 및 Web Tools Visual Studio 2013 필요합니다.

Visual Studio 2013.2용 ASP.NET 및 Web Tools 새로운 기능

다음 섹션에서는 릴리스에 도입된 기능에 대해 설명합니다.

하나의 ASP.NET 프로젝트 템플릿

  • 계정 확인 및 암호 재설정을 지원하도록 프로젝트 템플릿을 ASP.NET 업데이트.
  • 온-프레미스 조직 계정을 사용하여 인증을 지원하도록 ASP.NET Web API 템플릿을 업데이트합니다.
  • 이제 ASP.NET SPA 템플릿에는 MVC 및 서버 쪽 보기를 기반으로 하는 인증이 포함됩니다. 템플릿에는 인증된 사용자만 액세스할 수 있는 WebAPI 컨트롤러가 있습니다.

IIS Express 웹 애플리케이션을 시작할 때 SSL 지원

localhost에서 HTTPS를 검색하고 디버깅할 때 보안 경고를 제거하기 위해 인터넷 Explorer 및 Chrome이 자체 서명된 IIS Express SSL 인증서를 신뢰하도록 허용하는 대화 상자를 추가했습니다.

예를 들어 SSL을 사용하도록 웹 프로젝트 속성을 설정할 수 있습니다. F4를 클릭하여 속성 대화 상자를 표시합니다. SSL 사용을 true로 변경합니다. SSL URL을 복사합니다.

SSL 사용 속성

HTTPS 기반 URL을 사용하도록 웹 프로젝트 속성 페이지 웹 탭을 설정합니다(이전에 SSL 웹 사이트를 만든 경우가 아니면 SSL URL https://localhost:44300/ 이 됩니다.)

HTTPS(프로젝트 URL) 설정

Ctrl+F5를 눌러 애플리케이션을 실행합니다. 지침에 따라 IIS Express 생성한 자체 서명된 인증서를 신뢰합니다.

SSL 경고

보안 경고 대화 상자를 읽은 다음 localhost를 나타내는 인증서를 설치하려면 예를 클릭합니다.

보안 경고

사이트는 브라우저에서 인증서 경고 없이 IE 또는 Chrome에 표시됩니다.

경고가 없는 HTTPS 페이지

Firefox는 자체 인증서 저장소를 사용하므로 경고가 표시됩니다.

Visual Studio 웹 편집기 향상된 기능

  • 새 JSON 프로젝트 항목 및 편집기: Visual Studio에 JSON 프로젝트 항목 및 편집기를 추가했습니다. 현재 JSON 편집기 기능에는 색 지정, 구문 유효성 검사, 중괄호 완성, 개요, 도구 옵션 설정 등이 포함됩니다.

    JSON 편집기

    IntelliSense는 이제 JSON 스키마 v3 및 v4를 지원합니다. 기존 스키마를 선택하거나, 로컬 스키마 경로를 편집하거나, 프로젝트 JSON 파일을 끌어서 상대 경로를 가져오는 스키마 콤보 상자가 있습니다.

    JSON IntellisenseJSON 스키마 편집기

  • SCSS(새 Sass) 편집기: VS2013 RTM에서 LESS를 추가했으며 이제 Sass 프로젝트 항목 및 편집기가 있습니다. Sass 편집기 기능은 LESS 편집기와 비슷하며 색 지정, 변수 및 Mixins IntelliSense, 주석/주석 처리 해제, 빠른 정보, 서식 지정, 구문 유효성 검사, 개요, 고토 정의, 색 선택기, 도구 옵션 설정 등을 포함합니다.

    새 항목 추가: SCSS 스타일시트스타일시트 편집기

  • HTML, Razor, CSS, LESS 및 Sass 문서의 새 URL 선택기: VS 2013은 Web Forms 페이지 외부의 URL 선택기 없이 제공되었습니다. HTML, Razor, CSS, LESS 및 Sass 편집기의 새 URL 선택기는 '.'을 이해하는 대화 상자 없는 유창한 입력 선택기입니다. 및 는 img 태그 및 링크에 대해 파일 목록을 적절하게 필터링합니다.

    파일 목록을 적절하게 필터링하는 선택기인 새 대화 상자 없는 유창한 입력 스크린샷 예제에서는 이미지 링크를 보여 줍니다.파일 목록을 적절하게 필터링하는 선택기인 새 대화 상자 없는 유창한 입력 스크린샷 예제에서는 h t m l 링크를 보여 줍니다.i m g 태그 및 링크에 대해 파일 목록을 적절하게 필터링하는 c의 편집기용 새 선택기 스크린샷

  • 더 많은 기능을 추가하여 LESS 편집기로 업데이트

  • 녹아웃 Intellisense 업그레이드: VS intelliSense, "ko-vs-editor viewModel:" 구문에 대한 비표준 KnockOut 구문을 추가했습니다. 양식의 주석을 사용하여 페이지의 여러 보기 모델에 바인딩하는 데 사용할 수 있습니다.

    녹아웃 Intellisense

    또한 중첩된 ViewModel IntelliSense에 대한 지원을 추가했으므로 ViewModel에서 깊이 중첩된 개체를 드릴할 수 있습니다.

    <div data-bind="text: foo.bar.baz.etc" />

    표시되는 IntelliSense는 JavaScript 개체의 전체 IntelliSense입니다.

    전체 JavaScript 개체를 보여 주는 Intellisense

  • HTML, Razor, CSS, LESS 및 Sass 문서의 새 URL 선택기: VS 2013은 Web Forms 페이지 외부의 URL 선택기 없이 제공됩니다. HTML, Razor, CSS, LESS 및 Sass 편집기의 새 URL 선택기는 '.'을 이해하는 대화 상자 없는 유창한 입력 선택기입니다. 및 는 img 태그 및 링크에 대해 파일 목록을 적절하게 필터링합니다.

    i m g 태그 및 링크에 대해 파일 목록을 적절하게 필터링하는 l Picker인 새 대화 상자 없는 흐름 입력 스크린샷파일 목록을 적절하게 필터링하고 h t m l 링크를 표시하는 l Picker인 새 대화 상자 없는 흐름 입력 스크린샷i m g 태그 및 링크에 대해 파일 목록을 적절하게 필터링하는 c의 편집기용 대화 상자 없는 유창한 입력 선택기 스크린샷

  • 이제 Browser Link는 HTTPS 연결을 지원하며 브라우저에서 인증서를 신뢰하는 한 다른 연결이 있는 대시보드에 나열됩니다.
  • 정적 HTML 원본 매핑
  • 데이터 매핑에 대한 SPA 지원
  • 매핑 데이터 자동 업데이트

Visual Studio에서 Azure App Service Web Apps 지원

  • Azure 로그인을 지원합니다.
  • 웹앱용 원격 디버깅 및 원격 보기: 이제 서버 탐색기에서 웹앱 콘텐츠 파일의 원격 보기 및 Azure App Service 웹앱에 대한 원격 디버깅을 지원합니다.

새 웹 프로젝트를 만들 때 원격 Azure 리소스 만들기

새 웹 애플리케이션 대화 상자에 Azure "원격 리소스 만들기" 확인란을 추가했습니다. 이를 선택하면 새 웹 애플리케이션을 만들고, 테스트를 위해 Azure 게시 사이트를 설정하고, 몇 가지 간단한 단계로 게시 프로필을 만드는 환경을 통합할 수 있습니다.

Azure 리소스가 포함된 새 프로젝트Azure에 게시

웹 게시 개선 사항

  • 게시를 위한 사용자 환경을 개선합니다.

ASP.NET 스캐폴딩

  • 열거형 지원: 모델이 열거형을 사용하는 경우 MVC 스캐폴더는 열거형에 대한 드롭다운을 생성합니다. MVC의 열거형 도우미를 사용합니다.
  • 부트스트랩 지원: 부트스트랩 클래스를 사용하도록 MVC 스캐폴딩의 EditorFor 템플릿을 업데이트했습니다.
  • 패키지 지원: MVC 및 Web API 스캐폴더가 MVC 및 Web API용 5.1 패키지를 추가합니다.

다음 스크린샷은 스캐폴딩 모델을 보여 줍니다.

  • 모델 코드:

    모델 코드

  • 모델 코드를 컴파일하고 마우스 오른쪽 단추를 클릭한 다음 추가, 새 스캐폴드된 항목을 선택합니다.

    새 스캐폴드 항목 추가

  • Entity Framework를 사용하여 보기가 있는 MVC5 컨트롤러를 선택합니다.

    뷰를 사용하여 새 MVC5 컨트롤러 추가

  • 모델을 사용하여 컨트롤러를 추가합니다.

    모델 클래스가 선택되고 데이터 컨텍스트 클래스 필드가 선택되고 강조 표시된 컨트롤러 추가 대화 상자의 스크린샷

  • 생성된 코드(예: Views/WeekdayModels/Edit.cshtml contains: EnumDropDownListFor를 포함하는 뷰)를 확인합니다@Html.EnumDropDownListFor.

  • 페이지를 실행하여 생성된 열거형 콤보 상자를 확인합니다. 값이 null일 수 있는 경우 콤보 상자에 대해 빈 문자열을 선택할 수 있습니다. 예를 들어 만들기 페이지에는 다음이 표시됩니다.

    빈 문자열을 허용하는 콤보 상자

NuGet 2.8.1

NuGet 2.8.1 RTM은 2014년 4월에 릴리스될 예정입니다. 다음은 릴리스 정보에서 두드러진 점이지만 이러한 변경 내용에 대한 자세한 내용은 전체 릴리스 정보를 검사.

  • 대상 Windows Phone 8.1 애플리케이션: NuGet 2.8.1은 이제 대상 프레임워크 모니커 'WindowsPhoneApp', 'WPA', 'WindowsPhoneApp81' 및 'WPA81'을 사용하여 Windows Phone 8.1 애플리케이션을 대상으로 지정할 수 있습니다.

  • 종속성에 대한 패치 확인: 패키지 종속성을 확인할 때 NuGet은 지금까지 패키지에 대한 종속성을 충족하는 가장 낮은 주 및 부 패키지 버전을 선택하는 전략을 구현했습니다. 그러나 주 버전 및 부 버전과 달리 패치 버전은 항상 가장 높은 버전으로 확인되었습니다. 이 동작은 의도적인 것이었지만 종속성이 있는 패키지를 설치하기 위한 결정성이 부족했습니다.

  • DependencyVersion 스위치: NuGet 2.8은 종속성을 확인하기 위한 기본 동작을 변경하지만 패키지 관리자 콘솔의 -DependencyVersion 스위치를 통해 종속성 확인 프로세스에 대한 보다 정확한 제어를 추가합니다. 스위치를 사용하면 가능한 가장 낮은 버전(기본 동작), 가능한 가장 높은 버전 또는 가장 높은 부 버전 또는 패치 버전으로 종속성을 확인할 수 있습니다. 이 스위치는 powershell 명령의 install-package에 대해서만 작동합니다.

  • DependencyVersion 특성: 위에서 설명한 -DependencyVersion 스위치 외에도 NuGet은 -DependencyVersion 스위치가 install-package 호출에 지정되지 않은 경우 기본값이 무엇인지 정의하는 nuget.config 파일에서 새 특성을 설정할 수 있습니다. 이 값은 모든 설치 패키지 작업에 대해 NuGet 패키지 관리자 대화 상자에서도 적용됩니다. 이 값을 설정하려면 아래 특성을 nuget.config 파일에 추가합니다.

    <config> <add key="dependencyversion" value="Highest" /> </config>

  • -WhatIf를 사용하여 NuGet 작업 미리 보기: 일부 NuGet 패키지에는 심층 종속성 그래프가 있을 수 있으므로 설치, 제거 또는 업데이트 작업 중에 먼저 어떤 일이 일어날지 확인하는 것이 유용할 수 있습니다. NuGet 2.8은 표준 PowerShell -what을 install-package, uninstall-package 및 update-package 명령으로 전환하면 명령이 적용될 패키지의 전체 클로저를 시각화할 수 있도록 추가합니다.

  • 패키지 다운그레이드: 새 기능을 조사한 다음 안정적인 마지막 버전으로 롤백하기로 결정하기 위해 패키지의 시험판 버전을 설치하는 것은 드문 일이 아닙니다. NuGet 2.8 이전에는 시험판 패키지 및 해당 종속성을 제거한 다음 이전 버전을 설치하는 다단계 프로세스였습니다. 그러나 NuGet 2.8을 사용하면 update-package는 이제 전체 패키지 닫기(예: 패키지의 종속성 트리)를 이전 버전으로 롤백합니다.

  • 개발 종속성: 개발 프로세스를 최적화하는 데 사용되는 도구를 포함하여 다양한 유형의 기능을 NuGet 패키지로 제공할 수 있습니다. 이러한 구성 요소는 새 패키지를 개발하는 데 중요한 역할을 할 수 있지만 나중에 게시될 때 새 패키지의 종속성으로 간주해서는 안 됩니다. NuGet 2.8을 사용하면 패키지가 .nuspec 파일에서 자신을 developmentDependency로 식별할 수 있습니다. 이 메타데이터가 설치되면 패키지가 설치된 프로젝트의 packages.config 파일에도 추가됩니다. nuget.exe 팩 중에 해당 packages.config 파일이 나중에 NuGet 종속성에 대해 분석되면 개발 종속성으로 표시된 종속성이 제외됩니다.

  • 여러 플랫폼에 대한 개별 packages.config 파일: 여러 대상 플랫폼에 대한 애플리케이션을 개발하는 경우 각 빌드 환경에 대해 서로 다른 프로젝트 파일이 있는 것이 일반적입니다. 패키지에는 다양한 플랫폼에 대한 다양한 수준의 지원이 있으므로 다른 프로젝트 파일에서 서로 다른 NuGet 패키지를 사용하는 것이 일반적입니다. NuGet 2.8은 플랫폼별 프로젝트 파일에 대해 서로 다른 packages.config 파일을 만들어 이 시나리오에 대한 향상된 지원을 제공합니다.

  • 로컬 캐시로 대체: NuGet 패키지는 일반적으로 네트워크 연결을 사용하여 NuGet 갤러리 와 같은 원격 갤러리에서 사용되지만 클라이언트가 연결되지 않은 시나리오는 많습니다. 네트워크 연결이 없으면 NuGet 클라이언트는 해당 패키지가 로컬 NuGet 캐시의 클라이언트 컴퓨터에 이미 있는 경우에도 패키지를 성공적으로 설치할 수 없었습니다. NuGet 2.8은 패키지 관리자 콘솔에 자동 캐시 대체를 추가합니다.

    캐시 대체 기능에는 특정 명령 인수가 필요하지 않습니다. 또한 캐시 대체는 현재 패키지 관리자 콘솔에서만 작동합니다. 이 동작은 현재 패키지 관리자 대화 상자에서 작동하지 않습니다.

  • 버그 수정: 주요 버그 수정 중 하나는 update-package -reinstall 명령의 성능 향상이었습니다.

    이러한 기능 및 앞서 언급한 성능 수정 외에도 NuGet의 이 릴리스에는 다른 많은 버그 수정 사항도 포함되어 있습니다. 릴리스에서 해결된 총 문제는 181개였습니다. NuGet 2.8에서 수정된 작업 항목의 전체 목록은 이 릴리스에 대한 NuGet 문제 추적기를 참조하세요.

ASP.NET 웹 양식

ASP.NET MVC 5.1.2

ASP.NET Web API 2.1.2

ASP.NET 웹 페이지 3.1.2

Entity Framework 6.1

Entity Framework는 런타임 및 도구 모두에 대해 버전 6.1로 업데이트되었습니다. EF(Entity Framework) 6.1은 Entity Framework 6에 대한 사소한 업데이트이며 다양한 버그 수정 및 새로운 기능을 포함합니다. 새 기능에 대한 설명서 링크를 포함하여 EF6.1에 대한 자세한 내용은 Entity Framework 버전 기록을 참조하세요. 이 릴리스의 새로운 기능은 다음과 같습니다.

  • 도구 통합 은 새 EF 모델을 만드는 일관된 방법을 제공합니다. 이 기능은 기존 데이터베이스에서 리버스 엔지니어링을 포함하여 Code First 모델 만들기를 지원하도록 ADO.NET 엔터티 데이터 모델 마법사를 확장합니다. 이러한 기능은 이전에 EF Power Tools의 베타 품질에서 사용할 수 있었습니다.
  • 트랜잭션 커밋 실패를 처리하면 새로 도입된 트랜잭션 작업을 가로채는 기능을 사용하는 새 System.Data.Entity.Infrastructure.CommitFailureHandler 가 제공됩니다. CommitFailureHandler는 트랜잭션을 커밋하는 동안 연결 오류로부터 자동 복구를 허용합니다.
  • IndexAttribute 를 사용하면 Code First 모델의 속성(또는 속성)에 특성을 배치하여 인덱스를 지정할 수 있습니다. 그런 다음 Code First는 데이터베이스에 해당 인덱스 를 만듭니다.
  • 공용 매핑 API는 EF가 데이터베이스의 열 및 테이블에 속성 및 형식을 매핑하는 방법에 대한 정보에 대한 액세스를 제공합니다. 이전 릴리스에서 이 API는 내부입니다.
  • App/Web.config 파일을 통해 인터셉터를 구성하는 기능(애플리케이션을 다시 컴파일하지 않고 인터셉터를 추가할 수 있도록 허용).
  • DatabaseLogger 는 모든 데이터베이스 작업을 파일에 쉽게 기록할 수 있는 새로운 인터셉터입니다. 이전 기능과 함께 사용하면 다시 컴파일할 필요 없이 배포된 애플리케이션에 대한 데이터베이스 작업 로깅을 쉽게 전환할 수 있습니다.
  • 스캐폴드된 마이그레이션이 더 정확할 수 있도록 마이그레이션 모델 변경 검색이 개선되었습니다. 변경 검색 프로세스의 성능도 크게 향상되었습니다.
  • 초기화 중 데이터베이스 작업 감소, LINQ 쿼리에서 null 같음 비교 최적화, 더 많은 시나리오에서 더 빠른 뷰 생성(모델 생성) 및 여러 연결이 있는 추적된 엔터티의 보다 효율적인 구체화를 비롯한 성능 향상

ASP.NET ID 2.0.0

  • 2단계 인증: ASP.NET ID는 이제 2단계 인증을 지원합니다. 2단계 인증은 암호가 손상된 경우 사용자 계정에 추가 보안 계층을 제공합니다. 또한 두 가지 요소 코드에 대한 무차별 암호 대입 공격에 대한 보호도 있습니다.

  • 계정 잠금: 사용자가 암호 또는 2단계 코드를 잘못 입력하는 경우 사용자를 잠그는 방법을 제공합니다. 잘못된 시도 횟수와 사용자의 시간 범위가 잠겼습니다. 개발자는 필요에 따라 특정 사용자 계정에 대한 계정 잠금을 해제할 수 있습니다.

  • 계정 확인: 이제 ASP.NET ID 시스템에서 계정 확인을 지원합니다. 이는 현재 대부분의 웹 사이트에서 매우 일반적인 시나리오로, 웹 사이트에서 새 계정을 등록할 때 웹 사이트에서 작업을 수행하려면 전자 메일을 확인해야 합니다. Email 확인은 가짜 계정이 만들어지는 것을 방지하므로 유용합니다. 이는 포럼 사이트, 은행, 전자 상거래 또는 소셜 웹 사이트와 같은 웹 사이트의 사용자와 통신하는 방법으로 전자 메일을 사용하는 경우에 매우 유용합니다.

  • 암호 재설정: 암호 재설정은 사용자가 암호를 잊어버린 경우 암호를 재설정할 수 있는 기능입니다.

  • 보안 스탬프(어디서나 로그아웃): 사용자가 암호를 변경하거나 연결된 로그인 제거(예: Facebook, Google, Microsoft 계정 등)와 같은 기타 보안 관련 정보를 변경하는 경우 사용자의 보안 토큰을 다시 생성하는 방법을 지원합니다. 이전 암호로 생성된 토큰이 무효화되도록 하려면 이 작업이 필요합니다. 샘플 프로젝트에서 사용자의 암호를 변경하면 사용자에 대한 새 토큰이 생성되고 이전 토큰이 무효화됩니다. 이 기능은 암호를 변경할 때 이 애플리케이션에 로그인한 모든 위치(다른 모든 브라우저)에서 로그아웃되므로 애플리케이션에 추가 보안 계층을 제공합니다.

  • 사용자 및 역할에 대해 기본 키 유형을 확장할 수 있도록 설정: ASP.NET ID 1.0에서 사용자 및 역할 테이블에 대한 기본 키의 형식은 문자열이었습니다. 즉, Entity Framework를 사용하여 ASP.NET ID 시스템이 SQL Server 유지되었을 때 nvarchar를 사용했습니다. 들어오는 피드백을 기반으로 Stack Overflow에서 이 기본 구현에 대해 많은 논의가 있었습니다. 사용자 및 역할 테이블의 기본 키를 지정할 수 있는 확장성 후크를 제공했습니다. 이 확장성 후크는 애플리케이션을 마이그레이션하고 애플리케이션이 UserId를 저장한 경우 GUID 또는 ints인 경우에 특히 유용합니다.

  • 사용자 및 역할에 대한 IQueryable 지원: UsersStore 및 RolesStore에서 IQueryable에 대한 지원이 추가되어 사용자 및 역할 목록을 쉽게 가져올 수 있습니다.

  • UserManager를 통한 삭제 작업 지원

  • UserName의 인덱싱: ASP.NET Identity Entity Framework 구현에서는 EF 6.1.0에서 새 IndexAttribute를 사용하여 Username에 고유한 인덱스를 추가했습니다. 이렇게 하면 사용자 이름이 항상 고유하며 중복된 사용자 이름으로 끝날 수 있는 경합 상태가 없는지 확인합니다.

  • 향상된 암호 유효성 검사기: ASP.NET ID 1.0에 제공된 암호 유효성 검사기는 최소 길이만 유효성을 검사하는 매우 기본적인 암호 유효성 검사기였습니다. 암호의 복잡성을 보다 자세히 제어할 수 있는 새 암호 유효성 검사기가 있습니다. 이 암호의 모든 설정을 켜더라도 사용자 계정에 대해 2단계 인증을 사용하도록 설정하는 것이 좋습니다.

  • IdentityFactory 미들웨어/ CreatePerOwinContext:

    • 사용자 관리자: 팩터리 구현을 사용하여 OWIN 컨텍스트에서 UserManager의 instance 가져올 수 있습니다. 이 패턴은 SignIn 및 SignOut에 대한 OWIN 컨텍스트에서 AuthenticationManager를 가져오는 데 사용하는 것과 유사합니다. 이는 애플리케이션에 대한 요청당 UserManager의 instance 가져오는 권장 방법입니다.
    • DbContextFactory: ASP.NET ID는 Entity Framework를 사용하여 id 시스템을 SQL Server 유지합니다. 이렇게 하려면 ID 시스템에 ApplicationDbContext에 대한 참조가 있습니다. DbContextFactory 미들웨어는 애플리케이션에서 사용할 수 있는 요청당 ApplicationDbContext의 instance 반환합니다.
  • ASP.NET ID 샘플 NuGet 패키지: 샘플 NuGet 패키지를 사용하면 ASP.NET ID에 대한 샘플을 더 쉽게 설치 및 실행하고 모범 사례를 따를 수 있습니다. MVC 애플리케이션에 ASP.NET 샘플입니다. 프로덕션 환경에서 배포하기 전에 애플리케이션에 맞게 코드를 수정하세요. 샘플은 빈 ASP.NET 애플리케이션에 설치해야 합니다. 패키지에 대한 자세한 내용은 다음 블로그 게시물인 ASP.NET Identity 2.0.0의 RTM 발표로 이동하세요.

Microsoft OWIN 구성 요소

이 릴리스에서 수정된 많은 버그가 있었습니다.

ASP.NET SignalR 2.0.2

이 릴리스에서 수정된 많은 버그가 있었습니다. 자세한 내용은 2.0.2 릴리스에 대한 릴리스 정보를 참조하세요.