메뉴 건너뛰기

Xamarin Dev

SHARING, PUBLISHING.
& PLEASURE.

지식을 나누고 컨텐츠를 출판하며 즐거움을 함께합니다.

MAKING
WEB CULTURES

올바른 웹 문화를 지향합니다.

EVOLUTION & INNOVATION
TOGETHER

함께 진화하고 혁신을 추구합니다.

CREATE A GOOD DESIGN WITH
THE POSSIILITY OF TECHNOLOGY

기술의 가능성을 발굴하고 좋은 디자인을 만들어 갑니다.

Visual Studio 2015 정식판 출시

관리자 2015.08.02 12:54 조회 수 : 2583

 

2015년 7월 20일

오늘 Visual Studio 2015 RTM 릴리스를 발표할 수 있게 되어 매우 기쁘게 생각합니다. 이번 Visual Studio RTM(Release to Manufacturing)에는 유니버설 Windows 앱 개발, Xamarin, Apache Cordova, Unity를 비롯한 iOS, Android 및 Windows용 플랫폼 간 모바일 개발 도구와 같은 다양한 새 기능 및 업데이트가 포함되어 있습니다.

 

다운로드:   Visual Studio 2015 RTM

최신 버전의 TFS에 대해 자세히 알아보려면 Team Foundation Server 2015 RC 2 릴리스 정보를 참조하세요.

 

Visual Studio 2015 RTM의 내용

Visual Studio:

기타 변경 내용:

플랫폼 간 모바일 개발용 Visual C++

이제 Visual Studio의 단일 솔루션 내에서 여러 앱 플랫폼 간에 거의 대부분의 플랫폼별 코드를 쉽게 공유, 재사용, 빌드, 배포 및 디버그할 수 있습니다. 수행할 수 있는 작업에 대한 몇 가지 예는 다음과 같습니다.

  • Android Native Activity 앱용 템플릿 또는 여러 플랫폼과 Xamarin 기본 Android 응용 프로그램에서 사용할 수 있는 공유 코드 라이브러리용 템플릿에서 프로젝트를 만들 수 있습니다.
  • 플랫폼별 IntelliSense를 사용하여 API를 탐색하고 Android 또는 Windows 대상용으로 정확한 코드를 생성할 수 있습니다.
  • x86 또는 ARM 기본 플랫폼용으로 빌드를 구성합니다.
  • 연결된 Android 장치에 코드를 배포하거나 테스트를 위해 Microsoft의 영구 Android 에뮬레이터를 사용할 수 있습니다.
  • Visual Studio 디버거에서 중단점을 설정하고, 변수를 감시하고, 스택을 확인하고 코드를 단계별로 실행할 수 있습니다.
  • LogCat 뷰어를 사용하여 Android 장치에서 메시지 로그를 확인할 수 있습니다. (Logcat은 진단 도구로서 올바른 편집->빌드->디버그 환경에 필요합니다.) 
    Logcat을 사용하면 다음을 수행할 수 있습니다.
    • 검색 창을 사용하여 특정 로그 메시지를 검색합니다.
    • Toggle Autoscroll(자동 스크롤 전환)을 사용하여 최신 로그 메시지를 쉽게 확인합니다.
    • 이전 로그 출력 메시지를 지웁니다.
    • 여러 로그 수준 중에서 선택합니다.
  • iOS 플랫폼을 대상으로 하는 C++ 코드를 작성하고 코드 공유, 크로스 플랫폼 IntelliSense, 리팩터링, 정의 엿보기 등과 같은 고급 코드 작성 기능을 활용할 수도 있습니다. iOS 지원은 아직 준비 중이므로 좀 더 지켜봐 주시고, 의견이 있으시면 다음과 같은 방법으로 언제든지 연락해 주세요. 버그의 경우 Connect를 사용하고, 제안 사항이 있는 경우 UserVoice를 사용하고, 아이디어가 있는 경우 Visual Studio IDE의 Send-a-Smile을 사용해 보세요.

또한 다음의 항목이 추가되거나 업데이트되었습니다.

  • Android API 수준 21 지원(Lollipop).
  • 외부 빌드 시스템을 사용할 수 있도록 Android용 make 파일 지원을 기반으로 하는 새 템플릿(NDK- BUILD 포함).
  • 모든 템플릿에서 미리 컴파일된 헤더(동적 공유 라이브러리, 정적 라이브러리 및 플랫폼 간 모바일 템플릿 포함).

Visual Studio Tools for Apache Cordova

Visual Studio Tools for Apache Cordova(이전의 Multi-Device Hybrid Apps for Visual Studio)를 사용하면 간단한 Visual Studio 프로젝트 하나에서 Android, iOS, Windows 및 Windows Phone을 대상으로 하는 플랫폼 간 앱을 쉽게 빌드, 디버그 및 테스트할 수 있습니다.

다음 개선 사항을 비롯하여 이전 CTP에서 제공되었던 모든 기능을 이제 Visual Studio 2015 RC에서도 사용할 수 있습니다.

  • Ripple용으로 저장하는 기능이 업데이트되어 다시 빌드할 필요가 없습니다.
  • iOS 시뮬레이터 또는 Mac의 연결된 장치로 배포할 때 Visual Studio에서 iOS 버전 앱을 디버그할 수 있습니다.
  • 포함된 원격 iOS 빌드 에이전트의 보안이 개선되고 구성이 간소화되었습니다.
  • Git 또는 파일 시스템에서 프로젝트에 사용자 지정 플러그 인을 추가하는 지원 기능을 포함해 플러그 인 관리 환경이 개선되었습니다.
  • 개선된 config.xml 디자이너에서 플랫폼별 구성 옵션을 선택할 수 있습니다.
  • Apache Cordova 4.0.0이 지원됩니다. 

사용자 의견을 반영하여 다음과 같이 디버깅할 수 있는 장치 수를 늘렸습니다.

  • Android 4.4, Android 4.3 및 이전 버전의 jsHybugger
  • iOS 6, 7, 8
  • Windows Store 8.1

그런 다음 디버깅 지원도 추가로 확장되었습니다. 이제 Windows Phone 8.1 대상의 Apache Cordova 앱을 디버깅할 수 있습니다.

Windows Phone 8.1 에뮬레이터 또는 연결된 장치에서 중단점을 설정하고, 변수를 조사하고, 콘솔을 사용하고, 기타 디버깅 작업을 수행할 수 있습니다. 
Visual Studio Tools for Apache Cordova로 디버그하기 

RC에 CLI 호환성을 추가했습니다. Visual Studio의 Cordova 프로젝트는 이제 디스크 상에서 프로젝트 폴더의 변경 사항과 동기화됩니다. 변경 사항은 타사 도구 또는 다른 운영 체제를 사용 중인지에 따라 Visual Studio 내외부로 전송될 수 있습니다. (Cordova 프로젝트의 기본 파일 구조는 Apache Cordova 명령줄 도구에 필요한 구조를 기반으로 하여 Apache Cordova CLI 또는 이러한 폴더 구조가 필요한 다른 도구과 더 쉽게 직접 연동될 수 있습니다.)

Android용 Visual Studio 에뮬레이터

Visual Studio Emulator for Android를 Visual Studio의 플랫폼 간 프로젝트(Xamarin/C++) 또는 Visual Studio Tools for Apache Cordova에서 사용할 수 있습니다. 이 에뮬레이터에서는 Hyper-V 충돌 없이 서로 다른 플랫폼 에뮬레이터 간에 전환할 수 있습니다. GPS/위치, 가속도계, 화면 회전, 확대/축소, SD 카드, 멀티 터치 및 네트워크 액세스를 비롯하여 다양한 센서 및 시뮬레이션이 지원됩니다. 또한 Android 버전 4.4(KitKat, API 수준 19) 및 5.0(Lollipop, API 수준 21)도 지원됩니다.

Visual Studio Emulator for Android에서는 Wi-Fi 시뮬레이션과 여러 장치 하드웨어 구성 중에서 선택할 수 있는 기능이 모두 지원됩니다.

그리고 이제 RTM에서는

  • 플랫폼이 새롭게 제공됩니다. Jellybean(API 17) 및 Lollipop 5.1(API 22) 이미지를 사용할 수 있습니다.
  • 명령줄 인터페이스. 명령 프롬프트에서 %programfiles(x86)%\Microsoft Emulator Manager\1.0\emulatorcmd.exe로 이동하면 UI가 없는 에뮬레이터 관리자(목록, 설치, 시작 프로필 등)와 상호 작용할 수 있습니다.
  • Zip 라이브러리를 끌어서 놓습니다. 플래시 가능한 Zip을 에뮬레이터로 끌어 놓으면 자동으로 압축이 풀리고 설치됩니다.
  • SD 카드 탭. "추가 도구" 창의 이 새 탭에서 데이터를 SD 카드에 밀어 넣고 SD 카드에서 데이터를 끌어올 수 있습니다.
  • 자체적으로 획득. Visual Studio를 설치하지 않고도 에뮬레이터를 컴퓨터에 설치할 수 있습니다. 에뮬레이터 관리자 바로 가기가 시작 메뉴에 표시되므로 모든 개발 도구 체인에서 시작하고 사용할 수 있습니다.

Visual Studio Emulator for Android에 대해 자세히 알아보세요.

범용 Windows 앱 개발을 위한 Visual Studio 도구

범용 Windows 앱 개발을 위한 Visual Studio 도구는 이제 Visual Studio 설치에 통합됩니다. 이러한 도구를 사용하면 Windows Phone에서 Xbox 및 Windows 스토어까지 모든 Windows 장치에서 실행되는 Windows 앱을 빌드할 수 있습니다. 또한 이러한 도구를 사용함으로써 Windows 10 API를 활용하는 Windows 데스크톱 응용 프로그램을 빌드할 수 있습니다. (RC 릴리스 및 이전 릴리스에서는 Windows 10이 프로덕션 앱용 대상 플랫폼으로 지원되지 않습니다.)

유니버설 Windows 앱용 Visual Studio 도구(영문)에서 새로운 기능에 대해 자세히 알아보세요.

범용 Windows 앱용 개발 도구를 설치하려면 Visual Studio 설정에서 사용자 지정을 선택하고, 다음을 클릭한 후 "Universal Windows App Development Tools(범용 Windows 앱 개발 도구)"를 선택합니다.

또한 RC에서 HTML 및 JavaScript를 사용하여 Windows 앱을 만들고, 업그레이드, 빌드, 배포 및 디버그할 수 있습니다.  그리고 Windows 10에는 CoreCLR에 대한 EnC 지원이 제공됩니다. Windows Phone 10에서 .NET 응용 프로그램을 디버그할 때 편집 및 계속 기능을 사용할 수 있습니다.

Windows 앱 개발에 대한 자세한 내용은 유니버설 Windows 앱 가이드(영문) 및 Windows 참가자 포털을 참조하세요.

맨 위로 이동

Visual C++

이번 릴리스에서는 C++ 컴파일러 및 표준 라이브러리가 업데이트되어 C++11의 지원이 향상되었으며 특정 C++14 기능이 처음으로 지원됩니다. 또한 C++17 표준에 포함될 것으로 예상되는 특정 기능도 미리 지원됩니다.

그뿐만 아니라 Microsoft Connect에서 고객이 제출한 여러 버그를 비롯하여 500개가 넘는 컴파일러 버그가 수정되었습니다. 여러분의 참여에 감사를 드립니다.

언어 기능

컴파일러를 표준 C++에 더 가깝게 만들기 위해 다음과 같은 새로운 기능을 추가했습니다.

  • 다시 시작 가능 함수(resume/await) resume 및 await 키워드는 비동기 프로그래밍을 위한 언어 수준 지원을 제공하며 다시 시작 가능 함수를 사용할 수 있도록 합니다. 현재 이 기능은 x64 대상에 대해서만 제공됩니다. C+ +17 [N3858] 포함 예정 기능
  • 제네릭(다형) 람다 식 이제는 auto를 사용하여 람다 함수 매개 변수 형식을 지정할 수 있습니다. 컴파일러는 closure의 함수 호출 연산자가 멤버 함수 템플릿이며, 람다 식에서 사용되는 각 auto는 고유한 템플릿 형식 매개 변수에 해당함을 의미하도록 이 컨텍스트에서 auto를 해석합니다. C++14
  • 일반화된 람다 캡처 식 init-capture라고도 합니다. 이제는 임의 식의 결과를 람다의 캡처 절 내 변수에 할당할 수 있습니다. 따라서 이동 전용 형식을 값으로 캡처할 수 있으며 람다 식이 해당 closure 개체에서 임의 데이터 멤버를 정의할 수 있습니다. C++14
  • 이진 리터럴 이제 이진 리터럴이 지원됩니다. 이러한 리터럴은 0 또는 1로만 구성되며 앞에는 0B 또는 0b 접두사가 붙습니다. C++14
  • 반환 형식 감소 이제는 여러 return 문을 포함하는 함수와 재귀 함수를 포함한 일반 함수의 반환 형식을 줄일 수 있습니다. 이러한 함수 정의 앞에는 후행 반환 형식이 포함된 함수 정의에서와 같이 자동 키워드가 붙지만 후행 반환 형식은 생략됩니다. C++14
  • decltype(auto)를 통해 auto 키워드를 사용하여 식 스트립 ref 한정자 및 최상위 cv 한정자를 식에서 초기화하면 형식을 줄일 수 있습니다. decltype(auto)는 ref 및 cv 한정자를 보존하며, 이제는 유추 반환 형식 또는 후행 반환 형식이 포함된 함수를 사용하려는 경우를 제외하면 auto를 사용할 수 있는 모든 위치에서 decltype(auto)을 사용할 수 있습니다. C++14
  • 이동 특수 멤버 함수의 암시적 생성 이제는 상황이 허용되는 경우 이동 생성자와 이동 할당 연산자가 암시적으로 생성되므로 컴파일러가 C++11 rvalue 참조를 완전하게 준수합니다. C+ +11
  • 생성자 상속 이제는 정의에 Base::Base를 사용하는 문을 포함하여 기본 클래스(Base)의 생성자를 상속하도록 파생 클래스를 지정할 수 있습니다. 파생되는 클래스는 기본 클래스의 모든 생성자를 상속할 수만 있으며 특정 기본 생성자만 상속할 수 있는 방법은 없습니다. 파생되는 클래스는 서명이 같은 여러 생성자를 포함하더라도 여러 기본 클래스에서 상속할 수는 없으며 서명이 같은 생성자를 상속되는 생성자로 정의할 수도 없습니다. C++11
  • 정렬 쿼리 및 제어 alignof() 연산자를 사용하여 변수 정렬을 쿼리할 수 있으며 alignas() 지정자를 사용하여 변수 정렬을 제어할 수 있습니다. alignof()는 형식 인스턴스를 할당해야 하는 바이트 경계를 반환하고, 참조의 경우에는 참조되는 형식의 정렬을 반환하며, 배열의 경우에는 요소 형식 정렬을 반환합니다. alignas()는 변수 정렬을 제어하며 상수나 형식을 사용합니다. 여기서 형식은 alignas(alignof(type))의 줄임 표기입니다. C++11
  • 확장된 sizeof 이제는 sizeof()를 사용하여 클래스나 구조체의 인스턴스를 만들지 않아도 클래스 또는 구조체 멤버 변수의 크기를 확인할 수 있습니다. C++11
  • constexpr C++11 constexpr가 일부분 지원됩니다. C++11(일부)
  • UDL(사용자 정의 리터럴) 이제는 숫자 및 문자열 리터럴에 의미 있는 접미사를 추가하여 특정 의미를 지정할 수 있습니다. 컴파일러는 접미사가 붙은 리터럴을 해당하는 UDL 연산자 호출로 해석합니다. C++11
  • 스레드로부터 안전한 "Magic" 정적 변수 이제는 정적 로컬 변수가 스레드로부터 안전한 방식으로 초기화되므로 수동으로 동기화할 필요가 없습니다. 초기화만 스레드로부터 안전하며 여러 스레드에서 정적 로컬 변수를 사용하는 경우에는 계속 수동으로 동기화해야 합니다. CRT에 대한 종속성을 방지하기 위해 /Zc:threadSafeInit- 플래그를 사용하여 스레드로부터 안전한 정적 변수 기능을 사용하지 않도록 설정할 수 있습니다. C++11
  • 스레드 로컬 저장소 thread_local 키워드를 사용하여 각 스레드에 대해 독립 개체를 만들어야 함을 선언할 수 있습니다. C++11
  • noexcept 이제는 noexcept 연산자를 사용하여 식이 예외를 throw했는지 여부를 확인할 수 있습니다. 이제는 noexcept 지정자를 사용하여 함수가 예외를 throw하지 않음을 지정할 수 있습니다. C++11
  • 인라인 네임스페이스 이제는 네임스페이스를 인라인으로 지정하여 해당 콘텐츠를 바깥쪽 네임스페이스로 호이스트할 수 있습니다. 인라인 네임스페이스를 사용하면 기본적으로 최신 버전을 표시하는 버전 지정된 라이브러리를 만드는 동시에 이전 API 버전도 명시적으로 계속 제공할 수 있습니다. C++11
  • 제한 없는 공용 구조체 이제 공용 구조체 형식이 trivial이 아닌 생성자가 포함된 형식을 포함할 수 있습니다. 이러한 공용 구조체에 대해 생성자를 정의해야 합니다. C++11
  • 새로운 문자 형식 및 유니코드 리터럴 이제는 UTF-8, UTF-16 및 UTF-32 형식의 문자 및 문자열 리터럴이 지원되며 새로운 문자 형식인 char16_t 및 char32_t가 도입되었습니다. 이제는 문자 리터럴에 U'a'와 같이 u8(UTF-8), u(UTF-16) 또는 U(UTF-32)를 접두사로 붙일 수 있습니다. 또한 문자열 리터럴에는 원시 문자열에 해당하는 u8R(UTF-8 원시 문자열), uR(UTF-16 원시 문자열) 또는 UR(UTF-32 원시 문자열)을 접두사로 붙일 수 있습니다. u'\u00EF', u8"\u00EF is i", u"\U000000ef is I"에서와 같이 범용 문자 이름을 유니코드 리터럴에서 자유롭게 사용할 수 있습니다. C++11
  • __func__ 미리 정의된 식별자 __func__가 바깥쪽 함수의 정규화되지 않고 표시되지 않은 이름을 포함하는 문자열로 암시적으로 정의됩니다. C++11
  • __restrict 이제는 참조에 __restrict를 적용할 수 있습니다.
  • Typename 키워드. 사용자는 이제 템플릿 매개 변수에서 class 대신 typename 을 쓸 수 있습니다. C++14
  • 이제 글로벌 void operator delete(void *, std::size_t) noexcept 및 void operator delete[](void *, std::size_t) noexcept를 오버로드할 수 있습니다. C++14
  • 숫자 구분 기호 이제 숫자 리터럴과 작은따옴표를 섞어서 읽기 쉽게 표시할 수 있습니다. 예: int x = 1’000’000;. C++14
  • 리터럴 내의 범용 문자 이름 이제 기본 문자(예: 'A')와 줄 바꿈 문자를 리터럴에서 코드 포인트로 쓸 수 있습니다. 예: const char *s = “\u0041\u000A”;. C++11

Visual C++ 라이브러리 기능

  • 표준 라이브러리 형식용 UDL(사용자 정의 리터럴) 이제는 사용자의 편의를 위해 <chrono>, <string> 및 <complex> 헤더가 UDL 연산자를 제공합니다. 예를 들어 123ms는 std::chrono::milliseconds(123)을, "hello"는 std::string("hello")를, 3.14i는 std::complex(0.0, 3.14)를 의미합니다.
  • Null 정방향 반복기 이제 표준 라이브러리에서 컨테이너 인스턴스를 참조하지 않는 정방향 반복기를 만들 수 있습니다. 이러한 반복기는 값을 초기화하며 특정 컨테이너 형식과 같은지를 비교합니다. 값이 초기화된 반복기를 값이 초기화되지 않은 반복기와 비교하는 작업은 정의되지 않습니다. C++14
  • quoted() 이제는 표준 라이브러리에서 quoted() 함수가 지원되므로 따옴표로 묶인 문자열 값과 I/O를 사용하여 보다 쉽게 작업할 수 있습니다. quoted()를 사용하는 경우 따옴표로 묶인 전체 문자열이 단일 엔터티로 처리되며(공백이 아닌 문자의 문자열은 I/O 스트림에 있음) I/O 작업 전체에서 이스케이프 시퀀스가 보존됩니다. C++14
  • 다른 유형의 연관 조회 이제 표준 라이브러리에서 연관 컨테이너에 대해 다른 유형의 조회 함수를 지원합니다. 이러한 함수를 사용하면 key_type이 아닌 형식(해당 형식이 key_type과 비교 가능한 경우)으로 조회를 할 수 있습니다. C++14
  • 컴파일 타임 정수 시퀀스 이제 표준 라이브러리에서 매개 변수 팩을 보다 쉽게 사용하고 특정 템플릿 프로그래밍 패턴을 간소화하기 위해 컴파일 타임에 평가할 수 있는 정수 값 시퀀스를 나타내는 integer_sequence 형식을 지원합니다. C++14
  • exchange() 이제 표준 라이브러리에서 새 값을 개체에 할당하고 이전 값을 반환하기 위한 std::exchange() 유틸리티 함수를 지원합니다. 복합 형식의 경우 exchange()를 사용하면 이동 생성자를 사용할 수 있는 경우 이전 값을 복사하지 않으며, 새 값이 임시 값이거나 이동되는 경우 복사하지 않으며, 변환 할당 연산자를 활용하여 모든 형식을 새 값으로 허용합니다. C++14
  • Dual-Range equal(), is_permutation(), mismatch() 이제 표준 라이브러리에서 두 범위를 허용하는 std::equal(), std::is_permutation() 및 std::mismatch()에 대한 오버로드를 지원합니다. 이러한 오버로드는 두 시퀀스의 길이가 같은지 확인하므로 호출 코드에서 이를 확인하지 않아도 됩니다. 임의 반복기 요구 사항을 지원하지 않는 시퀀스의 경우 이러한 오버로드는 요소를 비교하는 동시에 길이를 확인하므로 효율성이 보다 높아집니다. C++14
  • get<T>() 이제 표준 라이브러리에서 튜플 요소의 주소를 형식에 따라 지정할 수 있도록 get<T>() 템플릿 함수를 지원합니다. 튜플에 같은 형식의 요소가 둘 이상 포함되어 있으면 get<T>()를 사용해도 해당 형식으로 튜플에 주소를 지정할 수 없지만 고유한 형식의 다른 요소에는 주소를 계속 지정할 수 있습니다. C++14
  • tuple_element_t 이제 표준 라이브러리에서 tuple_element<I, T>::type의 별칭인 tuple_element_t<I, T> 형식 별칭을 지원합니다. 따라서 <type_traits>의 기타 메타 함수 형식 별칭과 마찬가지로 템플릿 프로그래머의 작업이 어느 정도 편리해집니다.  C++14
  • 파일 시스템 "V3" 기술 사양 포함된 파일 시스템 기술 사양 구현이 사양 버전 3으로 업데이트되었습니다. [N3940]
  • 최소 할당자 이제 표준 라이브러리 전체에서 최소 할당자 인터페이스가 지원됩니다. 중요한 수정 항목은 std::function, shared_ptr, allocate_shared() 및 basic_string입니다. C++11
  • <chrono> chrono 형식 high_resolution_clock 및 steady_clock이 수정되었습니다. C++11

Visual C++에서의 보다 빠른 빌드

  • 증분 LTCG(링크 타임 코드 생성) 이제는 증분 연결과 LTCG를 함께 사용하여 LTCG를 사용하는 응용 프로그램의 링크 시간을 줄일 수 있습니다. /LTCG:incremental 및 /LTCG:incremental_rebuild 링커 스위치를 사용하여 이 기능을 활성화합니다. \
  • 정적 라이브러리의 증분 링크 다른 코드 모듈이 참조하는 정적 라이브러리의 변경 내용이 이제 증분 링크됩니다.
  • /Debug:FastLink는 새로운 PDB 작성 기술을 사용하여 링크 시간을 크게 줄입니다.
  • 링크 시간을 줄이기 위해 링커의 알고리즘이 개선되었습니다.
  • 템플릿을 많이 사용하는 코드를 빠르게 작성할 수 있도록 기능이 개선되었습니다.
  • 빠른 PGO(프로필 기반 최적화) 계측 게임 및 실시간 시스템용의 새로운 경량 계측 모드가 PGO에 도입되었습니다. /GENPROFILE 및 /FASTGETPROFILE 링커 스위치를 통해 제공되는 다른 새 기능을 사용할 수 있을 뿐 아니라 이제는 PGO 사용 시 코드의 품질과 빌드 속도 간의 균형을 적절하게 유지할 수 있습니다.
  • 개체 파일 크기 감소 컴파일러 및 C++ 표준 라이브러리가 개선되어 개체 파일 및 정적 라이브러리의 크기가 매우 작아졌습니다. 중복 코드는 이전에 링커를 통해 제거되었으므로 이러한 기능 향상은 DLL(동적 연결 라이브러리) 또는 실행 파일(EXE) 크기에는 영향을 주지 않습니다.

Visual C++ 성능 및 코드 품질

  • 자동 벡터화 개선. 제어 흐름의 벡터화(if-then-else) 및 /O1에서 컴파일할 때의 벡터화(크기 최소화)가 향상되었으며, 더 많은 범위 기반 For 루프를 벡터화하는 병렬 STL 지원 및 #pragma loop(ivdep) 지원을 포함한 벡터 코드 품질이 전반적으로 향상되었습니다.
  • 스칼라 최적화 개선. 비트 테스트 작업의 코드가 보다 효율적으로 생성되고, 흐름 제어 병합 및 최적화(loop-if 전환)가 가능하며, 기타 스칼라 최적화 기능(예: std::min 및 std::max를 위한 효율적인 코드 생성)이 제공됩니다.
  • PGO(프로필 기반 최적화). PGO의 기능이 다수 향상되었습니다. 여기에는 개선된 참조 집합, 보다 효율적인 데이터 레이아웃 기능, 그리고 이전에 결정한 인라인, 속도와 크기 간의 균형 및 레이아웃 설정을 다시 사용하는 기능이 포함됩니다.
  • CFG(제어 흐름 보호). 새로운 보안 기능이 추가되었습니다. 새 옵션을 프로젝트에 추가하기만 하면 Visual C++ 컴파일러가 추가 보안 검사를 바이너리에 삽입하여 코드를 가로채려는 시도를 감지하는 데 도움이 됩니다. 검사가 실행되면 하이재커가 데이터 또는 PC에 손상을 가하기 전에 코드 실행이 중지됩니다. 

    참고: 명령 옵션이 업데이트되었습니다. 이전 릴리스에서와 같이 /d2guard4 스위치를 사용하는 대신 이제는 /guard:cf
     

Visual C++ 생산성, 디버깅 및 진단

다음 기능을 통해 C++에 대한 리팩터링 지원이 추가되었습니다.

  • 기호 이름 변경 기호의 모든 발생이 새 이름으로 변경되었습니다.
  • 함수 추출 선택한 코드가 자체 함수로 이동됩니다. 이 리팩터링은 Visual Studio 갤러리에서 Visual Studio 확장으로 제공됩니다.
  • 순수 가상 함수 구현 클래스나 구조체에 의해 상속되는 순수 가상 함수에 대한 함수 정의가 생성됩니다. 다중 상속 및 재귀 상속이 지원됩니다. 이 리팩터링을 상속하는 클래스 정의에서 활성화하여 상속되는 모든 순수 가상 함수를 구현하거나, 기본 클래스 지정자에서 활성화하여 해당 기본 클래스에서만 순수 가상 함수를 구현할 수 있습니다.
  • 선언 또는 정의 만들기 기존 정의에서 선언을 생성하거나 기존 선언에서 기본 정의를 생성합니다. 기존 선언 또는 정의나 전구 모양 표시기에서 이 리팩터링에 액세스합니다.
  • 이동 함수 정의 소스 코드와 헤더 파일 간에 함수 본문을 이동할 수 있습니다. 함수의 서명에서 이 리팩터링을 활성화합니다.
  • 원시 문자열 리터럴로 변환 이스케이프 시퀀스가 포함된 문자열을 원시 문자열 리터럴로 변환합니다. 지원되는 이스케이프 시퀀스는 \n(줄 바꿈), \t(탭), \'(작은따옴표), \"(큰따옴표) 및 \?(물음표)입니다. 문자열 내에서 아무 곳이나 마우스 오른쪽 단추를 클릭하여 이 기능을 활성화합니다.

Visual C++의 PDB(프로그램 데이터베이스) 향상 기능에는 다음이 포함됩니다.

  • 솔루션 검사 속도(특히 큰 솔루션)가 개선되었습니다.
  • 새 솔루션을 처음으로 여는 초기 솔루션 검사를 제외하면 솔루션 검사 중에 정의로 이동 등의 작업이 더 이상 차단되지 않습니다.

IntelliSense 가독성 개선: 복잡한 템플릿 인스턴스화 및 형식 정의가 보다 쉽게 읽을 수 있도록 매개 변수 도움말 및 요약 정보에서 간소화되었습니다.

C++의 디버거 시각화

손쉬운 관리 및 소스 제어 통합을 위해 Natvis 디버거가 Visual Studio 프로젝트에 추가되었습니다. 프로젝트에 추가된 Natvis 파일은 프로젝트 외부의 Natvis 시각화 도우미보다 우선적으로 평가됩니다. 자세한 내용은 디버거에서 네이티브 개체의 사용자 지정 보기 만들기를 참조하세요.

이제 RC부터 Android에서 C++를 디버그하는 동안 Natvis 파일을 사용할 수 있습니다. 디버거는 여러 일반적인 템플릿에 대한 시각화를 포함하며, C++ 프로젝트에 추가된 사용자 지정 파일을 로드할 수 있도록 지원합니다.

기본 메모리 진단

  • 메모리 진단 세션(Alt+F2)에서 네이티브 응용 프로그램의 라이브 메모리 사용을 모니터링할 수 있습니다.
  • 메모리 스냅숏에서는 응용 프로그램 힙 콘텐츠의 임시 이미지를 캡처합니다. 두 메모리 스냅숏을 비교하여 힙 상태의 차이를 검사할 수 있습니다. 응용 프로그램을 중지한 후 각 인스턴스에 대해 개체 형식, 인스턴스 값 및 할당 호출 스택을 확인할 수 있습니다.

교착 상태 감지 및 복구 기능 개선 조사식 및 직접 실행 창에서 C++ 함수를 호출할 때 개선된 기능을 사용할 수 있습니다.

컴파일러 진단 개선 컴파일러에서 의심스러운 코드에 대한 향상된 경고를 제공합니다. 숨겨진 변수와 일치하지 않는 printf 형식 문자열 등에 대한 새로운 경고가 추가되었습니다. 기존 경고 메시지도 더 명확해졌습니다.

/Wv 플래그 /Wv:XX.YY.ZZZZ 플래그를 사용하면 특정 컴파일러 버전 XX.YY.ZZZZ 이후 도입된 경고를 사용하지 않도록 설정할 수 있습니다. /Wv 플래그를 통해 지정하는 경고 이외의 경고도 구체적으로 사용하지 않도록 설정할 수 있습니다.

최적화된 코드 디버깅 지원 개선 /Zi, /Zo 또는 /Z7 플래그를 사용하여 코드를 디버그할 수 있습니다.

Visual C++ 그래픽 진단

다음 기능을 통해 그래픽 진단이 개선되었습니다.

  • 연속 캡처 캡처 한 번에 연속 프레임을 30개까지 캡처할 수 있습니다.
  • 프로그래밍 방식 캡처 프레임 캡처를 프로그래밍 방식으로 시작할 수 있습니다. Present를 호출하지 않는 프로그램에서 계산 셰이더를 디버그할 때나, 렌더링 문제가 발생하여 수동 캡처는 어렵지만 런타임에 앱 상태에서 프로그래밍 방식으로 예측은 가능한 경우 프로그래밍 방식 캡처가 특히 유용합니다.
  • 향상된 그래픽 이벤트 목록 캡처된 이벤트와 해당 상태를 그리기 호출로 구성된 계층 구조에 표시하는 새로운 그리기 호출 보기가 추가되었습니다. 그리기 호출을 확장하여 그리기 호출 시 현재 상태였던 장치 상태를 표시할 수 있으며, 각 상태 종류를 추가로 확장하여 해당 값을 설정하는 이벤트를 표시할 수 있습니다.
  • Windows Phone 8.1 지원 이제 그래픽 진단에서 휴대폰 에뮬레이터 또는 테더링된 휴대폰의 Windows 앱 디버깅을 완전하게 지원합니다.
  • 그래픽 프레임 분석 이 도구는 캡처된 프레임에 대한 성능 측정값을 수집합니다. 또한 미리 정의된 일련의 실험을 수행하므로, 다양한 질감 기술을 적용할 때 성능에 어떤 영향을 주는지를 파악할 수 있습니다. 또한 프레임 분석은 하드웨어에서 성능 카운터를 수집합니다.
  • Graphics Analysis 전용 UI 그래픽 프레임 분석을 위한 전용 작업 공간인 Visual Studio Graphics Analysis 창이 새롭게 제공됩니다.
  • 셰이더 편집 및 적용 앱을 다시 실행하지 않고도 캡처된 로그에서 셰이더 코드 변경 내용의 영향을 확인할 수 있습니다.
  • 도구->옵션->그래픽 진단에서 캡처 옵션을 구성합니다.
  • 프레임 캡처 및 재생을 위한 명령줄 도구가 제공됩니다.
  • DirectX 12에 대한 그래픽 진단을 지원합니다. Visual Studio 그래픽 진단 도구에서는 이제 DirectX 12 응용 프로그램의 렌더링 문제에 대한 디버깅이 지원됩니다.

새로운 GPU 사용량 도구

Visual Studio 2015에서는 GPU 사용량 도구를 사용하여 DirectX 응용 프로그램의 GPU 사용량을 파악할 수 있습니다. 응용 프로그램을 라이브로 실행하는 동안 프레임 시간, 프레임 속도 및 GPU 사용률을 확인할 수 있습니다. 또한 이 도구는 자세한 GPU 사용량 데이터를 수집 및 분석하여 개별 DirectX 이벤트의 GPU 및 GPU 실행 시간에 대한 정보를 제공할 수 있습니다. 그러므로 CPU 또는 GPU가 성능 병목 현상의 원인인지를 확인하는 데 유용할 수 있습니다.

Visual C++ 관리되는 테스트 프로젝트의 디버깅 사용

RTM의 새로운 기능: Visual C++ 관리되는 테스트 프로젝트의 디버깅을 사용하려면 "도구 | 옵션 | 디버깅 | 일반"창으로 이동하여 "모듈을 로드할 때 JIT 최적화 기능 사용 안 함(관리 전용)" 옵션을 선택합니다.

맨 위로 이동

C# 및 Visual Basic

언어 기능

이 릴리스에서는 다양한 C# 및 Visual Basic 언어 기능이 새롭게 제공되므로 일상적으로 사용하는 코드의 상용구를 줄이고 간단하게 작성할 수 있습니다. 또한 보다 선언적인 프로그래밍 스타일을 활용할 수 있으며 두 언어를 보다 긴밀하게 통합할 수 있습니다. 예를 들어 형식 및 멤버 선언과 null 확인의 구문이 개선되었습니다. 또한 식 내에 로컬 변수를 선언할 수 있으며 catch 및 finally 블록에서 await를 사용할 수 있습니다. 이전 릴리스에서는 이러한 대부분의 기능이 두 언어 중 하나에 대해서만 구현되지만 최종 릴리스에서는 두 언어에 대해 모두 제공될 예정입니다.

  • Nameof를 사용하면 매개 변수, 멤버 또는 형식의 이름을 리팩터링으로부터 안전하게 문자열로 가져올 수 있습니다.
  • null 조건부 연산자를 사용하면 멤버 및 인덱서 액세스 및 호출 중에 기본 제공 null 확인을 수행할 수 있습니다.
  • 문자열 보간:  문자열 보간 시 식을 형식 문자열로 삽입하는 문자열 템플릿을 간단하게 설명할 수 있습니다. Preview에서는 C#만 지원되며 RTM에서는 VB와 C#이 모두 지원될 예정입니다.
  • 이제는 메서드 및 getter 전용 속성 등의 본문에 람다와 마찬가지로 식을 하나 포함할 수 있습니다.
  • 자동 속성이 이니셜라이저를 포함할 수 있으며 setter는 더 이상 필요하지 않습니다.
  • 인덱스 이니셜라이저: 이제 개체 이니셜라이저 내에서 새 개체의 특정 인덱스를 초기화할 수 있습니다. C#만 지원됩니다.
  • 예외 필터를 사용하면 예외를 확인해 지정된 catch 블록으로 해당 예외를 catch할지 여부를 결정할 수 있습니다.
  • 정적 클래스에 대해 절을 사용하면 해당 정적 멤버를 범위로 직접 가져올 수 있으므로, 클래스 이름을 접두사로 붙이지 않아도 WriteLine() 또는 Sqrt() 등을 호출할 수 있습니다.
  • 대기는 이제 catch 및 finally 블록에서 작동하므로 까다로운 해결 방법을 사용하지 않아도 됩니다.

코드 편집기 UI 및 편집

C# 및 Visual Basic의 코드 편집기 UI와 편집 환경이 .NET 컴파일러 플랫폼("Roslyn")을 기반으로 구축된 새 환경으로 바뀌었습니다. 현재 일상적으로 사용하는 대부분의 기능이 개선되거나 개선되었습니다.

  • 일반적인 코드 문제 수정, 코드 리팩터링 등 Visual Studio 편집기에서 수행하는 모든 빠른 작업은 전구 모양 아이콘에서 시작합니다. 코드에 문제가 있으면 해당 문제에 대한 제안 해결 방법이 전구에 표시됩니다. 모든 리팩터링 작업이 전구로 이동되었습니다. Ctrl+<점>을 입력하면 언제든지 전구에 액세스할 수 있습니다. 전구에 표시되는 제안 사항
  • 두 가지 핵심 리팩터링 작업인 인라인 임시 변수 및 로컬 지정이 새롭게 제공됩니다. 새로운 로컬 지정 기능의 예제는 다음과 같습니다.

    로컬 전구 소개

    인라인 임시 변수의 예제는 다음과 같습니다.

    인라인 임시 전구
  • Visual Basic에 대한 리팩터링 지원이 처음 추가되어 전구로 이동되었습니다.
  • 이름 바꾸기도 개선되어 이제는 이름을 바꿀 식별자의 모든 인스턴스가 강조 표시됩니다. 따라서 모든 인스턴스의 새 이름을 편집기에서 한 번에 직접 입력할 수 있습니다.

    인라인 이름 바꾸기 개선
  • 입력하면서 라이브 코드 분석 및 자동 수정 내용을 확인할 수 있으며, 대상 NuGet 패키지 및 Microsoft 플랫폼에 대한 구체적인 코드 인식 지침이 제공됩니다. Preview에서는 다른 패키지와 마찬가지로 NuGet 갤러리에서 제공되는 NuGet 패키지를 통해 라이브 FxCop 분석기를 추가해야 합니다. 지정된 라이브 규칙을 끌어오면 그에 해당하는 빌드 후 FxCop 규칙이 대체되므로 적중 횟수가 중복되지 않습니다.

    Azure용 코드 분석 패키지의 예제는 다음과 같습니다.

    Azure용 코드 분석 패키지의 예제
  • C# 및 Visual Basic의 식 평가기가 다시 작성되었습니다. 개선 사항으로는 조사식 창과 직접 실행 창의 LINQ 및 람다 식 지원이 포함됩니다.

F#

언어 및 런타임 기능

F# 4.0에는 핵심 영역에서 격차를 없애고, 더 많은 "작동" 기능을 수행하며, 성능을 향상시켜 주는 새로운 다양한 언어 및 런타임 추가 기능이 포함되었습니다. 컴파일러 및 런타임에서도 여러 버그 및 소규모 성능 최적화가 구현되었습니다.

  • 첫 번째 클래스 함수로서의 생성자 - 클래스 이름을 이제 첫 번째 클래스 함수 값으로 사용하여 해당 클래스에 대한 생성자를 나타낼 수 있습니다.
  • 'mutable' 및 'ref' 통합 - 'mutable' 구문은 이제 어디에서나 사용할 수 있으며, 캡처된 값은 필요 시 컴파일러에 의해 힙 기반 'ref' 값으로 자동으로 변환됩니다. 개발자가 이 상황에 대한 알림을 받기를 원하는 경우에 대비하여 새로운 선택적인 경고가 추가되었습니다.
  • 제공된 메서드에 대한 정적 매개 변수 - 형식 공급자에서 제공하는 개별 메서드가 이제 정적 매개 변수를 지정할 수 있습니다.
  • null 비허용 제공 형식 - 제공된 형식을 이제는 표준 [<AllowNullLiteral(false)>]을 통해 null 비허용으로 지정할 수 있습니다.
  • 메서드 인수의 암시적 인용 -Expr<'t> 이제 형식의 메서드 인수를 투명하게 자동 인용하고 이를 생성한 식의 인수 값 및 AST를 모두 전달할 수 있습니다.
  • 확장된 전처리기 문법 - 부울 연산자 ||, && 및 ! 를 #if preprocessor 지시문에서 ( ) 그룹화와 함께 사용할 수 있습니다.
  • 측정 단위의 관계형 지수 - 측정 단위에서는 이제 전기 공학과 같은 물리 과학에 사용되는 관계형 지수를 지원합니다.
  • 'printf' 스타일 함수로 측정 단위 값 사용 간소화 - 결합된 숫자 값이 이제 단위를 제거하지 않아도 숫자 printf 형식 지정자와 문제없이 작동합니다.
  • 고차원 .NET 배열 지원 - 이제 5등급 이상의 .NET 배열을 F# 코드로 사용할 수 있습니다.
  • 객체 이니셜라이저의 확장 속성 - 이제는 설정 가능한 확장 속성을 개체 이니셜라이저 표현식에서 할당할 수 있습니다.
  • 여러 제네릭 인터페이스 인스턴스화에서 상속 - 이제 F#으로 작성된 클래스가 여러 제네릭 인터페이스 인스턴스화를 구현하는 클래스에서 상속하도록 허용됩니다.
  • 'StructuredFormatDisplayAttribute'의 여러 속성 - 이제 [<StructuredFormatDisplay>]를 통해 지정된 %A 서식 지정에 여러 속성을 포함할 수 있습니다.
  • 선행 'Microsoft' 네임스페이스 선택 사항 - FSharp.Core에서 모듈 및 네임스페이스를 소비하거나 열 때 선행 "Microsoft."가 이제는 선택 사항입니다.

F# 런타임

  • 배열, 목록 및 시퀀스 모듈의 정규화 - 컬렉션 처리 함수 집합이 이제는 Array, List 및 Seq 모듈 간에 각 형식에 대한 전용 최적화 구현과 일관됩니다(특정 형식에 적용할 수 없는 API 차단).
  • 최적화된 구조 해시 - 원시 형식에 대한 제네릭 해시 비교 성능 향상을 위해 대대적인 최적화가 수행되어, 'distinct' 및 'groupBy'와 같은 API의 성능이 향상되었습니다.
  • 비구조적 비교 연산자 최적화 - 이제 FSharp.Core.Operators.NonStructuralComparison 모듈을 열 수 있으므로, 기본 F# 구조적 비교 연산자를 보다 효율적인 비구조적 연산자로 대체할 수 있습니다. 이를 통해 사용자 지정 연산자 구현으로 형식, 특히 값 형식을 처리할 때 상당한 성능 이점을 제공할 수 있습니다.
  • F# 목록의 조각화 구문 - F# 목록에서는 이제 하위 목록을 가져오기 위한 조각화 구문이 지원됩니다.
  • System.Net.WebClient'에 대한 비동기 확장 - 이제 WebClient 확장인 AsyncDownloadFile 및 AsyncDownloadData를 사용할 수 있습니다.
  • 더 나은 비동기 스택 추적 - F# 비동기 계산에서 발생하는 예외가 이제는 사용자에게 보다 친숙한 스택 추적을 전달할 수 있으므로, 문제를 보다 쉽게 진단할 수 있습니다.
  • 옵션에 대한 Interop API - null 개체와 System.Nullable 값에 대한 변환을 위해 다양한 새로운 API가 옵션 모듈에 추가되었습니다.
  • System.Decimal 값에 대한 따옴표 활성 패턴 - 따옴표 안의 상수 리터럴 System.Decimal 값을 비교하기 위해 이제 활성 패턴이 기본 제공됩니다.

F# IDE 기능

여러 가지 버그 수정과 함께 Visual F# 도구의 새로운 환경 및 기능이 제공됩니다.

  • 스크립트 디버깅 - F# 스크립트는 이제 Visual Studio 디버거에서 직접 디버그할 수 있습니다.
  • 프로젝트 템플릿의 어셈블리 메타데이터 - 모든 F# 프로젝트 템플릿에는 일반적인 어셈블리 수준의 메타데이터 특성이 포함된 AssemblyInfo.fs 파일이 포함됩니다.
  • 통합된 최신 검사 - F# 프로젝트가 이제 Visual Studio에서 빌드될 때 "최신" 상태를 올바르게 보고합니다.
  • 개체 이니셜라이저의 IntelliSense 완성 - 개체 이니셜라이저 표현식에서 이제 Ctrl+Space를 사용하여 설정 가능한 속성의 IntelliSense 완성 기능을 지원합니다.
  • 명명된 매개 변수에 대한 IntelliSense 완성 - 메서드 및 생성자 호출에서 이제 Ctrl+Space를 사용하여 명명된 매개 변수의 IntelliSense 자동 완성을 지원합니다.
  • 폴더 지원 관련 버그 수정 - Visual F# 도구는 프로젝트에서 폴더를 직접 지원하지는 않지만, 많은 프로젝트 시스템 버그가 수정되어 Visual F# Power Tools 확장으로 추가된 폴더 지원이 향상됩니다.

F#에 대해 자세히 알아보세요.

맨 위로 이동

.NET Framework 4.6

.NET Framework의 최신 버전은 4.6입니다. 새로운 일부 기능은 다음과 같습니다.

기본 클래스 라이브러리 변경 내용

주요 시나리오(특히 플랫폼 간 시나리오)를 수행할 수 있도록 여러 API가 새롭게 추가되었습니다. 구체적으로는 다음과 같은 항목이 변경 및 추가되었습니다.

  • AsymmetricAlgorithm.KeyExchangeAlgorithm, AsymmetricAlgorithm.SignatureAlgorithm, System.Security.Cryptography.X509Certificates.X509Certificate 등의 새 암호화 API가 추가되었습니다.
  • System.Collections.Generic.Queue 및 System.Collections.Generic.Stack을 포함한 추가 컬렉션이 System.Collections.ObjectModel.ReadOnlyCollection을 구현합니다.
  • Task.CompletedTask 및 NamedPipeClientStream.ConnectAsync를 포함한 추가 멤버가 TAP(작업 기반 비동기 패턴)를 지원합니다.

코드 페이지 인코딩 지원

.NET Core에서는 기본적으로 유니코드 인코딩을 지원하며 기본적으로 코드 페이지 인코딩을 제한적으로 지원합니다. Encoding.RegisterProvider 메서드를 사용하여 코드 페이지 인코딩을 등록해 .NET Framework에서는 사용 가능하지만 .NET Core에서는 지원되지 않는 코드 페이지 인코딩에 대한 지원을 추가할 수 있습니다. 자세한 내용은 CodePagesEncodingProvider를 참조하세요.

이벤트 추적 개선 사항

이제는 EventSource 개체를 직접 생성할 수 있으며 Write() 메서드 중 하나를 호출하여 자체 설명 이벤트를 내보낼 수 있습니다.

Windows Forms 컨트롤 크기 조정

이 기능이 확장되어 System.Windows.Forms.DomainUpDown, System.Windows.Forms.NumericUpDown, System.Windows.Forms.DataGridViewComboBoxColumn, System.Windows.Forms.DataGridViewColumn 및 System.Windows.Forms.ToolStripSplitButton 형식이 포함되었습니다. 
이 기능은 옵트인(opt in) 기능입니다. 이 기능을 사용하도록 설정하려면 응용 프로그램 구성(app.config) 파일에서 EnableWindowsFormsHighDpiAutoResizing 요소를 true로 설정합니다.

관리 코드용 64비트 JIT 컴파일러

이번 릴리스에는 레거시 64비트 JIT 컴파일러에 비해 성능이 크게 개선된 새 버전의 64비트 JIT 컴파일러가 포함되어 있습니다. 사용자가 새 컴파일러로 최대한 원활하게 전환할 수 있도록 노력했지만 동작이 변경될 수는 있습니다.

DateTime과 Unix 시간 간 변환 지원

DateTime과 Unix 시간 간 변환을 지원하는 새 메서드가 추가되었습니다. DateTimeOffset에 추가된 API는 다음과 같습니다.

  • static DateTimeOffset FromUnixTimeSeconds(긴 시간 형식(초))
  • static DateTimeOffset FromUnixTimeMilliseconds(긴 시간 형식(밀리초))
  • long ToUnixTimeSeconds()
  • long ToUnixTimeMilliseconds()

ASP.NET 모델 바인딩의 태스크 반환 메서드 지원

이전에는 태스크를 반환했던 ASP.NET 모델 바인딩 메서드가 지원되지 않았으며 구성하는 경우 런타임에 예외가 throw되었습니다. 이제는 이러한 메서드를 사용하여 응용 프로그램을 배포하는 경우 메서드가 올바르게 실행됩니다. 이 변경 내용은 .NET 4.6 이상을 대상으로 하는 응용 프로그램에만 적용됩니다.

관리되는 EventSource 계측을 위한 채널 지원

이 릴리스에서는 관리되는 개발자가 많은 양의 관리 또는 운영 메시지를 이벤트 로그에 기록하기 위해 컴퓨터에서 작성된 기존 ETW 세션 이외에 기존의 관리되는 EventSource 계측을 다시 사용할 수 있습니다. 여기에는 사용자 지정 이벤트 원본에 대해 정의된 ETW 이벤트 메서드의 대상 채널을 지정하고, 이벤트 기록 여부를 테스트할 때 해당 채널을 고려하고, 채널 지원에 필요한 정적 ETW 매니페스트 등록을 지원하는 API가 포함됩니다.

어셈블리 로더 개선

이제 어셈블리 로더가 해당하는 NGEN 이미지 로드 후 IL 어셈블리를 언로드하여 메모리를 보다 효율적으로 사용합니다. 이 변경으로 인해 가상 메모리가 감소하므로 Visual Studio와 같은 대형 32비트 앱에 특히 유용하며, 실제 메모리도 절약할 수 있습니다.

Entity Framework

이번 릴리스에는 Entity Framework 7의 Preview 버전과 Entity Framework 6의 업데이트(주로 버그 수정 및 커뮤니티 제공 기능이 포함됨)가 포함되어 있습니다.

Entity Framework 7

Entity Framework의 새 버전에서는 새 플랫폼과 새 데이터 저장소를 사용할 수 있습니다. 이제는 Windows Phone, Windows 스토어, ASP.NET 5 및 기존의 데스크톱 응용 프로그램이 Entity Framework를 사용할 수 있습니다. 이 프레임워크 버전에서는 관계형 데이터베이스와 비관계형 데이터 저장소(예: Azure 테이블 저장소 및 Redis)를 모두 지원합니다. 여기에는 새 ASP.NET 5 프로젝트에 설치되는 EF7 런타임의 초기 Preview가 포함됩니다. EF7에 대한 자세한 내용은 EF7 정보를 참조하세요.

Entity Framework 6.x

이 릴리스에는 런타임 및 도구의 EF6.1.3 버전이 포함되어 있습니다. EF 6.1.3에는 버그 수정 및 커뮤니티 제공 기능이 포함되어 있습니다. EF 6.1.3에 포함된 변경 내용의 목록은 Entity Framework CodePlex 사이트에서 확인할 수 있습니다. 

Entity Framework 6.1.1 런타임은 이 릴리스의 여러 위치에 포함되어 있습니다.

  • EF 런타임이 아직 설치되지 않은 프로젝트에서 Entity Framework Tools를 사용하여 새 모델을 만들면 런타임이 설치됩니다.
  • 선택하는 프로젝트 템플릿에 따라 새 ASP.NET 프로젝트에서는 런타임이 미리 설치됩니다.

Entity Framework에 대해 자세히 알아보세요.

Visual Studio IDE

공유 계정

RTM의 새로운 기능으로, Visual Studio에 추가한 사용자 계정을 Blend for Visual Studio 또는 Microsoft Test Manager와 같은 다른 앱과 공유할 수 있습니다(그 반대의 경우도 가능).

공유 프로젝트

이 릴리스에서는 새 템플릿을 사용하여 Visual Basic, C# 및 JavaScript용 빈 공유 프로젝트를 만들 수 있습니다. 이제는 이러한 공유 프로젝트를 여러 프로젝트 형식에서 참조할 수 있습니다.

  • 버전이 없는 VB/C# 프로젝트(예: 콘솔 앱, 클래스 라이브러리, Windows Forms 앱)
  • Windows 스토어 8.1 및 Windows Phone 8.1(VB/C#/JavaScript)
  • Windows Phone Silverlight 8.0/8.1(VB/C#)
  • WPF 및 PCL

참조 관리자의 공유 프로젝트 탭을 통해 공유 프로젝트에 대한 참조를 추가/제거할 수 있습니다. 공유 프로젝트 참조는 솔루션 탐색기의 참조 노드 아래에 표시되지만 공유 프로젝트의 코드와 자산은 기본 프로젝트에 연결된 파일처럼 처리됩니다.

코드 편집기(모든 언어)

파일에서 찾기가 개선되어 후속 결과를 이전 결과에 추가할 수 있게 되었습니다. 누적된 결과는 삭제할 수 있습니다.

이제 Visual Studio 편집기에서 다음 제스처에 대해 터치가 지원됩니다.

  • 스크롤(편집기 화면의 일반 및 향상된 스크롤 막대에에서 누르기 및 끌기)
  • 손가락을 모아 확대/축소
  • 편집기 여백을 눌러 전체 줄을 선택한 다음 두 번 눌러 단어 선택
  • 길게 눌러 편집기의 상황에 맞는 메뉴 호출

터치 시 낮은 확대/축소 수준에서는 두 번 누르기 제스처가 안정적으로 수행되지 않을 수도 있다는 한 가지 문제가 있습니다. 새로운 터치 지원, 특히 발견되는 문제에 대한 여러분의 의견을 알려 주시기 바랍니다.

XAML 디자이너

이제 Visual Studio 고객은 사용 컨텍스트 내에서 외부 리소스 사전에 저장된 템플릿 및 스타일을 편집할 수 있습니다. 이 환경은 미리 보기를 사용하도록 보다 세분화되어 XAML 디자이너에서 완벽한 상황 내 리소스 편집이 가능해졌습니다.

사용자 지정 창 레이아웃

이제 창 메뉴에서 창 레이아웃 저장을 클릭하여 사용자 지정 창 레이아웃을 저장하고  메뉴에서 창 레이아웃 적용을 클릭하여 사용자 지정 레이아웃을 적용할 수 있습니다. 또한 미리 할당된 바로 가기 키를 사용하여 레이아웃을 적용할 수도 있습니다. 첫 9개 레이아웃에도 바로 가기 키(Ctrl+Alt+1 ~ Ctrl+Alt+9)가 있습니다. 창 메뉴에서 창 레이아웃 관리를 클릭하여 레이아웃을 삭제 및 다시 정렬하고 이름을 바꾸는 등의 다른 작업도 수행할 수 있습니다.

고해상도 아이콘

Visual Studio에서는 명령 모음, 도구 창 도구 모음(표준), 기본 메뉴, 오류 목록, 상태 표시줄 및 일부 솔루션 탐색기 프로젝트 형식(장치를 100%보다 높은 DPI 조정으로 실행하는 경우)에서 고해상도 아이콘을 지원합니다.

향상된 UI

  • 이제 메뉴가 모두 대문자로 스타일이 아닌 단어의 첫 글자를 대문자로 스타일로 표시됩니다.
  • Visual C++ 속성 페이지 대화 상자의 구성 및 플랫폼 드롭다운 값이 변경되어 속성 페이지를 닫았다가 다시 열 때 마지막으로 사용자가 선택한 항목이 저장됩니다.

Visual Studio 피드백

느린 속도, 작동 멈춤 및 충돌을 보다 효율적으로 보고하는 도구가 포함되어 찡그린 얼굴 보내기 환경이 향상되었습니다. 이제 문제를 더 효율적으로 설명하기 위해 파일을 첨부하거나 피드백에 태그를 지정할 수 있습니다. 또한 피드백 아이콘 및 메뉴 항목이 업데이트되어 검색 기능이 개선되었습니다.

Visual Studio 확장성

  • 이제 Visual Studio 확장에서 고해상도 아이콘을 사용할 수 있습니다.
  • 이 릴리스에서는 추가 기능이 더 이상 지원되지 않습니다. Visual Studio 추가 기능 프로젝트 템플릿 및 추가 기능 관리자가 제거되었습니다. 추가 기능을 VSPackage 확장으로 변환하는 것이 좋습니다. 자세한 내용은 FAQ: VSPackage 확장으로 추가 기능 변환을 참조하세요.
  • 이제는 Visual Studio SDK가 설치되어 있지 않아도 확장성 프로젝트를 열 수 있습니다.
  • 또한 Visual Studio 설치 프로그램을 사용하여 Visual Studio SDK를 설치할 수 있으므로, 웹 사이트로 이동하지 않아도 됩니다. 방법은 다음과 같습니다. 프로그램 추가/제거 메뉴에서 Visual Studio 2015를 마우스 오른쪽 단추로 클릭하고 수정을 선택합니다. Visual Studio 설치 대화 상자에서 일반 도구에 있는 Visual Studio 확장성 도구를 선택합니다.
  • 휴대성과 확장 프로젝트 공유를 향상하기 위해 Visual Studio SDK 참조 어셈블리의 NuGet 버전을 사용할 수 있습니다. 자세한 내용은 Visual Studio 확장성을 이용하여 게시된 어셈블리를 참조하세요.

Visual Studio 확장성에 대해 자세히 알아보세요.

맨 위로 이동

Blend

멋진 XAML 앱을 만들 수 있는 향상된 사용자 인터페이스 개발 환경을 제공하기 위해 Blend for Visual Studio 2015를 다시 디자인했습니다. Blend는 Visual Studio와 어울리는 세련된 디자인을 갖추고, 솔루션 및 팀 탐색기를 지원하며, 풍부한 다시 로드 환경을 제공하여 Blend 및 Visual Studio 간의 향상된 워크플로를 제공합니다. 또한 생산성을 높일 수 있도록 Blend에 가장 많이 요청되었던 기능을 추가했습니다.

  • 이제 소스에 문 완성 및 탐색 기능을 제공하는 XAML IntelliSense를 사용하여 XAML을 보다 효율적으로 작성할 수 있습니다.
  • 컨텍스트에서 XAML 정의 피크와 함께 사용되는 XAML 컨트롤 및 리소스를 컨텍스트 내에서 보고 편집할 수 있습니다.
  • 이제 라이브 시각적 트리 및 트리에 있는 모든 요소의 속성을 검사할 수 있도록 하는 XAML 디버깅용 UI 도구를 사용하여 실행 중인 앱에서 UI 문제 찾기 및 수정이 훨씬 쉬워졌습니다.
  • NuGet 지원 기능이 추가되어 Blend에서 NuGet 패키지를 관리할 수 있습니다.
  • 또한 애니메이션 작업 영역 기능이 훨씬 강력하고 동기화된 레이아웃 기능으로 교체되었으므로 여러 가지 창 레이아웃을 만들고 컴퓨터 간에 로밍하는 데 사용할 수 있습니다.
  • 마우스 대신 키보드를 사용하려는 고급 사용자를 위해 완벽하게 키보드로 액세스할 수 있는 Blend 디자이너 창을 만들었습니다.
  • 마지막으로 보편적으로 액세스할 수 있는 소프트웨어를 만들기 위한 Microsoft의 지속적인 노력의 일환으로서, Blend는 이제 완벽한 화면 읽기 프로그램과 고대비 액세스를 갖추게 되었습니다.

Blend에 추가된 새로운 기능에 대한 자세한 내용은 미리 보기 및 RC 블로그 게시물을 참조하세요. 늘 그렇듯이 Blend 사용자 의견을 사용하여 포함되었으면 하는 기능에 대한 제안을 게시해 주세요.

디버깅 및 진단

연결 시 관리되는 편집 및 계속 기능

RC부터 .NET 응용 프로그램에 연결할 때와 환경 변수 complus_forceenc 가 대상 프로세스에서 1로 설정되었을 때 편집 및 계속을 수행할 수 있습니다.

중단점 구성

새로운 중단점 설정 창에서 중단점에 대해 조건과 작업을 지정할 수 있습니다. 이 창에는 중단점 조건과 작업을 위한 개선된 IntelliSense 지원이 포함되어 있습니다. 실행 취소(Ctrl+Z)를 사용하여 삭제된 중단점을 복원할 수 있습니다.

디버거 창의 람다 식

이제 C# 및 Visual Basic의 조사식 창, 직접 실행 창 및 기타 디버거 창에서 람다 식을 사용할 수 있습니다.

PerfTips

중단점을 설정하고 디버거로 코드를 한 단계씩 실행하는 경우 PerfTips 기능을 사용하여 코드가 실행되는 데 걸린 시간을 편집기에서 바로 확인할 수 있습니다.

GPU 사용량

GPU 사용량 도구를 사용하여 DirectX 응용 프로그램의 GPU 사용량을 파악할 수 있습니다. 응용 프로그램을 라이브로 실행하는 동안 프레임 시간, 프레임 속도 및 GPU 사용률을 확인할 수 있습니다. 또한 이 도구는 자세한 GPU 사용량 데이터를 수집 및 분석하여 개별 DirectX 이벤트의 GPU 및 GPU 실행 시간에 대한 정보를 제공할 수 있습니다. 그러므로 CPU 또는 GPU가 성능 병목 현상의 원인인지를 확인하는 데 유용할 수 있습니다.

C++ 개선 사항

C++ 디버거는 중단점에서 중지되면 조사식 창과 직접 실행 창에서 데이터를 표시하는 등 결과를 계산하기 위해 코드를 실행할 수 있습니다. 디버거는 호출된 함수가 교착 상태임을 감지하면 문제 해결을 시도합니다.

이제는 C++ 디버거가 프로세스를 시작할 때 Windows가 디버그 일반 힙 대신 일반 힙을 사용하여 메모리를 할당합니다. 따라서 디버그가 더 빨리 시작됩니다. 자세한 내용은 Visual Studio 2015의 C++ 디버깅 개선 사항을 참조하세요.

XAML용 UI 디버깅 도구

실행 중인 WPF 응용 프로그램의 시각적 트리를 조사하고 이 트리에 있는 모든 요소에 대한 속성을 조사하는 데 사용할 수 있는 두 가지 새로운 도구인 라이브 시각적 트리 및 라이브 속성 탐색기가 추가되었습니다. 간단히 말해서, 이러한 도구를 사용하면 실행 중인 앱에서 모든 요소를 선택하고 계산 및 렌더링된 최종 속성을 확인할 수 있습니다. 그 외에 다음을 참조하시기 바랍니다.

  • 라이브 시각적 트리. 이제는 디버그 세션 중 실행 중인 응용 프로그램의 전체 시각적 트리를 확인할 수 있습니다. 라이브 시각적 트리는 Visual Studio에서 F5를 누르거나 실행 중인 응용 프로그램에 연결할 때 사용할 수 있습니다. 라이브 시각적 트리를 사용하면 라이브 속성 탐색기에서 조사할 실행 중인 응용 프로그램의 요소를 선택할 수 있습니다. 하위 항목 수가 표시되며, 원본 정보를 사용할 수 있는 경우 즉시 파일을 찾고 요소 정의 위치를 찾을 수 있습니다.
  • 라이브 속성 탐색기. 이 새 도구를 사용하면 실행 중인 응용 프로그램에서 설정된 범위별로 그룹화된 모든 요소에 대한 속성 집합을 조사할 수 있습니다. 이러한 속성은 디버깅 세션 중에 수정할 수 있으며, 실행 중인 응용 프로그램에서 변경 사항을 즉시 확인할 수 있습니다.

속성이 서로 재정의되는 방법을 선택하고 경고 동작을 확인하는 것은 디자인 타임에 어려운 일일 수 있습니다. 이제는 XAML용 새로운 UI 디버깅 도구를 사용하여 이러한 조사를 런타임에 수행하여 모든 것을 고려할 수 있습니다.

(Windows 스토어 앱에 대한 지원은 이후 업데이트에서 출시될 예정입니다.)

XAML용 UI 디버깅 도구, 전체 화면 

예외 설정

예외 설정 도구 창을 사용하여 디버거 예외 설정을 구성할 수 있습니다. 이 새 창은 비모달이며, 향상된 성능, 검색 및 필터 기능을 포함합니다.

예외 설정 - 발생된 경우 중단 창 

 

타임라인 도구

새로운 타임라인 도구는 응용 프로그램이 소비하는 리소스에 대한 시나리오별 보기를 제공하며, 이를 통해 사용자는 WPF 및 Windows 스토어 8.1 응용 프로그램의 성능을 조사, 진단 및 향상시킬 수 있습니다.

성능 및 진단 허브에 있는 타임라인 도구는 응용 프로그램에서 UI 프레임을 준비하고 네트워크 및 디스크 요청을 처리하는 데 걸리는 시간을 보여주며, 응용 프로그램 로드 및 페이지 로드와 같은 시나리오의 컨텍스트에서도 같은 기능을 수행합니다. 

새 타임라인 도구  
Visual Studio 2015의 타임라인 도구에 대해 자세히 알아보세요.  새로운 타임라인 도구는 XAML UI 응답 도구를 대체합니다.

진단 도구

디버깅을 시작할 때(F5 누름) 나타나는 새로운 진단 도구 창이 추가되었습니다. 이 진단 도구 창에는 다음과 같은 기능이 포함됩니다.

  • 이벤트(IntelliTrace 포함) 
    이벤트(IntelliTrace 포함)는 디버깅 세션 중 수집되는 모든 디거버 중단점, 출력 및 IntelliTrace 이벤트에 대한 액세스를 제공합니다. 데이터는 타임라인 및 표 형식 보기로 표시됩니다. 두 가지 보기는 서로 동기화되며 상호 작용할 수 있습니다.
  • 메모리 사용 
    메모리 사용 도구를 통해 디버그하는 동안 앱의 메모리 사용을 모니터링할 수 있습니다. 또한 기본 및 관리형 메모리의 세부 스냅샷을 작성하고 비교하여 메모리 증가 및 메모리 누수의 원인을 분석할 수 있습니다.
  • CPU 사용량 
    CPU 사용량 도구를 사용하면 디버깅 중에 응용 프로그램의 CPU 사용량을 모니터링할 수 있습니다. 
    이 도구는 Visual Studio 2015의 Preview 릴리스에서 제공되었던 CPU time PerfTip을 대체합니다.

이전 버전에서는 진단 도구 창에서 다음과 같은 프로젝트 형식 및 디버깅 구성을 지원했습니다.

  • 관리형 WPF, WinForms 및 콘솔 프로젝트
  • 네이티브 Win32, 콘솔 및 MFC 프로젝트
  • IIS Express만 사용하는 ASP.NET 4
  • 관리되는 또는 네이티브 Windows 스토어 프로젝트를 로컬로 실행 
    (JavaScript를 사용하고 있거나 휴대폰에서 실행되는 Windows 스토어 프로젝트는 지원되지 않음)

RC 릴리스의 진단 도구 창에서는 다음과 같은 기능이 향상되었습니다.

  • Visual Studio 내의 모든 창 위치로 이동할 수 있으며, 디버깅 세션 간에 해당 위치와 크기가 저장됩니다.
  • 디버그 -> 프로세스에 연결을 사용하여 프로세스에 연결할 때 나타나 단일 프로세스에 대한 데이터를 표시합니다.
  • IIS에서 실행 중인 ASP.NET 프로젝트를 디버깅할 때 나타납니다.
  • ASP.NET 5 프로젝트를 디버깅할 때 나타납니다.
  • 원격 Windows 데스크톱 장치에서 실행 중인 앱을 디버깅할 때 나타납니다.
  • 디버깅을 중지한 후 메모리 스냅샷을 확인할 수 있습니다.
  • 네이티브 프로젝트를 디버깅할 때 디버거 이벤트(중단점 이벤트만)를 사용할 수 있습니다.

RC에 다음과 같은 새 기능도 포함되었습니다.

내 코드만. F5를 눌러서 디버거를 실행하면 자신의 코드만 표시되므로 프레임워크 및 다른 코드에 방해 받지 않고 성능 문제 및 예외를 파악하는 데 도움이 됩니다. IntelliTrace에서 이러한 새로운 코드 필터링 기능으로 인해 시스템 코드는 숨겨지고 사용자 코드만 표시되므로 더 쉽게 "내 코드만" 디버깅할 수 있습니다.

네트워크 진단 도구. 이 새로운 네트워크 진단 도구는 Windows Phone에서 Xbox 및 Windows 스토어까지 모든 Windows 10 장치에서 실행되는 범용 앱은 물론 Windows 스토어 앱을 빌드할 때 네트워크와 관련된 문제를 진단하는 데 도움이 될 수 있습니다.

네트워크 진단 도구는 HTTP 요청 및 응답 헤더, 요청 및 응답 페이로드, 쿠키 및 세부 타이밍 정보 등을 포함하여 앱의 HTTP 네트워크 작업에 대한 정보를 기록합니다. 이 네트워크 진단 도구는 또한 다음과 같은 일반적인 시나리오에 대한 질문에 답변하는 데에도 도움이 될 수 있습니다.

  • 인증 관련 문제(예: 리소스에 액세스할 수 없는 이유) 
  • 캐시 관련 문제(예: 최신 버전의 리소스를 가져올 수 없는 이유) 
  • 앱의 공통 작업을 실행할 때 다운로드되는 바이트 수 
  • 리소스를 액세스 및 다운로드할 때 병목 지점의 위치 

네트워크 도구에 액세스하려면 Visual Studio 2015에서 진단 도구 창을 엽니다.  디버그 메뉴에서 디버깅하지 않고 진단 도구 시작을 선택합니다.  또는 Alt+F2를 누릅니다.

이제 RTM의 새 기능으로 디버그하는 동안 표시되는 진단 도구 창의 기능을 다음과 같이 개선했습니다.

  • 앱의 이벤트가 이제 IntelliTrace 이벤트와 출력 이벤트 트랙 간에 분할되지 않고 단일 IntelliTrace 이벤트 트랙에 표시됩니다. IntelliTrace를 사용한 디버깅에 대해 자세히 알아보세요.
  • 프로그램이 실행되는 동안 앱의 이벤트가 표시되므로, 이벤트를 보기 위해 더 이상 "모두 중단"을 누르지 않아도 됩니다.
  • 사용자가 코드에 설정한 추적점에 대한 기록 디버깅을 활성화할 수 있으므로 소스 코드 및 호출 스택을 확인할 수 있습니다.
  • 이제 메모리 사용 그래프에서 가비지 수집 및 스냅숏 이벤트를 볼 수 있으므로 가비지 수집이 발생한 시간 및 메모리 사용 도구로 스냅숏을 만든 시간을 확인할 수 있습니다.

 

맨 위로 이동

MVC

ASP.NET 4.6

ASP.NET 모델 바인딩의 태스크 반환 메서드 지원

이전에는 태스크를 반환했던 ASP.NET 모델 바인딩 메서드가 지원되지 않았으며 구성하는 경우 런타임에 예외가 throw되었습니다. 이제는 이러한 메서드를 사용하여 응용 프로그램을 배포하는 경우 메서드가 올바르게 실행됩니다. 이 변경 내용은 .NET 4.6 이상을 대상으로 하는 응용 프로그램에만 적용됩니다.

ASP.NET 응용 프로그램에서 .NET 컴파일러 플랫폼("Roslyn") 사용

모든 ASP.NET 4.6 프로젝트에서 C# 및 VB의 새로운 언어 기능을 사용할 수 있습니다. VS 2015의 Web Forms 템플릿에는 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 패키지가 사전 설치되어 있습니다.

HTTP/2에 대한 지원 추가

Windows 10 및 .NET Framework 4.6에는 HTTP/2에 대한 지원 기능이 추가되었습니다. HTTP/2의 기본 목표는 브라우저에서 웹 사이트로 단일 연결을 사용하여 성능, 대기 시간 및 네트워크 사용량을 향상하는 것입니다.

Entity Framework 6을 지원하는 업데이트된 프레임워크 및 컨트롤

동적 데이터 프레임워크, 엔터티 데이터 소스 컨트롤 및 범용 공급자를 업데이트했으므로 Entity Framework 6에서 작동합니다.

인증 업데이트

이제 ASP.NET 4.6 템플릿은 Open ID Connect 미들웨어를 사용하여 Azure AD를 인증합니다. 이렇게 하면 Azure AD를 인증할 프로그래밍 모델이 훨씬 쉬워집니다.

"개별 사용자 계정" 옵션을 선택하는 경우 ASP.NET 4.6 템플릿이 ASP.NET ID를 사용하여 2단계 인증 및 소셜 로그인을 사용하는 방법을 보여줍니다.

ASP.NET MVC 5.2.3, 웹 페이지 3.2.3 및 Web API 5.2.3

템플릿 패키지는 MVC 5.2, 웹 페이지 3.2 및 Web API 2.2에 대한 최신 런타임 패키지를 사용하도록 업데이트되었습니다. 이러한 패키지 업데이트에 대한 자세한 내용은 ASP.NET MVC 5.2.3, 웹 페이지 3.2.3 및 Web API 5.2.3 릴리스 블로그 게시물을 참조하세요.

ASP.NET Web API OData 5.3.1

Web API OData 스캐폴더가 ASP.NET Web OData 5.3.1을 사용하도록 업데이트되었습니다. ASP.NET Web API OData 5.3의 새로운 기능을 참조하세요.

SignalR 2.1.2

템플릿 패키지가 SignalR 2.1.2를 사용하도록 업데이트되었습니다. GitHub의 SignalR 릴리스 정보를 참조하세요.

Microsoft Owin 3.0 패키지

템플릿 패키지가 Microsoft Owin 3.0 NuGet 패키지를 사용하도록 업데이트되었습니다. 이 Katana 3.0 릴리스 정보를 참조하세요.

ASP.NET Identity 2.2.1

ASP.NET Identity 2.2.1은 2.1에서 많은 버그가 수정되고 성능이 향상되었습니다. 자세한 내용을 보려면 이 ASP.NET Identity 2.2.1 블로그 게시물을 읽어 보세요.

ASP.NET 도구 업데이트

JSON 편집기 개선 내용

JSON 편집기의 몇 가지 기능이 개선되었습니다. 여기에는 비동기식 JSON 스키마 로드, 하위 스키마 캐시, 보다 효율적인 IntelliSense 개선 등의 성능 개선 사항이 포함됩니다. 또한 다음과 같은 새 기능도 포함되었습니다.

  • JSON 스키마 유효성 검사 스키마 드롭다운 목록에서 정의한 스키마를 기준으로 하는 JSON 스키마 유효성 검사 기능이 추가되었습니다.
  • 상황에 맞는 메뉴 축소 해제 기능이 추가되었습니다. JSON 편집기를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴 축소 해제를 선택하여 JSON 파일의 긴 배열 축소를 해제할 수 있습니다.
  • 스키마 다시 로드 상황에 맞는 메뉴가 추가되었습니다. Visual Studio는 인터넷에서 다운로드한 스키마를 캐시하며 Visual Studio를 다시 시작한 후에도 해당 캐시를 사용합니다. 스키마가 변경된 경우에는 스키마 다시 로드(Ctrl+Shift+J) 상황에 맞는 메뉴를 사용하여 활성 JSON 문서에서 현재 사용되는 스키마를 다시 다운로드한 다음 현재 문서에서 즉시 사용할 수 있습니다.
  • package.json/bower.json용 IntelliSense Visual Studio에서는 package.json 및 bower.json 파일에 대해 모두 IntelliSense 및 유효성 검사 기능이 제공될 뿐 아니라 JSON 편집기 내에서 직접 Bower 및 npm 패키지용 라이브 IntelliSense도 제공합니다.
  • 중복 속성 유효성 검사 기능이 추가되었습니다. 이제 JSON 편집기에서 중복 속성에 대한 유효성 검사 기능을 제공합니다. 따라서 JSON 파일 작성과 관련된 일반적인 문제를 파악할 수 있습니다.
  • IntelliSense와 JSON 파일의 유효성 검사 모두에 대한 지원 기능이 JSON 스키마 초안 v4 사양을 완벽하게 지원함으로써 크게 향상되었습니다. 이제 필수 속성을 보다 쉽게 식별할 수 있고, 편집기를 통해 속성을 사전순으로 쉽게 정렬할 수 있습니다. 축소된 JSON 파일 서식 지정은 이제 자동으로 축소 취소됩니다.
  • 이제 유용한 JSON 스키마 파일의 공개 소스 컬렉션인 SchemaStore.org가 지원됩니다. 즉, Visual Studio에서 열었으며 SchemaStore.org에 연결된 스키마가 있는 JSON 파일은 IntelliSense를 자동으로 가져오고 유효성 검사를 받습니다.
  • JSON 스키마 만든 이에 대한 지원은 향상된 스키마 온전성 검사를 통해 개선되었습니다.

HTML 편집기 개선 내용

HTML 편집기가 개선되어 웹 표준에 맞게 IntelliSense가 업데이트되고 다음과 같은 새 기능이 도입되었습니다.

  • 보다 효율적인 클라이언트 템플릿 서식 지정 HTML 편집기에서는 이중 컬리 구문 {{…}}을 더 이상 구문 분석하거나 서식을 지정하지 않습니다. 이는 해당 구문의 콘텐츠가 HTML로 처리되어 무효화되지 않도록 하기 위한 것입니다. 또한 HTML 편집기는 HTML 포맷터를 사용하여 정상적으로 완료할 수 없는 콘텐츠 서식 지정도 시도하지 않습니다. 따라서 Angular, Handlebars, Mustache 및 기타 이중 컬리 템플릿 구문 사용 시 매우 유용합니다.
  • 사용자 지정 요소, polymer 요소 및 특성이 지원됩니다. 각 프레임워크마다 사용자 지정 태그가 다수 포함될 수 있으므로 HTML 편집기에서는 사용자 지정 요소에 대한 알 수 없는 특성의 유효성을 더 이상 검사하지 않습니다. 알 수 없는 요소 아래에 구부러진 화살표가 더 이상 표시되지 않습니다.
  • 웹 구성 요소용 기본 IntelliSense가 추가되었습니다. HTML 편집기에는 웹 구성 요소 표준의 일부분인 <link rel="import"></link>용 IntelliSense가 포함되어 있습니다.
  • HTML 요소 도구 설명이 표시됩니다. 이제 편집기에서 HTML 요소에 대해 도구 설명이 제공됩니다.
  • #region이 지원됩니다. 이제 HTML 편집기에서 지역 정리가 지원됩니다. 주변 코드 조각을 사용하여 현재 선택 항목을 묶을 수도 있습니다.
  • 작업 목록에서 Todo/Hack 주석이 지원됩니다.
  • Angular 아이콘이 지원됩니다. 이제 Angular 지시문(예: <<ng-view>) 및 특성(예: ng-controller)이 모두 Angular 로고와 함께 IntelliSense에 표시되므로 쉽게 식별할 수 있습니다.
  • 부트스트랩 아이콘이 표시됩니다. 이제 HTML 클래스 특성에서 제공되는 IntelliSense에 부트스트랩 로고가 함께 표시됩니다(클래스 이름을 부트스트랩 CSS 파일로 정의한 경우).

CSS/LESS/Sass 편집기 개선 사항

  • 작업 목록에서 Todo/Hack 주석이 지원됩니다.
  • LESS 편집기에서 @viewport가 수정되었습니다. LESS 편집기에서 @viewport를 사용할 때 확인 경고가 더 이상 표시되지 않습니다.
  • 다양한 코드 조각이 추가로 제공됩니다. 이제 개발 환경을 보다 쉽게 사용할 수 있도록 CSS/LESS/Sass 편집기에서 더 많은 코드 조각이 제공됩니다.
  • 이제는 확장을 Visual Studio 2015에서 사용하여 LESS, Scss와 CoffeeScirpt를 모두 컴파일할 수 있습니다. 여기서 다운로드하세요. 

JSX 편집기(React.js)

이제 Visual Studio에서 .jsx 파일 확장명을 가진 모든 파일의 JSX 구문을 지원합니다. 편집기에서 입력할 때 IntelliSense, 서식 지정 및 유효성 검사를 모두 가져옵니다. 이 편집기는 React.js 라이브러리를 담당하는 Facebook 팀과 공동 작업으로 빌드되었습니다.

브라우저 링크

CSS가 자동으로 동기화됩니다. CSS 파일을 저장하거나 외부에서 변경(예: LESS/SASS 컴파일러 사용)하면 전체 CSS 파일이 브라우저에서 다시 로드됩니다. 파일을 자동 동기화할 수 없는 경우 Ctrl+S를 누르면 Ctrl+Alt+Enter를 눌러 연결된 브라우저를 새로 고치지 않아도 자동 다시 로드가 수행되어 파일이 정상 상태로 돌아갑니다. 도구 모음에서 이 기능을 사용하지 않도록 설정할 수 있습니다.

ASP.NET에 대해 자세히 알아보세요.

ASP.NET 5

ASP.NET 5는 클라우드 및 온-프레미스 서버용의 최신 웹 응용 프로그램을 빌드하기 위한 간단한 구성 가능 .NET 스택입니다. ASP.NET 5 Preview에는 다음과 같은 기능이 포함됩니다.

  • 새로운 표준 이하 요청 파이프라인
  • IIS에서 실행하거나 고유한 프로세스에서 자체 호스팅됨
  • 전체 .NET Framework 또는 .NET Core에서 실행할 수 있는 새로운 .NET Execution Environment(DNX)을 기반으로 작성된, 진정한 병렬 버전 관리를 지원하는 새로운 클라우드 최적화 런타임
  • Windows, Mac 및 Linux에서 플랫폼 간 실행
  • 런타임 자체를 비롯한 모든 기능이 NuGet에 포함
  • ASP.NET MVC 6 지원 - 웹 UI 및 웹 API에 대한 통합 웹 프레임워크
  • 클라우드로 원활하게 전환하기 위한 환경 기반 구성
  • 종속성 주입 기능 기본 제공
  • 새로운 Visual Studio 프로젝트 시스템 및 높은 생상성 도구 환경
  • .NET Foundation을 통한 GitHub의 모든 오픈 소스

Visual Studio 2015에는 ASP.NET 5 beta5 런타임 패키지가 포함되어 있습니다. 이러한 패키지는 아직 미리 보기 단계이며, 프로덕션 용도로는 권장하지 않습니다. GitHub에 게시된 릴리스 정보에서 추가된 특정 향상 기능 및 수정된 문제에 대한 모든 세부 정보를 확인할 수 있습니다.

Visual Studio 2015에는 ASP.NET 5 응용 프로그램을 빌드하고 DNX 프로젝트를 사용하기 위한 새로운 프로젝트 시스템 및 통합 도구 환경이 제공됩니다. 새로운 도구 기능 중 일부는 다음과 같습니다.

  • Windows, Mac 및 Linux에서 빌드 및 실행할 수 있는 플랫폼 간 DNX 기반 프로젝트를 만들기 위한 새로운 프로젝트 시스템.
  • MVC 6, Identity 3 및 Entity Framework 7을 사용하여 ASP.NET 5 웹 사이트 및 웹 API를 만들기 위한 템플릿.
  • DNX 기반 클래스 라이브러리 및 콘솔 응용 프로그램을 만들기 위한 템플릿
  • NuGet을 통해 플랫폼 간 명령줄 도구 만들기 및 배포.
  • 개발자 명령 프롬프트에서 DNVM(.NET 버전 관리자)을 사용하여 다른 DNX 버전을 설치하고 관리합니다.
  • NuGet 패키지를 검색, 설치 및 복원하기 위한 통합 환경.
  • Ctrl+.을 사용합니다. 사용자의 C# 코드에서 확인되지 않은 기호에 대해 NuGet 패키지를 찾아서 설치합니다.
  • 패키지 관리 통합 및 새로운 Task Runner 탐색기를 포함한 NPM, Grunt/Gulp 및 Bower를 사용하는 클라이언트쪽 웹 개발을 위한 통합 도구.
  • 실행 단추 드롭다운 메뉴를 사용하여 Visual Studio 내에서 직접 프로젝트 수준 DNX 명령 실행.
  • 사용자 지정 환경 변수 설정을 포함하여 IIS Express를 실행하는 사용자 지정 실행 프로필 만들기.
  • .NET Core를 포함한 여러 프레임워크를 대상으로 하는 단일 프로젝트에서 NuGet 패키지 빌드.
  • 단일 프로젝트에서 여러 대상 프레임워크용으로 빌드할 때 결합된 IntelliSense.
  • 태그 도우미와 같이 ASP.NET 5에서 새로 도입된 Razor 기능을 이제 IntelliSense와 구문 강조에서 사용할 수 있습니다.

이번 릴리스의 새로운 기능

  • 사용할 수 없는 DNX의 버전이 필요한 프로젝트를 열 때 필요한 DNX 버전을 설치하라는 메시지가 Visual Studio에 나타납니다.
  • 이제 참조 추가 대화 상자를 사용하여 손실 어셈블리에 참조를 추가할 수 있습니다.
  • 이제 ASP.NET 5 웹 응용 프로그램 템플릿이 인증에 대한 회사 및 학교 계정 옵션을 지원합니다.
  • 새 ASP.NET 프로젝트 대화 상자에서 Host in Cloud(클라우드의 호스트) 옵션을 ASP.NET 5 프로젝트에서 사용할 수 있습니다.
  • 서버 탐색기를 사용하여 Azure에서 호스트되는 ASP.NET 5 프로젝트에 대한 approot 아래에 있는 파일을 원격으로 편집합니다.

자세한 내용은 GitHub에서 도구 릴리스 정보를 참조하세요.

Azure 도구

계정 선택 통합

계정 선택은 한 번 클릭으로 여러 계정에 액세스할 수 있도록 하기 위해 Web Publishing and Web App creation/selection(웹 게시 및 웹앱 만들기/선택) 대화 상자에서 사용됩니다. 여러 계정에 한 번 로그인하면 리소스를 게시할 때 개별 계정 선택하기에 빠르고 쉽게 액세스할 수 있습니다.

API 앱

API 앱 미리 보기 템플릿, 게시 지원 및 서버 탐색기 표시 유형이 모두 Visual Studio 2015로 마이그레이션되었습니다. 이제 최신 버전의 Visual Studio를 사용하여 Azure API 앱을 만들고 배포할 수 있습니다. 또한 Swagger 출력 기능이 향상되었으므로 API 앱 개발자가 ASP.NET Web API에서 동적으로 생성된 Swagger에 대한 향상된 기본 지원 기능을 사용할 수 있습니다.

WebJob 도구

이제 Azure 웹 사이트 내에서 서버 탐색기 WebJob 노드의 웹 작업을 다음과 같은 방식으로 제어할 수 있습니다.

  • 서버 탐색기의 웹 사이트 노드 아래에 있는 WebJob 노드
  • 서버 탐색기의 연속 WebJob 시작/중지
  • 서버 탐색기에서 주문형 또는 예약 작업 실행
  • 서버 탐색기에서 WebJob 대시보드 확인
  • 대시보드 보기 상황에 맞는 메뉴를 사용하여 Azure 웹 사이트의 WebJob 대시보드로 이동할 수 있습니다.

WebJob SDK

WebJob SDK는 Azure WebJob 프로젝트 템플릿에 미리 설치되어 있습니다.

NuGet

NuGet 2.8.3

2.8.3 버전에는 DevExtreme 프로젝트 및 BizTalkProject 지원이 추가되었습니다. 자세한 내용은 NuGet 2.8.3 릴리스 정보를 참조하세요.

NuGet 패키지 관리자

Visual Studio 2015의 전체 솔루션에 걸쳐 보다 간단한 패키지 관리 기능을 제공하도록 NuGet 패키지 관리자 사용자 인터페이스가 업데이트되었습니다. 프로젝트에 설치된 패키지에 걸친 단일 보기를 사용하여 NuGet 갤러리, 설치된 패키지, 사용 가능한 업데이트가 있는 패키지에서 사용 가능한 패키지 목록을 필터링할 수 있습니다.

NuGet 갤러리

새 웹 서비스 및 통합된 클라이언트로 NuGet 갤러리의 성능이 향상되었습니다. NuGet 업데이트에 대한 자세한 내용은 http://docs.nuget.org에서 확인하세요.

JavaScript

JavaScript 편집기 지원

JavaScript 편집기가 더 유용하게 활용될 수 있도록 업데이트되었습니다.

  • AngularJS용 도구 지원. 이제 AngularJS를 사용하여 앱을 작성할 때 IntelliSense가 각도 컨트롤러, 서비스, 팩터리, 지시문 및 애니메이션에 대한 제안을 제공합니다.
  • 클래스, 화살표 함수 및 템플릿 문자열을 비롯한 새로운 JavaScript 언어 기능(JavaScript의 ES6 버전)이 지원됩니다.
  • 탐색 막대 공유 프로젝트 지원. 이제 Windows 유니버설 앱 프로젝트에 대한 공유 프로젝트에서 탐색 모음을 사용할 수 있습니다.
  • 새로운 탐색 모음. 새로운 탐색 모음을 통해 보다 손쉽게 JavaScript 소스 코드의 주요 요소 사이를 탐색할 수 있습니다.
  • JSDoc 주석. JSDoc 형식을 사용하여 작성된 문서 주석이 이제 IntelliSense를 사용할 때 표시됩니다. (JSDoc 주석에 대한 자세한 내용은 http://usejsdoc.org를 참조하세요.)
  • 개체 리터럴 IntelliSense. JavaScript 편집기에서는 JSDoc을 사용하여 설명된 함수로 개체 리터럴을 전달할 때 IntelliSense 제안을 제공합니다.
  • 확장/축소. 여러 줄 주석, 여러 줄 어레이 및 여러 줄 블록을 비롯한 JavaScript 코드의 더 많은 섹션을 확장 및 축소할 수 있습니다.
  • 작업 목록 지원. 작업 목록 기능을 사용하여 작업 주석을 검토할 수 있습니다. 예: // TODO, JavaScript 코드.

TypeScript

Visual Studio 2015에는 TypeScript 도구의 1.5 릴리스가 포함되어 있습니다. 이번 릴리스는 모듈, 소멸, for..of, spread, 기호, 계산된 속성, ES3/ES5에 대한 let/const 및 ES3/ES5에 대해 태그가 지정된 문자열 템플릿을 포함하도록 ECMAScript 6에 대한 다양한 지원 기능이 추가되었습니다. TypeScript 1.5는 ES6에 대한 지원 외에도, 실험적 ES7 데코레이터 제안, UMD 및 System.js 모듈 출력과 함께 ‘tsconfig.json’이라고 하는 가벼운 새 휴대용 프로젝트 파일에 대한 지원 기능이 추가되었습니다.

IntelliTest

Visual Studio 2015에서는 .NET 코드를 탐색하여 테스트 데이터 및 단위 테스트 모음을 생성하는 IntelliTest가 추가되었습니다. 코드의 모든 문에 대해 해당 문을 실행하는 테스트 입력이 생성됩니다. 코드의 모든 조건부 분기에 대해 사례 분석이 수행됩니다. 예를 들어 if 문, 어설션 및 예외를 throw할 수 있는 모든 작업을 분석합니다. 이 분석을 사용하여 각 메서드에 대해 매개 변수화된 단위 테스트용 테스트 데이터를 생성하고 코드 검사를 최대한 수행하면서 단위 테스트를 만들 수 있습니다. 그런 다음 도메인 관련 정보를 활용하여 이러한 단위 테스트를 개선할 수 있습니다.

또한 IntelliTest에 다음과 같은 기능이 추가되었습니다.

  • 매개 변수화된 단위 테스트. IntelliTest는 테스트 데이터 생성을 안내하고, 테스트 중인 코드의 정확한 속성을 지정하고, 테스트 중인 코드의 탐색을 안내하는 데 사용할 수 있는 API 지원을 제공합니다. 이 API는 Microsoft.Pex.Framework 네임스페이스에서 제공되며, IntelliTest로 생성되는 테스트 메서드(매개 변수화된 단위 테스트, 팩터리 메서드)에서 사용할 수 있습니다. 따라서 "IntelliTest" 상황에 맞는 메뉴 명령을 이제 생성된 테스트 메서드에서도 사용할 수 있습니다.
  • 테스트 스텁 만들기. 이제 상황에 맞는 메뉴에서 테스트 프로젝트, 테스트 클래스 및 테스트 스텁을 만들고 구성할 수 있는 기능을 제공하는 명령으로 "단위 테스트 만들기"를 사용할 수 있습니다.

IntelliTest(이전의 "스마트 장치 테스트")에 대해 자세히 알아보세요.

맨 위로 이동

Application Insights를 사용하세요.

Visual Studio에서는 프로젝트에 Application Insights를 쉽게 추가할 수 있습니다. Visual Studio 2015에서는 Application Insights Tools for Visual Studio의 성능이 추가로 개선되고 버그가 수정되었습니다.

Visual Studio 2015는 Application Insights Tools 2.0 이상 버전에서만 호환됩니다. Application Insights Tools 1.3.2 이하 버전은 지원되지 않습니다.

Visual Studio 2015 업데이트에는 다음이 포함됩니다.

  • Azure 웹 사이트에 게시하는 워크플로와의 원활한 통합
  • 솔루션 통합 및 프로젝트 검색 기능 개선 예를 들어 Python 등의 지원되지 않는 프로젝트에는 Application Insights가 더 이상 포함되지 않습니다.
  • 사용자가 여러 계정에 동시에 로그인할 수 있는 새로운 Visual Studio의 사용자 계정 관리자와 완벽하게 통합됩니다.

Release Management

이 기능을 사용하면 앱 릴리스 관리 프로세스를 향상시키고, 각 고유 단계에 대해 특정 환경에 앱을 배포하고, 각 단계에 대한 승인 프로세스에서 단계를 관리할 수 있습니다. 그리고 Visual Studio Online에 대해 릴리스 관리 서비스를 사용하여 온-프레미스 릴리스 관리 서버를 설치 및 유지 관리하지 않고도 체크 인부터 배포까지 릴리스 파이프라인을 설정할 수도 있습니다.

업데이트된 릴리스 관리 버전은 Visual Studio 2015에서 사용할 수 있습니다. 이 기능은 기존의 Visual Studio 2013용 릴리스 관리와 비슷하지만 다음과 같은 영역에서 향상된 성능을 제공합니다.

  • 릴리스 관리 클라이언트 실행 페이지에는 릴리스 프로세스 및 알림에 대한 개요가 표시됩니다.
  • 추가 캐싱을 통해 다른 릴리스 관리 클라이언트 페이지에서 렌더링 및 상호 작용 수행.
  • Active Directory 및 TFS 보안 그룹의 동기화.
  • 새 릴리스 생성.

또한 RTM의 새 기능으로, 이제 Team Foundation Server 2015에 포함된 새 빌드 시스템의 빌드 정의에 대해 구성 요소를 정의하고 및 정의를 릴리스할 수 있습니다. 그리고 구성 요소를 정의하는 동안 빌드 정의에서 게시된 아티팩트의 이름과 동일한(또는 해당 이름을 포함하는) 구성 요소 이름을 사용하여 구성 요소에 대한 아티팩트를 지정할 수 있습니다.

릴리스 관리에 대해 자세히 알아보세요.

 

Git 버전 제어

보다 쉽게 분기 작업을 하고 기록의 변경 내용이 어떻게 달라졌는지를 확인할 수 있습니다.

분기

접두사를 지정하여 분기를 계층적으로 구성할 수 있습니다.

로컬 분기 및 원격 분기(로컬에서 만들지 않은 분기 포함)가 트리 보기에서 별도로 표시됩니다.

Git 분기

 

RC부터 분기 페이지가 새롭게 바뀌었습니다.

  • 이제 로컬 분기뿐만 아니라 원격 분기에서도 병합을 수행할 수 있습니다.
  • 병합하려는 분기는 이제 현재 체크 아웃된 분기에 고정됩니다.
  • 이제는 현재 분기의 기준 주소를 모든 로컬 또는 원격 분기로 다시 지정할 수 있습니다.
  • 원격 분기를 두 번 클릭하거나 마우스 오른쪽 단추로 클릭한 후 체크 아웃을 선택하여 체크 아웃할 수 있습니다.

원격 관리

이제는 팀 탐색기에서 Git 원격을 구성할 수 있습니다. 리포지토리 설정에는 원격 항목을 추가, 편집 또는 제거할 수 있는 현재 구성된 원격 항목을 표시하는 새로운 원격 섹션이 있습니다. 예를 들어 원본 원격 항목의 URL을 변경해야 할 경우 편집을 클릭하고 가져오기 및/또는 밀어넣기 URL을 변경할 수 있습니다.

자세한 기록

이제 기록에서 커밋이 어떻게 달라졌는지를 확인할 수 있습니다.

자세한 기록 보기

그래프에서 병합 커밋은 회색으로 표시되고 비병합 커밋은 더 밝은 색으로 표시됩니다. 단순 보기와 상세 보기 간을 전환할 수 있습니다. 그래프가 잘리면 크기를 조정할 수 있습니다.

또한 RC에서는 사용 현황 그래프에 몇 가지 업데이트가 있었습니다.

  • 그래프에 표시되는 세부 수준을 제어할 수 있는 도구 모음이 추가되었습니다.
  • 사용 현황 라인이 강조 표시되어 현재 선택한 커밋에서 연결할 수 있는 커밋을 나타냅니다.
  • 이제는 로컬 및 원격 분기가 다를 경우 두 가지 사용 현황 라인이 모두 표시됩니다. 이 기능은 로컬 분기 기준 주소를 다시 지정할 때 특히 유용합니다.

팀 탐색기에서 기준 주소 다시 지정

이제는 팀 탐색기에서 기준 주소 다시 지정이 지원됩니다. 기준 주소 다시 지정 작업을 시작하려면 분기 페이지에서 기준 주소 다시 지정 플라이아웃을 클릭하거나 분기를 마우스 오른쪽 단추로 클릭하고 "기준 주소 다시 지정 대상..."을 선택합니다.

VSO 리포지토리

VSO 리포지토리를 만들 때 "시작" 환경이 개선되었으며, 새로운 리포지토리 만들기를 효율적으로 수행할 수 있도록 여러 가지가 변경되었습니다. 기존 리포지토리에 새 코드를 보다 쉽게 추가할 수 있도록 RC가 약간 변경되었습니다. 팀 탐색기를 사용하여 리포지토리에 연결할 경우, 파일 | 새 프로젝트를 선택하면 이제 사용자가 연결한 리포지토리의 루트에서 대화 상자가 시작됩니다.

Visual Studio Online에 게시

Visual Studio Online에 게시 기능은 Visual Studio Online으로 로컬 리포지토리를 가져오는 과정을 크게 간소화했습니다. 12단계를 거쳐야 하던 작업을 이제 2단계로 수행할 수 있습니다. 팀 탐색기 동기화 페이지의 Visual Studio Online에 게시 섹션에서 Visual Studio 계정 관리자의 사용자 계정 중 하나를 선택할 수 있습니다. Visual Studio 온라인 계정은 사용할 수 있도록 목록에 자동으로 표시되므로, URL을 기억하지 않아도 됩니다. 코드를 공유할 준비가 된 경우 리포지토리를 호스트할 새 팀 프로젝트 또는 기존 팀 프로젝트를 선택한 다음 게시를 클릭하면 완료됩니다.

Visual Studio Online에 게시 대화 상자  

단일 로그인

다른 여러 개발자와 마찬가지로 응용 프로그램을 개발할 때 여러 클라우드 서비스를 활용할 수 있습니다. 예를 들어 데이터 저장을 위해 응용 프로그램에 클라우드 백 엔드를 추가하고, 소스 코드를 클라우드에 저장했거나 응용 프로그램을 저장소에 게시했을 수 있습니다.

이전에는 이러한 서비스를 사용하기 위해 별도의 로그인 프로세스가 필요했고, 각 서비스에서는 로그인된 사용자 상태가 개별적으로 관리되었습니다.

이번 릴리스에서는 Visual Studio에서 여러 통합된 클라우드 서비스에 액세스하는 데 필요한 인증 프롬프트가 줄어들었습니다. 이제는 Visual Studio에서 첫 번째 클라우드 서비스에 인증할 때, 자동으로 로그인이 수행되거나 다른 통합된 클라우드 서비스에 대한 인증 프롬프트가 줄어듭니다.

맨 위로 이동

CodeLens

편집기의 작접에 계속 집중하면서 코드에 대해 자세히 확인할 수 있습니다. 코드를 계속 확인하면서 코드 참조, 코드 변경 내용, 관련 TFS 항목 및 단위 테스트를 찾을 수 있습니다.

이번 릴리스에서 CodeLens "만든 이" 표시기를 새 "팀 활동 타임라인"과 "만든 이 및 변경 내용" 기록 표시기로 교체했습니다.

  • 팀 활동 타임라인 표시기는 마지막 만든 이와 마지막 변경 시간을 표시합니다. 이 표시기를 선택하면 코드 변경에서 패턴을 찾을 수 있는 팀 활동 보기가 열립니다. 이 경우 시간이 지남에 따라 변경의 영향을 평가할 수 있습니다.
  • 만든 이 및 변경 내용 표시기에 파일을 변경한 만든 이의 수 및 변경 횟수가 표시됩니다. 이 지표를 선택하면 모든 변경 내용, 변경 세부 사항 및 추가 정보를 얻고 이전 버전을 보기 위한 링크의 목록이 열립니다.

코드가 Team Foundation 버전 제어(Team Foundation Server와 Visual Studio Online 모두) 및 Git 리포지토리에 호스트되는 경우 표시기의 모든 정보를 사용할 수 있습니다. Team Foundation Server 또는 Visual Studio Online에서 작업하는 경우 작업 항목에 대한 정보를 얻을 수 있습니다.

이러한 표시기는 이전 버전에서 사용할 수 있는 표시기와 함께 C# 및 Visual Basic 파일에 대한 코드 요소(메서드, 필드 또는 클래스) 수준에 표시됩니다. 다음은 C# 파일에 대한 팀 활동 타임라인 표시기의 예입니다.

C# 파일에 대한 팀 활동 타임라인 표시기 

다음은 C# 파일에 대한 만든 이 및 변경 표시기의 예입니다.

C# 파일에 대한 만든 이 및 변경 표시기 

그러나 표시기는 다른 모든 형식의 파일에 대한 파일 수준에도 표시됩니다(예: C++, SQL, JavaScript 및 기타 형식의 파일). 다음은 C# 또는 Visual Basic 코드 파일이 아닌 파일에 대한 팀 활동 타임라인 표시기의 예입니다.

 

C# 또는 Visual Basic 코드 파일이 아닌 파일에 대한 팀 활동 타임라인 표시기 

설계, 디자인 및 모델링

코드 맵과 종속성 그래프가 제공됩니다.

코드에서 특정 종속성을 이해하려면 코드 맵을 만들어서 시각화하면 됩니다. 그런 다음 맵을 사용하여 코드 옆에 나타나는 관계를 탐색할 수 있습니다. 코드 맵은 코드 작업 또는 코드 디버그 중 코드에서의 사용자 위치를 추적하는 데에도 도움이 되므로 더 적은 양의 코드를 읽고도 작성한 코드의 설계에 대해 알아볼 수 있습니다.

최종 RTM 릴리스에서 명령을 선택, 편집, 그룹 관리 및 그룹 콘텐츠의 레이아웃 변경과 관련된 섹션으로 그룹화하여 코드 요소와 링크에 대한 바로 가기 메뉴를 사용하기 쉽게 만들었습니다. 테스트 프로젝트는 기타 프로젝트와는 다른 스타일로 표시되므로 맵상의 요소에 대한 아이콘을 보다 적절한 버전으로 업데이트했습니다.

코드 맵의 새 그룹화 기능 

또한 코드 요소의 내용이 표시되는 방식을 변경하여 이제 둘 이상의 그룹을 선택하고 원하는 레이아웃 스타일을 모든 그룹에 적용할 수 있습니다. 이제 어셈블리, 네임스페이스 또는 코드 맵의 형식을 확장하면 유용한 종속성 다이어그램을 항상 가져올 수 있습니다.

여러 그룹 선택 및 코드 맵에 하나의 레이아웃 적용 

Visual Studio 2015의 이전 미리 보기 및 릴리스 후보 버전에서 다음을 수행할 있도록 변경했습니다.

  • 향상된 하향식 다이어그램 가져오기. 이제 중간 규모부터 대규모에 이르는 Visual Studio 솔루션에서 간소화된 아키텍처 메뉴를 사용하여 솔루션에 유용한 코드 맵을 가져올 수 있습니다. 솔루션 어셈블리가 솔루션 폴더별로 그룹화되므로, 컨텍스트에서 이를 확인하고 솔루션을 구조화하는 데 투입했던 노력을 활용할 수 있습니다. 프로젝트 및 어셈블리 참조를 즉시 확인할 수 있으며, 링크 형식이 나타납니다. 또한 솔루션에 대한 외부 어셈블리가 보다 간결한 방식으로 그룹화됩니다.
  • 반응 코드 맵을 보다 빠르게 얻기. 끌어 놓기 작업은 즉각적인 결과를 생산하고 노드 간 링크는 보다 빠르게 생성되며, 이때 노드 확장 또는 추가 노드 요청과 같은 후속 사용자 시작 작업에는 영향을 주지 않습니다. 특히, "Skip rebuilding your solution(솔루션 다시 빌드 건너뛰기)" 옵션을 사용하면 다이어그램을 만들고 편집하는 성능을 향상할 수 있습니다. 솔루션을 빌드하지 않고 코드 맵을 만드는 경우, 이제 어셈블리를 작성하지 않은 경우와 같은 비정상적인 상황이 모두 처리됩니다.
  • 코드 요소 노드 및 그룹 필터링. 솔루션 폴더, 어셈블리, 네임스페이스, 프로젝트 폴더 및 형식별 코드 요소를 그룹화하고, 범주를 기반으로 코드 요소를 표시하거나 숨기면 맵에서 불필요한 요소를 빠르게 제거할 수 있습니다.
  • 관계 필터링을 통해 다이어그램을 보다 쉽게 읽을 수 있습니다. 여기에는 그룹 간 링크가 포함되며, 필터 창 사용 시 이전 릴리스에서보다 작업에 방해되는 요소가 줄어들었습니다.
  • '종속성 링크로 드릴인'에서 필터가 적용됩니다. 종속성 링크에 대한 기여도를 파악하려고 확장할 때 유용하고 명확한 다이어그램을 이용할 수 있습니다. 이 다이어그램은 덜 복잡하며 선택한 링크 필터링 옵션도 적용됩니다.
  • 클래스 뷰 및 개체 브라우저에서 다이어그램을 만듭니다. 파일 및 어셈블리를 클래스 뷰 및 개체 브라우저 창의 새 맵이나 기존 맵에 끌어 놓습니다.

전반적으로 코드 맵에 대한 다음과 같은 향상된 기능의 포괄적인 목록이 포함되어 있습니다.

  • 테스트 프로젝트는 다른 방식으로 스타일이 지정되며, 필터링이 지원됩니다. 테스트 프로젝트는 다른 방식으로 스타일이 지정되므로 이제 보다 쉽고 빠르게 맵에서 테스트 프로젝트를 식별할 수 있습니다. 응용 프로그램의 작업 코드에 집중할 수 있도록 테스트 프로젝트를 필터링할 수 있습니다.
  • 코드 요소가 해당 컨텍스트와 함께 추가됩니다. 다이어그램이 이제 해당 컨텍스트(필요한 경우 필터링할 수 있는 어셈블리 및 솔루션 폴더)와 함께 표시되므로 솔루션 탐색기, 클래스 뷰, 개체 브라우저에서 코드 요소를 끌어 놓거나, 솔루션 탐색기에서 요소를 선택하고 코드 맵에 표시를 선택할 때 보다 유용한 다이어그램을 이용할 수 있습니다.
  • 외부 종속성 링크가 간단해졌습니다. 종속성 링크는 더 이상 System.Object, System.ValueType, System.Enum 및 System.Delegate에서 상속성을 나타내지 않으므로, 코드 맵에서 외부 종속성을 보다 쉽게 확인할 수 있습니다.

코드 맵에 대해 자세히 알아보세요.

이 릴리스에서 다른 디자인 및 모델링이 변경되었습니다.

  • 레이어 다이어그램. 클래스 보기 및 개체 브라우저를 사용하여 이러한 다이어그램을 업데이트할 수 있습니다. 소프트웨어 요구 사항을 충족하려면 레이어 다이어그램을 사용하여 소프트웨어에 대해 원하는 종속성을 설명합니다. 이러한 제약 조건을 충족하지 않는 코드를 찾고 이 기준을 사용해 향후 코드의 유효성을 검사함으로써 코드를 이 디자인과 일관되게 유지할 수 있습니다.
  • UML 다이어그램. 더 이상 코드에서 UML 클래스 다이어그램 및 시퀀스 다이어그램을 만들 수 없습니다. 그러나 새 UML 요소를 사용하여 이러한 다이어그램을 만들 수는 있습니다.
  • 아키텍처 탐색기. 더 이상 아키텍처 탐색기를 사용하여 다이어그램을 만들 수는 없지만 솔루션 탐색기는 계속 사용할 수 있습니다.

XAML 언어 서비스

Microsoft에서는 .NET 컴파일러 플랫폼("Roslyn")을 기반으로 XAML 언어가 재구축되어 IntelliSense가 포함된 빠르고 안정적이며 현대적인 XAML 편집 환경을 제공할 수 있게 되었습니다.

이를 통해 Visual Studio의 다른 첫 번째 클래스 언어와 동일한 XAML 작성 환경을 만들 수 있습니다. 또한 훨씬 빠른 주기로 크로스 언어 리팩터링과 관련된 강력한 기능 집합을 제공할 수 있을 것입니다.

기타

전 세계 Azure 데이터 센터의 클라우드 기반 로드 테스트

Visual Studio Team Foundation Service를 사용하여 로드 테스트를 실행하는 데 필요한 인프라 설정이 훨씬 쉬워졌습니다. 이제 전 세계에서 지원되는 Azure 데이터 센터를 통해 클라우드 기반 로드 테스트를 수행할 수 있습니다.

클라우드 기반 부하 테스트가 이제 고급 에이전트 진단을 지원합니다.

RTM의 새 기능. 클라우드 기반 부하 테스트에 대한 테스트 에이전트 진단을 수행하기 위한 새로운 기능을 발표하고 있습니다.

컴퓨터에 액세스할 수 없는 경우가 많으므로 클라우드에서 디버깅이 어렵다는 것을 Microsoft에서도 알고 있습니다. 따라서 테스트 에이전트에서 로그나 기타 정보를 수집하는 것이 항상 가능한 것은 아닙니다. 하지만 이제 새로운 고급 에이전트 진단 기능을 통해 테스트 에이전트에서 로그를 수집하고, 이러한 로그를 IDE 자체에서 클라우드 기반 부하 테스트 결과의 일부로 사용할 수 있습니다.

테스트 에이전트에 사용자 지정 로그/진단 파일/첨부 파일을 만드는 방법에 대한 자세한 내용은 " 고급 진단을 사용하여 클라우드 부하 테스트의 문제 디버그하기(영문)" 블로그 게시물을 참조하세요.

Agents for Visual Studio 2015에는 더 이상 Test Controller가 필요하지 않습니다.

Agents for Visual Studio 2015는 TFS 2015 또는 Visual Studio Online과 통신하여 오케스트레이션을 처리할 수 있으므로 별도의 Test Controller가 필요하지 않습니다.

모든 새로운 Visual Studio 2015 및 TFS 2015 시나리오에서는 Agents for Visual Studio 2015를 사용하는 것이 좋습니다.

하지만 TFS 2013을 사용하기 위해 테스트 에이전트 또는 Test Controller가 필요하지 않은 경우, Agents for Visual Studio 2013 업데이트 5를 사용하고 Test Controller를 구성하는 것이 좋습니다.

(Test Controller는 TFS 2013은 물론 TFS 2015와도 호환됩니다. 하지만 Visual Studio 2015의 로드 테스트 지원은 이 에이전트에 포함되지 않으므로 Agents for Visual Studio 2013 업데이트 5를 설치하고 컨트롤러를 구성하는 것이 좋습니다.)

연결된 서비스

Visual Studio 2015의 새로운 연결된 서비스 추가 대화 상자를 사용하면 응용 프로그램을 Azure Application InsightsAzure 저장소Azure 모바일 서비스Office 365 및 Salesforce에 쉽게 연결할 수 있습니다. 연결된 서비스를 추가하려면 참조 노드를 마우스 오른쪽 단추로 클릭한 후 연결된 서비스 추가...를 선택합니다.선택하여 응용 프로그램 생성 중에 언제라도 이를 쉽게 수행할 수 있습니다.

연결된 서비스 추가 

연결된 서비스 추가 대화 상자에서는 현재 설치된 모든 연결된 서비스 공급자가 포함되며, 공급자 및 여기에 사용되는 기술에 대한 추가 정보를 가져오고, 현재 프로젝트에서 지원되는지를 알 수 있습니다. 다른 공급자는 추가 서비스 검색... 링크를 사용해서 확장 및 업데이트 갤러리에서 검색할 수 있습니다. 연결된 서비스 추가 대화 상자도 확장 가능합니다. 서비스 개발자인 경우, 연결된 서비스 SDK를 사용하여 검색 기능 및 서비스의 드라이브 사용을 향상할 수 있는 공급자를 구축할 수 있습니다.

Enterprise Single Sign-On

비즈니스 응용 프로그램의 일반 작업은 Azure Active Directory 사용에 대한 Enterprise Single Sign-On을 위해 응용 프로그램을 구성하는 것입니다. 이제는 응용 프로그램 구성 중 어느 시점에서나 해당 응용 프로그램을 마우스 오른쪽 단추로 클릭하고 Azure AD 인증 구성...을 선택하여 이를 수행할 수 있습니다.를 선택합니다. 그러면 연결된 서비스 추가 환경과 비슷한 마법사가 표시되어 Active Directory에 사용할 응용 프로그램 구성 프로세스를 안내합니다. 마법사에서 Active Directory 도메인을 지정하면 응용 프로그램이 해당 Active Directory에 등록되고 로그인 프롬프트가 표시되도록 응용 프로그램을 구성합니다.

마법사에서 Active Directory 도메인 지정 

IIS 10 Express for Visual Studio 2015 RC

RC 릴리스에는 새로운 버전의 IIS 10 Express가 포함되었습니다. 새로운 기능에는 Windows 10과의 비트 동기화뿐만 아니라 HTTP 2.0에 대한 지원이 포함됩니다.

 

From: www.visualstudio.com

위로