Visual Studio IconVisual Studio 2015 릴리스 정보


사용 조건 | Visual Studio 블로그 | 개발자 커뮤니티

참고 항목

이것은 최신 버전의 Visual Studio가 아닙니다. 최신 릴리스를 다운로드하려면 Visual Studio 2019용 현재 릴리스 정보를 방문하세요.


Visual Studio 2015 릴리스

Visual Studio 2015의 모든 버전에 대한 릴리스 정보를 볼 수 있습니다.

Visual Studio 2015 다운로드

My.VisualStudio.com에서 Visual Studio 2015를 다운로드할 수 있습니다. My.VisualStudio.com을 사용하려면 무료 Dev Essentials 구독 또는 Visual Studio 구독이 필요합니다.


Release Notes IconVisual Studio 2015

릴리스 날짜: 2015년 7월 20일

이 릴리스의 새로운 기능 요약

기타 변경 내용:

이 릴리스의 새로운 기능 세부 정보

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

이제 Visual Studio의 단일 솔루션 내에서 여러 앱 플랫폼에서 가장 플랫폼별 코드를 제외한 모든 코드를 쉽게 공유, 재사용, 빌드, 배포 및 디버그할 수 있습니다. 다음은 수행할 수 있는 몇 가지 작업입니다.

  • Android 네이티브 활동 앱용 템플릿 또는 여러 플랫폼 및 Xamarin 네이티브 Android 애플리케이션에서 사용할 수 있는 공유 코드 라이브러리에서 프로젝트를 만듭니다.

  • 플랫폼별 IntelliSense를 사용하여 API를 탐색하고 Android 또는 Windows 대상에 대한 올바른 코드를 생성합니다.

  • x86 또는 ARM 네이티브 플랫폼용으로 빌드를 구성합니다.

  • 연결된 Android 디바이스에 코드를 배포하거나, Microsoft의 고성능 Android 에뮬레이터를 테스트에 사용합니다.

  • Visual Studio 디버거에서 중단점을 설정하고 변수를 조사하고 스택을 보고 단계별로 코드를 실행합니다.

  • LogCat 뷰어를 사용하여 Android 디바이스에서 메시지 로그를 확인할 수 있습니다. (Logcat은 진단 도구이며 적절한 편집->빌드->디버그 환경에 필수적입니다.)
    Logcat을 사용하여 다음을 수행합니다.

    • 검색 창을 사용하여 특정 로그 메시지를 검색합니다.
    • 자동 제어를 설정/해제하여 예정된 로그 메시지를 쉽게 볼 수 있습니다.
    • 이전 로그 출력 메시지를 지웁다.
    • 다양한 로그 수준 중에서 선택합니다.
  • iOS 플랫폼을 대상으로 하는 C++ 코드를 작성하고 코드 공유, 플랫폼 간 IntelliSense, 리팩터링 및 피킹 정의와 같은 고급 코드 작성 기능을 활용합니다. iOS 지원은 아직 진행 중이므로 곧 이에 대한 자세한 내용을 주의하세요. 버그에 대한 커넥트 사용하여 피드백을 보낼 수 있습니다. 또한 Visual Studio IDE에서 웃는 얼굴 보내기를 사용하여 빠른 생각을 보낼 수 있습니다.

또한 다음을 추가하거나 업데이트했습니다.

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

Visual Studio Tools for Apache Cordova

이전에 Visual Studio용 다중 디바이스 하이브리드 앱으로 알려진 Apache Cordova용 Visual Studio 도구를 사용하면 간단한 하나의 Visual Studio 프로젝트에서 Android, iOS, Windows 및 Windows 전화 대상으로 하는 플랫폼 간 앱을 쉽게 빌드, 디버그 및 테스트할 수 있습니다.

이전 CTP에서 사용할 수 있는 모든 기능은 이제 다음과 같은 향상된 기능을 포함하여 Visual Studio 2015 RC에서 사용할 수 있습니다.

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

사용자의 의견을 듣고 다음과 같이 디버그할 수 있는 디바이스 수를 확대했습니다.

  • jsHybugger를 사용하는 Android 4.4, Android 4.3 이하
  • iOS 6, 7, 8
  • Windows 스토어 8.1

그런 다음 디버깅 지원을 더욱 확대했습니다. 이제 Windows 전화 8.1을 대상으로 하는 Apache Cordova 앱을 디버그할 수 있습니다.

Windows Phone 8.1 에뮬레이터 또는 연결된 디바이스에서 중단점을 설정하고, 변수를 조사하고, 콘솔을 사용하고, 기타 디버깅 작업을 수행할 수 있습니다.

Debugging with Visual Studio Tools for Apache Cordova

RC 릴리스에 대한 CLI 상호 운용성을 추가했습니다. Visual Studio의 Cordova 프로젝트는 이제 디스크의 프로젝트 폴더에 대한 변경 내용과 동기화됩니다. 변경 내용은 타사 도구로 작업하든 다른 운영 체제에서 작업하든 Visual Studio에서 들어오고 나갈 수 있습니다. (Cordova 프로젝트의 기본 파일 구조는 Apache Cordova 명령줄 도구에서 예상하는 구조를 기반으로 하므로 Apache Cordova CLI 또는 해당 폴더 구조를 예상하는 다른 도구로 직접 작업하기가 더 쉽습니다.)

Android용 Visual Studio 에뮬레이터

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

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

RTM에 대해 다음과 같은 새로운 기능을 추가했습니다.

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

자세한 내용은 Android용 Visual Studio 에뮬레이터를 참조 하세요.

유니버설 Windows 앱 개발을 위한 Visual Studio 도구

유니버설 Windows 앱 개발을 위한 Visual Studio 도구는 Visual Studio 설정과 통합됩니다. 이러한 도구를 사용하면 모든 Windows 10 장치에서 실행되는 Windows 앱을 빌드할 수 있습니다. 즉, 주머니에 있는 휴대폰, 가방의 태블릿 또는 노트북, 책상에 있는 PC, IoT 장치 및 곧 집에 있는 Xbox 콘솔, Surface Hub 등입니다. 또한 이러한 도구를 사용하여 Windows 10 API를 활용하는 Windows 데스크톱 애플리케이션을 빌드할 수도 있습니다. 자세한 내용은 유니버설 Windows 앱용 Visual Studio 도구의 새로운 기능을 참조 하세요.

Windows 앱 개발에 대한 자세한 내용은 유니버설 Windows 앱 및 Windows 개발자 센터 가이드를 참조하세요. 최신 Windows 빌드 및 SDK에 대한 자세한 내용은 Windows 참가자 포털을 참조하세요.

Visual C++

이 릴리스에서는 C++ 컴파일러 및 표준 라이브러리가 C++11에 대한 향상된 지원과 특정 C++14 기능에 대한 초기 지원으로 업데이트되었습니다. 또한 C++17 표준에 포함될 것으로 예상되는 특정 기능에 대한 예비 지원 기능도 포함하고 있습니다.

또한 Microsoft 개발자 커뮤니티를 통해 고객이 제출한 많은 버그를 포함하여 500개 이상의 컴파일러 버그가 수정되었습니다. 감사합니다.

언어 기능

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

  • 다시 시작 가능한 함수(resume/await) 다시 시작 및 대기 키워드(keyword) 비동기 프로그래밍에 대한 언어 수준 지원을 제공하고 다시 시작 가능한 함수를 사용하도록 설정합니다. 현재 이 기능은 x64 대상에만 사용할 수 있습니다. C++17에 대해 제안됨 [N3858]
  • 이제 자동을 사용하여 제네릭(다형) 람다 식 람다 함수 매개 변수 형식을 지정할 수 있습니다. 컴파일러는 이 컨텍스트에서 자동을 해석하여 클로저의 함수 호출 연산자가 멤버 함수 템플릿이며 람다 식에서 자동을 사용할 때마다 고유 템플릿 형식 매개 변수에 해당한다는 것을 의미합니다. C++14
  • init-capture라고도 하는 일반화된 람다 캡처 식 입니다. 이제 임의의 식에 대한 결과를 람다의 캡처 절에 있는 변수에 할당할 수 있습니다. 이에 따라 이동 전용 형식을 값으로 캡처할 수 있으며 람다 식의 클로저 개체에서 임의의 데이터 멤버를 정의할 수 있습니다. C++14
  • 이제 이진 리터럴 이 지원됩니다. 이러한 리터럴은 0B 또는 0b 접두사가 붙고 숫자 0과 1로만 구성됩니다. C++14
  • 반환 형식 추론 이제 여러 반환 문과 재귀 함수가 있는 함수를 포함하여 일반 함수의 반환 형식을 추론할 수 있습니다. 이러한 함수 정의 앞에는 후행 반환 형식이 있는 함수 정의에서처럼 자동 키워드(keyword) 있지만 후행 반환 형식은 생략됩니다. C++14
  • 식을 초기화하기 위해 자동 키워드(keyword) 사용하는 decltype(auto) 형식 추론은 식에서 ref-qualifiers 및 최상위 cv-qualifiers를 제거합니다. decltype(auto)식 초기화에 auto 키워드를 사용하는 형식 추론에서는 ref-qualifier와 최상위 cv-qualifier를 식에서 제거합니다. C++14
  • 이동 특수 멤버 함수 이동 생성자와 이동 할당 연산자의 암시적 생성은 이제 조건이 허용될 때 암시적으로 생성되므로 컴파일러가 C++11 rvalue 참조를 완전히 준수하게 됩니다. C++11
  • 상속 생성자 A 파생 클래스는 이제 해당 정의에 Base::Base;를 사용하는 문을 포함하여 기본 클래스인 Base의 생성자를 상속할 것을 지정할 수 있습니다. 파생 클래스는 기본 클래스의 모든 생성자만 상속할 수 있으며 특정 기본 생성자만 상속하는 방법은 없습니다. 파생 클래스는 서명이 동일한 생성자가 포함된 여러 기본 클래스에서 상속할 수 없으며 상속된 생성자에 대한 동일한 서명을 가진 생성자를 정의할 수 없습니다. C++11
  • 맞춤 쿼리 및 컨트롤 alignof() 연산자를 사용하여 변수 맞춤을 쿼리하고 alignas() 지정자를 사용하여 제어할 수 있습니다. alignof()는 할당해야 하는 형식의 인스턴스에서 바이트 경계를 반환합니다. 참조의 경우 참조된 형식의 맞춤을 반환하고 배열의 경우 요소 형식의 맞춤을 반환합니다. alignas()는 변수의 맞춤을 제어합니다. 이 메서드는 상수 또는 형식을 사용합니다. 여기서 형식은 alignas(alignof(type)의 약식입니다. C++11
  • 확장된 sizeof 클래스 또는 구조체 멤버 변수의 크기는 이제 sizeof()를 사용하여 클래스 또는 구조체의 인스턴스 없이 확인할 수 있습니다. C++11
  • c++11 constexpr에 대한 constexpr 부분 지원. C++11(부분)
  • 이제 UCL(사용자 정의 리터럴) 의미 있는 접미사를 숫자 및 문자열 리터럴에 추가하여 특정 의미 체계를 제공할 수 있습니다. 컴파일러는 접미사가 붙은 리터럴을 적절한 UDL 연산자에 대한 호출로 해석합니다. C++11
  • 스레드 금고 "매직" 정적 지역 변수가 스레드로부터 안전한 방식으로 초기화되어 수동 동기화가 필요하지 않습니다. 초기화만 스레드로부터 안전하며 여러 스레드의 정적 지역 변수 사용은 여전히 수동으로 동기화되어야 합니다. CRT에 대한 종속성 사용을 방지하기 위해 /Zc:threadSafeInit- 플래그를 사용하여 스레드로부터 안전한 정적 기능을 사용하지 않도록 설정할 수 있습니다. C++11
  • 스레드-로컬 스토리지 thread_local 키워드(keyword) 사용하여 각 스레드에 대해 독립 개체를 만들어야 한다고 선언합니다. C++11
  • 이제 noexcept 연산자를 사용하여 식이 예외를 throw할지 여부를 검사 수 있습니다. 이제 noexcept 지정자를 사용하여 함수에서 예외를 throw하지 않음을 지정할 수 있습니다. C++11
  • 이제 인라인 네임스페이스 A 네임스페이스를 인라인으로 지정하여 내용을 바깥쪽 네임스페이스로 끌어들일 수 있습니다. 인라인 네임스페이스를 사용하여 기본적으로 최신 버전을 노출하는 버전이 있는 라이브러리를 만드는 한편 이전 API 버전을 여전히 명시적으로 사용 가능하게 만들 수 있습니다. C++11
  • 무제한 공용 구조 체 A 공용 구조체 형식은 이제 사소한 생성자가 아닌 형식을 포함할 수 있습니다. 이러한 공용 구조체의 생성자를 정의해야 합니다. 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", you"\U000000ef is I"와 같이 유니코드 리터럴에서 유니버설 문자 이름을 자유롭게 사용할 수 있습니다. C++11
  • func 미리 정의된 식별자 func 는 바깥쪽 함수의 정규화되지 않은 이름 및 장식되지 않은 이름을 포함하는 문자열로 암시적으로 정의됩니다. C++11
  • 이제 __restrict __restrict 참조에 적용할 수 있습니다.
  • 형식 이름 키워드(keyword). 이제 사용자는 템플릿 템플릿 매개 변수에서 클래스 대신 typename을 작성할 수 있습니다. C++14
  • globals void 연산자 delete(void *, std::size_t) noexceptvoid 연산자 delete[](void *, std::size_t) noexcept 를 오버로드할 수 있습니다. C++14
  • 이제 숫자 구분 기호 를 작은따옴표로 섞어 더 읽기 쉽게 만들 수 있습니다. 예를 들어 int x = 1'000'000;입니다. C++14
  • 리터럴의 범용 문자 이름은 이제 'A' 및 줄 바꿈 문자와 같은 기본 문자를 리터럴의 코드 포인트로 작성할 수 있습니다. 예를 들어 const char *s = "\u0041\u000A";입니다. C++11
  • 비정적 데이터 멤버 이니셜라이저는 이제 이니셜라이저 목록에서 올바르게 작동합니다. C++11
  • 특성 이제 함수를 [[noreturn]]으로 지정하여 함수가 반환되지 않음을 컴파일러에 알릴 수 있습니다(예외를 throw할 수 있지만). 이제 다양한 구문을 [[사용되지 않음]으로 지정할 수도 있습니다. 이제 네임스페이스 및 열거자에서 특성이 허용됩니다. C++11, C++14 및 C++17
  • UCL(사용자 정의 리터럴) 숫자 및 문자열 리터럴은 이제 리터럴 데이터에 대해 사용자 지정된 계산을 수행하는 의미 있는 접미사를 가질 수 있습니다. C++11
  • 데이터 종속성 순서특성 이제 함수 매개 변수, 람다 매개 변수 또는 함수 선언을 [[carries_dependency]]로 지정하여 자주 읽지만 거의 수정되지 않는 동시 데이터 구조에 대한 최적화를 개선할 수 있습니다. C++11
  • copy-list-initializations에 대한 braced-init-list 자동 추론을 사용하는 자동에 대한 새로운 규칙은 이제 std::initializer_list 추론하거나 그렇지 않으면 잘못된 형식이 됩니다. C++17

Visual C++ 라이브러리 기능

  • 표준 라이브러리 형식 에 대한 UCL(사용자 정의 리터럴)은 <이제 편의를 위해 chrono>, <문자열> 및 <복합> 헤더에서 UDL 연산자를 제공합니다. 예를 들어 123ms는 std::chrono::milliseconds(123)를 의미하고 "hello"s는 std::string("hello")을 의미하며 3.14i는 std::complex(0.0, 3.14)를 의미합니다.
  • Null 전달 반복기 표준 라이브러리를 사용하면 이제 컨테이너 인스턴스를 참조하지 않는 전달 반복기를 만들 수 있습니다. 이러한 반복기는 값이 초기화되며 특정 컨테이너 형식에 대해 같은지 비교됩니다. 값이 초기화된 반복기와 값이 초기화되지 않은 반복기의 비교는 정의되어 있지 않습니다. C++14
  • quoted() 이제 표준 라이브러리는 따옴표 붙은 문자열 값과 I/O를 더 쉽게 사용할 수 있도록 quoted() 함수를 지원합니다. 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 표준 라이브러리는 이제 typename tuple_element<I, T>::type의 별칭인 tuple_element_t<I, T> 형식 별칭을 지원합니다. type_traits 다른 메타 기능 형식 별칭과 유사하게 템플릿 프로그래머에게 <>편리한 기능을 제공합니다. C++14
  • 파일 시스템 "V3" 기술 사양 파일 시스템 기술 사양 의 포함 된 구현 최종 버전으로 업데이트 되었습니다.
  • 최소 할당자 표준 라이브러리는 이제 전체에서 최소 할당자 인터페이스를 지원합니다. 주목할 만한 수정에는 std::function, shared_ptr, allocate_shared() 및 basic_string 포함됩니다. C++11
  • <chrono> high_resolution_clock 및 steady_clock chrono 형식이 수정되었습니다. C++11
  • constexpr 은 C++ 표준 라이브러리 전체에서 구현되었습니다. C++11, C++14 및 C++17
  • quick_exit() 이제 quick_exit()를 호출하여 다중 스레드 프로세스를 더 클린 종료하고 at_quick_exit()에서 클린-up 코드를 실행할 수 있습니다. C++11
  • void_t 고급 템플릿 메타프로그래밍을 지원합니다. C++17
  • 이제 안전한 것으로 알려진 경우 unique_ptr<T[]> 로의 변환이 허용됩니다. C++17
  • invoke() 를 사용하면 함수 개체, 멤버 함수에 대한 포인터 및 데이터 멤버에 대한 포인터를 균일한 구문으로 호출할 수 있습니다. C++17
  • noexcept 표준 라이브러리는 특정 함수에서 noexcept 사용을 클린. C++17
  • uncaught_exceptions() 는 비행 중인 예외 수를 보고합니다(1보다 많을 수 있음). C++17
  • 이제 reference_wrapper 쉽게 복사할 수 있습니다. C++17
  • map/unordered_map 이제 insert_or_assign()/try_emplace()를 지원합니다. C++17
  • size(), empty()data() 비 멤버 함수가 이제 제공됩니다. C++17
  • auto_ptr, random_shuffle()이전 <기능> 기계는 C++11/14에서 더 이상 사용되지 않으며 C++17에서 제거되었습니다. Visual Studio 2015는 기본적으로 이를 제공하지만 _HAS_AUTO_PTR_ETC 프로젝트 전체로 정의하면 해당 정의가 제거됩니다.
  • 이제 unique_ptr 할당이 정확하게 제한됩니다. C++17
  • bool_constant 이제 integral_constant<부울>의 별칭으로 지원됩니다. C++17

Visual C++ 빠른 빌드

  • LTCG(증분 링크 시간 코드 생성) 이제 편집의 영향을 받는 프로젝트 부분만 다시 빌드하도록 LTCG에 지시할 수 있습니다. 이렇게 하면 LTCG를 사용하는 애플리케이션의 연결 시간이 크게 감소할 수 있습니다. /LTCG:증분 링커 스위치를 사용하여 이 기능을 활성화합니다.
  • 정적 라이브러리 에 대한 증분 연결은 이제 다른 코드 모듈에서 참조하는 정적 라이브러리에 대한 변경 내용을 증분 방식으로 연결합니다.
  • /Debug:FastLink는 새 PDB 만들기 기술을 사용하여 연결 시간을 크게 줄입니다.
  • 링크 시간을 줄이기 위해 링커의 알고리즘이 개선되었습니다.
  • 템플릿을 많이 사용하는 코드를 빠르게 빌드할 수 있도록 기능이 개선되었습니다.
  • PGO(Fast Profile Guided Optimization) 계측 PGO에서 게임 및 실시간 시스템을 위한 새로운 경량 계측 모드가 도입되었습니다. /GENPROFILE 및 /FASTGETPROFILE 링커 스위치를 통해 제공되는 다른 새 기능을 사용할 수 있을 뿐 아니라 이제는 PGO 사용 시 코드의 품질과 빌드 속도 간의 균형을 적절하게 유지할 수 있습니다.
  • 개체 파일 크기 감소 컴파일러 및 C++ 표준 라이브러리 향상으로 인해 개체 파일과 정적 라이브러리가 훨씬 더 작아질 수 있습니다. 중복 코드는 이전에 링커를 통해 제거되었으므로 이러한 기능 향상은 DLL(동적 연결 라이브러리) 또는 실행 파일(EXE)의 크기에 영향을 주지 않습니다.

Visual C++ 성능 및 코드 품질

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

참고 항목

명령 옵션을 업데이트했습니다. 이전 릴리스에서와 같이 /d2guard4 스위치를 사용하는 대신 이제 /guard:cf를 사용해야 합니다.

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

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

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

Visual C++의 PDB(Program Database) 향상된 기능에는 다음이 포함됩니다.

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

IntelliSense 가독성 향상: 복잡한 템플릿 인스턴스화 및 typedefs는 매개 변수 도움말 및 quickinfo에서 간소화되어 읽기 쉽습니다.

C++의 디버거 시각화

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

RC 이후 Android에서 C++를 디버깅하는 동안 Natvis 파일을 사용할 수 있습니다. 디버거에는 많은 일반적인 템플릿에 대한 시각화가 포함되어 있으며 C++ 프로젝트에 추가된 사용자 지정 파일 로드를 지원합니다.

네이티브 메모리 진단

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

조사식 및 직접 실행 창에서 C++ 함수를 호출할 때 교착 상태 검색 및 복구가 향상되었습니다.

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

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

최적화된 코드 디버깅 지원 향상 - /Zi, /Zo 또는 /Z7 플래그를 사용하도록 설정된 코드 디버그

Visual C++ 그래픽 진단

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

  • 연속 캡처 캡처는 하나의 캡처 로 최대 30개의 연속 프레임으로 구성됩니다.
  • 프로그래밍 방식 캡처 시작 프레임 캡처를 프로그래밍 방식으로 시작합니다. Present를 호출하지 않는 프로그램에서 컴퓨팅 셰이더를 디버그하는 경우나 렌더링 문제를 수동으로 캡처하기는 어렵지만 런타임에 앱 상태에서 프로그래밍 방식으로 예측할 수 있는 경우 프로그래밍 방식 캡처가 특히 유용합니다.
  • 향상된 그래픽 이벤트 목록 그리기 호출로 구성된 계층 구조에서 캡처된 이벤트 및 해당 상태를 표시하는 새 그리기 호출 보기가 추가되었습니다. 그리기 호출을 확장하여 그리기 호출 시 현재 상태였던 디바이스 상태를 표시할 수 있으며, 각 상태 종류를 추가로 확장하여 해당 값을 설정하는 이벤트를 표시할 수 있습니다.
  • Windows 전화 8.1 그래픽 진단에 대한 지원은 이제 전화 에뮬레이터 또는 테더링된 전화 Windows 앱 디버깅을 완벽하게 지원합니다.
  • 그래픽 프레임 분석 이 도구는 캡처된 프레임에 대한 성능 측정을 수집합니다. 또한 다양한 텍스처 기술이 적용될 때 성능이 어떻게 영향을 받는지에 대한 인사이트를 제공하는 미리 정의된 실험 집합을 수행합니다. 또한 프레임 분석은 하드웨어에서 성능 카운터를 수집합니다.
  • 그래픽 분석을 위한 전용 UI 새 Visual Studio Graphics Analyzer 창은 그래픽 프레임을 분석하기 위한 전용 작업 영역입니다.
  • 셰이더 편집 및 적용 보기는 앱을 다시 실행하지 않고 캡처된 로그에서 셰이더 코드 변경의 영향을 확인합니다.
  • Tools-Options-Graphics>> 진단에서 캡처 옵션을 구성합니다.
  • 프레임 캡처 및 재생을 위한 명령줄 도구 입니다.
  • DirectX 12에 대한 그래픽 진단 지원. 이제 Visual Studio 그래픽 진단 도구는 DirectX 12 애플리케이션에서 렌더링 문제 디버깅을 지원합니다.

새 GPU 사용량 도구

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

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

이 릴리스의 새로운 기능: Visual C++ 관리형 테스트 프로젝트의 디버깅을 사용하도록 설정하려면 "도구 | 옵션 | 디버깅 | 일반" 창과 "모듈 로드에서 JIT 최적화 표시 안 함(관리 전용)" 옵션을 검사.

C# 및 Visual Basic

언어 기능

이 릴리스에서는 몇 가지 새로운 C# 및 Visual Basic 언어 기능을 통해 일상적인 코드에서 상용구와 혼란을 줄이고, 보다 선언적인 프로그래밍 스타일을 장려하고, 두 언어를 더욱 긴밀하게 결합할 수 있습니다. 예를 들어 형식 및 멤버 선언 및 null 검사 대한 구문 개선이 있습니다. 또한 식 내에서 지역 변수를 선언할 수 있으며 catch 및 finally 블록에서 await를 사용할 수 있습니다. 이러한 기능 중 대부분은 이전 릴리스의 두 언어 중 하나에 대해서만 구현되지만 최종 릴리스의 두 언어에서 모두 사용할 수 있습니다.

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

코드 편집기 UI 및 편집

C# 및 Visual Basic의 코드 편집기 UI 및 편집 환경은 .NET 컴파일러 플랫폼("Roslyn")을 기반으로 하는 새로운 환경으로 대체되었습니다. 오늘날 여러분이 좋아하는 많은 기능이 개선되거나 개선되었습니다.

  • 전구는 일반적인 코드 문제 수정 및 코드 리팩터링을 포함하여 Visual Studio 편집기에서 수행하는 모든 빠른 작업을 위한 새로운 홈입니다. 코드에 문제가 있는 경우 전구에 해당 문제에 대한 제안된 수정 사항이 표시됩니다. 모든 리팩터링 작업이 전구로 이동되었습니다. Ctrl + <점을> 입력하여 언제든지 전구에 액세스할 수 있습니다.

Light bulb shows suggestions

  • 인라인 임시 변수 및 소개 로컬의 두 가지 새로운 핵심 리팩터링 작업이 있습니다. 다음은 새 소개 로컬 기능의 예입니다.

Introduce local light bulb

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

Inline temporary light bulb

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

Improvements to inline renaming

  • 대상으로 하는 Microsoft 플랫폼 및 NuGet 패키지에 대한 특정 코드 인식 지침을 사용하여 입력할 때 라이브 코드 분석 및 자동 수정을 얻을 수 있습니다. 미리 보기에서는 다른 패키지와 마찬가지로 NuGet 갤러리에서 가져오는 NuGet 패키지를 통해 라이브 FxCop 분석기를 추가해야 합니다. 지정된 라이브 규칙을 끌어올 때 동일한 빌드 후 FxCop 규칙을 대체하므로 중복 적/횟수는 발생하지 않습니다. 다음은 Azure용 코드 분석 패키지의 예입니다.

An example from the Code Analysis for Azure package

  • C# 및 Visual Basic에 대한 식 계산기가 다시 작성되었습니다. 향상된 기능으로는 Watch 및 Immediate Windows에서 LINQ 및 람다 식에 대한 지원이 포함됩니다.

F#

언어 및 런타임 기능

F# 4.0에는 간격을 메우고, 더 많은 것을 "그냥 작동"하고, 주요 영역에서 성능을 향상시키는 수많은 새로운 언어 및 런타임 추가가 포함되어 있습니다. 컴파일러 및 런타임 전반에 걸쳐 수많은 버그와 작은 성능 최적화가 구현되었습니다.

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

F# 런타임

  • 배열, 목록 및 Seq 모듈 의 정규화 - 이제 컬렉션 처리 함수 집합이 배열, 목록 및 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# 도구에는 다양한 버그 수정과 함께 새로운 환경과 기능이 있습니다.

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

.NET Framework 4.6

.NET Framework의 최신 버전은 4.6입니다. 이 버전은 ASP.NET, Windows Communication Foundation 및 Windows Presentation Foundation과 같은 애플리케이션 개발 기술에서 다양한 기능 향상을 포함합니다. 네트워킹, .NET Framework 기본 클래스 라이브러리 및 공용 언어 런타임(새 64비트 JIT 컴파일러, 유니버설 Windows 플랫폼 앱에 대한 네이티브 코드 컴파일, 어셈블리 로더 개선 포함)도 변경되었습니다.

변경 내용의 샘플링은 다음과 같습니다.

  • ASP.NET 모델 바인딩 메서드는 이제 작업을 반환합니다.
  • 이제 ADO.NET SQL Server 2016 CTP2(Community Technology Preview 2)에서 사용할 수 있는 Always Encrypted 기능을 지원합니다.
  • WPF(Windows Presentation Foundation)는 터치 및 향상된 HDPI 레이아웃에 대한 더 나은 지원을 제공합니다.
  • 이제 WCF(Windows Communication Foundation)는 SSL 3.0 및 TLS 1.0 외에도 SSL 버전 TLS 1.1 및 TLS 1.2를 지원합니다.
  • .NET Framework 기본 클래스 라이브러리에는 가비지 수집, 작업 기반 비동기 패턴 및 암호화 기능이 향상되었습니다. 또한 SIMD 사용 벡터 형식뿐만 아니라 개발자가 라이브러리의 새 vesion에서 지원하는 기능에 대한 균일한 옵트아웃 메커니즘을 제공할 수 있는 호환성 스위치에 대한 지원도 추가합니다.

추가 세부 정보 및 .NET Framework에 추가된 새 기능의 전체 목록은 .NET Framework의 새로운 기능을 참조 하세요.

Entity Framework

이 릴리스에는 Entity Framework 7의 미리 보기 버전과 주로 버그 수정 및 커뮤니티 기여 포함된 Entity Framework 6 업데이트가 포함되어 있습니다.

Entity Framework 7

새 버전의 Entity Framework를 사용하면 새 플랫폼과 새 데이터 저장소를 사용할 수 있습니다. 이제는 Windows Phone, Windows 스토어, ASP.NET 5 및 기존의 데스크톱 애플리케이션이 Entity Framework를 사용할 수 있습니다. 이 버전의 프레임워크는 관계형 데이터베이스뿐만 아니라 Azure Table Storage 및 Redis와 같은 비관계형 데이터 저장소를 지원합니다. 여기에는 새 ASP.NET 5 프로젝트에 설치된 EF7 런타임의 초기 미리 보기가 포함되어 있습니다. EF7에 대한 자세한 내용은 EF7의 모든 내용을 참조 하세요.

Entity Framework 6.x

이 릴리스에는 Entity Framework 6.1.3 버전의 런타임 및 도구가 포함되어 있습니다. Entity Framework 6.1.3에는 버그 수정 및 커뮤니티 기여 포함되어 있습니다. Entity Framework 6.1.3포함된 변경 내용 목록을 볼 수 있습니다.

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

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

Visual Studio IDE

공유 계정

이 릴리스에서는 Visual Studio에서 추가하는 사용자 계정을 Blend for Visual Studio 또는 Microsoft Test Manager와 같은 다른 앱과 공유할 수 있습니다(그 반대의 경우도 마찬가지임).

공유 프로젝트

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

  • 버전이 지정되지 않은 VB/C# 프로젝트(예: 콘솔 앱, 클래스 라이브러리, Win Form 앱)
  • Windows 스토어 8.1 및 Windows 전화 8.1(VB/C#/JavaScript)
  • Windows 전화 Silverlight 8.0/8.1(VB/C#)
  • WPF 및 PCL

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

코드 편집기(모든 언어)

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

터치 지원 은 이제 Visual Studio 편집기에서 다음 제스처에 사용할 수 있습니다.

  • 스크롤(일반 및 향상된 스크롤 막대의 편집기 화면에서 탭 및 끌기)
  • 확대/축소
  • 편집기 여백을 탭하여 전체 줄을 선택하고 단어를 두 번 탭하여 선택합니다.
  • 길게 눌러 편집기 상황에 맞는 메뉴 호출

두 번 탭 제스처가 낮은 확대/축소 수준에서 항상 신뢰할 수 있는 것은 아니라는 점을 알고 있습니다. 우리는 새로운 터치 지원에 대한 피드백을 듣고 싶습니다, 특히 당신이 찾을 수있는 문제.

XAML 디자이너

이제 Visual Studio 고객은 사용 컨텍스트 내에서 외부 리소스 사전에 저장된 템플릿 및 스타일을 편집할 수 있습니다. 이 환경은 Peek을 사용하여 XAML 디자이너에서 실제 현장 리소스 편집을 사용하도록 더욱 개선되었습니다.

사용자 지정 창 레이아웃

이제 창 메뉴에서 창 레이아웃 저장을 클릭하여 사용자 지정 창 레이아웃을 저장하고 창 메뉴에서 창 레이아웃 적용을 클릭하여 사용자 지정 레이아웃 적용할 수 있습니다. 미리 할당된 바로 가기 키를 사용하여 레이아웃을 적용할 수도 있습니다. 처음 9개의 레이아웃에는 Ctrl + Alt + 1에서 Ctrl+Alt+9까지의 바로 가기 키가 있습니다. 수행할 수 있는 다른 작업에는 창 메뉴에서 창 레이아웃 관리를 클릭하여 레이아웃 삭제, 이름 바꾸기 및 순서 변경이 포함됩니다.

고해상도 아이콘

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

UI 개선 사항

  • 이제 메뉴가 ALL CAPS 스타일 대신 제목 대/소문자 스타일로 표시됩니다.
  • 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 확장성에 대해 자세히 알아봅니다.

혼합

아름다운 XAML 앱을 만들기 위한 향상된 사용자 인터페이스 개발 환경을 제공하기 위해 Blend for Visual Studio 2015를 다시 디자인했습니다. Blend는 Visual Studio와 일치하는 세련된 새 모양, 솔루션 및 팀 탐색기 지원 및 Blend와 Visual Studio 간의 워크플로를 용이하게 하는 보강된 파일 다시 로드 환경을 제공합니다. 또한 생산성을 높일 수 있도록 Blend의 가장 원하는 기능을 제공했습니다.

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

Blend에 추가된 새로운 기능에 대해 자세히 알아보려면 미리 보기 블로그 게시물을 참조하세요.

디버깅 및 진단

첨부할 때 관리되는 편집 및 계속

RC를 기준으로 .NET 애플리케이션에 연결할 때와 환경 변수를 편집하고 계속할 수 있습니다.

complus_forceenc 대상 프로세스에서 1로 설정됩니다.

중단점 구성

새 중단점 설정 창을 사용하면 중단점에 대한 조건 및 작업을 지정할 수 있습니다. 이 창에는 중단점 조건 및 작업에 대한 향상된 IntelliSense 지원이 포함됩니다. 실행 취소(Ctrl+Z)를 사용하여 삭제된 중단점을 복원할 수 있습니다.

디버거 Windows의 람다 식

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

PerfTips

Perf팁 기능을 사용하여 디버거를 사용하여 중단점 및 단계를 설정할 때 편집기에서 코드가 직접 실행되는 데 걸린 기간을 확인할 수 있습니다.

GPU 사용량

GPU 사용량 도구를 사용하여 DirectX 애플리케이션의 GPU 사용을 이해할 수 있습니다. 프레임 시간, 프레임 속도 및 GPU 사용률 그래프는 애플리케이션이 라이브로 실행되면 사용할 수 있습니다. 또한 이 도구는 자세한 GPU 사용량 현황 데이터를 수집하고 분석하여 개별 DirectX 이벤트의 CPU 및 GPU 실행 시간에 대한 인사이트를 제공할 수 있으므로 CPU 또는 GPU가 성능 병목 상태인지 여부를 확인하는 데 유용할 수 있습니다.

C++ 디버거의 향상된 기능

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

C++ 디버거가 프로세스를 시작하면 Windows는 이제 디버그 일반 힙이 아닌 일반 힙을 사용하여 메모리를 할당합니다. 이에 따라 디버깅을 더 빠르게 시작할 수 있습니다.

XAML용 UI 디버깅 도구

실행 중인 WPF 애플리케이션의 시각적 트리와 트리의 모든 요소에 대한 속성을 검사하는 Live Visual Tree와 Live Property Explorer라는 두 가지 새로운 도구가 추가되었습니다. 이러한 도구를 사용하면 실행 중인 앱에서 요소를 선택하고 최종, 계산 및 렌더링된 속성을 표시할 수 있습니다. 도구에는 다음과 같은 내용도 포함되어 있습니다.

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

속성이 서로를 재정의하는 방법을 분리하고 승리 동작을 파악하는 것은 디자인 타임에 어려울 수 있습니다. 이제 XAML용 새 UI 디버깅 도구를 사용하여 런타임에 이러한 검사를 수행할 수 있습니다.

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

UI Debugging Tools for XAML, full screen

예외 설정

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

Exceptions Settings - Break when Thrown window

타임라인 도구

새로운 타임라인 도구는 WPF 및 Windows 스토어 8.1 애플리케이션의 성능을 검사, 진단 및 개선하는 데 사용할 수 있는 애플리케이션에서 사용하는 리소스에 대한 시나리오 중심 보기를 제공합니다.

성능 및 진단 허브에 있는 타임라인 도구는 애플리케이션이 UI 프레임을 준비하고 네트워크 및 디스크 요청을 서비스하는 데 소요되는 시간을 보여줍니다. 이 도구는 애플리케이션 로드 및 페이지 로드와 같은 시나리오의 컨텍스트에서 이 작업을 수행합니다.

The new Timeline tool

진단 도구

디버깅을 시작할 때 나타나는 새 진단 도구 창을 추가했습니다(F5 키를 누릅니다). 진단 도구 창에는 다음과 같은 기능이 포함되어 있습니다.

  • 이벤트(IntelliTrace 사용)
    이벤트(IntelliTrace 사용)를 사용하면 디버깅 세션 중에 수집된 모든 디버거 중단, 출력 및 IntelliTrace 이벤트에 액세스할 수 있습니다. 데이터는 타임라인 테이블 형식 보기로 표시됩니다. 두 보기가 동기화되고 서로 상호 작용할 수 있습니다.
  • 메모리 사용량
    메모리 사용량 도구를 사용하면 디버깅하는 동안 앱의 메모리 사용량을 모니터링할 수 있습니다. 네이티브 및 관리형 메모리의 자세한 스냅샷 가져와서 비교하여 메모리 증가 및 메모리 누수의 원인을 분석할 수도 있습니다.
  • CPU 사용
    CPU 사용량 도구를 사용하면 디버깅 중에 애플리케이션의 CPU 사용량을 모니터링할 수 있습니다.
    (이 도구는 Visual Studio 2015의 미리 보기 릴리스에서 사용할 수 있었던 CPU 시간 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 스토어 앱과 Windows 전화 Xbox 및 Windows 스토어에 이르기까지 모든 Windows 10 장치에서 실행되는 유니버설 앱을 빌드할 때 네트워크 관련 문제를 진단하는 데 도움이 될 수 있습니다.

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

  • 인증 관련 문제(예: 리소스에 액세스할 수 없는 이유)
  • 캐시 관련 문제(예: 최신 버전의 리소스가 없는 이유)
  • 앱의 일반적인 작업을 실행할 때 다운로드되는 바이트 수
  • 리소스에 액세스하고 다운로드할 때 병목 현상이 발생하는 위치

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

디버깅하는 동안 표시되는 진단 도구 창을 다음과 같이 개선했습니다.

  • 이제 앱의 이벤트가 IntelliTrace 이벤트와 출력 이벤트 트랙 간에 분할되는 대신 단일 IntelliTrace 이벤트 트랙에 표시됩니다.
  • 이제 프로그램이 실행되는 동안 앱의 이벤트가 표시됩니다. 이제 이벤트를 보려면 더 이상 "모두 중단"을 누를 필요가 없습니다.
  • 이제 코드에서 설정한 추적점에 대한 기록 디버깅을 활성화하여 소스 코드와 호출 스택을 볼 수 있습니다.
  • 이제 메모리 사용량 그래프에서 가비지 수집 및 스냅샷 이벤트를 볼 수 있으므로 관리되는 가비지 수집이 발생한 시기와 메모리 사용량 도구를 사용하여 스냅샷 수행했을 때를 확인할 수 있습니다.

ASP.NET

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 커넥트 미들웨어를 사용하여 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, Web Pages 3.2 및 Web API 2.2에 대한 최신 런타임 패키지를 사용하도록 템플릿 패키지를 업데이트했습니다. 이러한 패키지 업데이트 에 대한 자세한 내용은 ASP.NET MVC 5.2.3, Web Pages 3.2.3 및 Web API 5.2.3 릴리스 블로그 게시물을 참조하세요.

ASP.NET Web API OData 5.3.1

ASP.NET Web OData 5.3.1을 사용하도록 Web API OData 스캐폴더를 업데이트했습니다. 자세한 내용은 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 프로젝트를 참조하세요.

ASP.NET ID 2.2.1

ASP.NET ID 2.2.1에는 2.1보다 많은 버그 수정 및 성능 향상이 있습니다. 자세한 내용은 이 ASP.NET ID 2.2.1 블로그 게시물을 참조하세요.

ASP.NET 도구 업데이트

JSON 편집기 개선 사항

JSON 스키마를 비동기적으로 로드하고, 자식 스키마를 캐싱하고, 더 나은 IntelliSense를 지원하는 등의 성능 향상을 포함하여 JSON 편집기에서 몇 가지 개선 사항을 수행했습니다. 또한 다음과 같은 새로운 기능이 있습니다.

  • 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 파일 작성과 관련된 일반적인 문제를 파악할 수 있습니다.
  • JSON 스키마 초안 v4 사양을 완전히 지원하여 IntelliSense 및 JSON 파일의 유효성 검사 모두에 대한 지원이 크게 향상되었습니다. 이제 필수 속성을 식별하기가 훨씬 쉬워지고 편집기를 사용하면 속성을 사전순으로 쉽게 정렬할 수 있습니다. 이제 축소된 JSON 파일의 서식을 자동으로 축소 해제합니다.
  • 유용한 JSON 스키마 파일의 오픈 소스 컬렉션인 SchemaStore.org 대한 지원을 추가했습니다. 즉, SchemaStore.org 연결된 스키마가 있는 Visual Studio에서 열린 JSON 파일은 자동으로 IntelliSense 및 유효성 검사를 받습니다.
  • JSON 스키마 작성자 지원도 더 나은 스키마 정신 유효성 검사로 향상되었습니다.

HTML 편집기 개선 사항

HTML 편집기에서 웹 표준에 대한 IntelliSense를 업데이트하고 다음과 같은 새로운 기능을 도입했습니다.

  • 더 나은 클라이언트 템플릿 서식 지정. HTML 편집기가 더 이상 이중 중형 구문 {{...}}을(를) 구문 분석하거나 서식을 지정하지 않습니다. 이는 해당 구문의 콘텐츠가 HTML로 처리되지 않아 무효화되거나 HTML 포맷터를 사용하여 올바르게 수행할 수 없는 콘텐츠의 형식을 지정하지 않도록 하기 위한 것입니다. Angular, 핸들바, 콧수염 및 기타 이중 중형 템플릿 구문에 적합합니다.
  • 사용자 지정 요소, 폴리머 요소 및 특성을 지원합니다. HTML 편집기에서는 더 이상 사용자 지정 요소에 대해 알 수 없는 특성의 유효성을 검사하지 않습니다. 다른 프레임워크에는 많은 사용자 지정 태그가 있기 때문입니다. 알 수 없는 요소 아래에는 더 이상 물결선이 없습니다.
  • 웹 구성 요소에 대한 기본 IntelliSense입니다. HTML 편집기에서는 웹 구성 요소 표준의 일부인 link rel="import" />에 대한 <IntelliSense가 있습니다.
  • HTML 요소 도구 설명입니다. 도구 설명은 편집기에서 HTML 요소에 대해 제공됩니다.
  • #region 지원. 이제 HTML 편집기에서 영역 접기를 지원합니다. 주변 코드 조각을 사용하여 현재 선택 영역도 둘러싸일 수 있습니다.
  • 작업 목록의 Todo/Hack 주석 지원
  • Angular 아이콘 두 Angular 지시문(예: <<ng-view>) 및 특성(예: ng-controller)은 이제 Angular 로고가 있는 IntelliSense에 표시되어 쉽게 식별할 수 있습니다.
  • 부트스트랩 아이콘 이제 HTML 클래스 특성에 제공된 IntelliSense는 부트스트랩 CSS 파일에서 클래스 이름을 정의한 경우 부트스트랩 로고와 함께 표시됩니다.

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

  • 작업 목록의 Todo/Hack 주석 지원
  • @viewport LESS 편집기를 수정합니다. 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 스택입니다. 이 관리 팩에는 다음과 같은 기능이 포함되어 있습니다.

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

Visual Studio 2015에는 ASP.NET 5개의 베타5 런타임 패키지가 포함되어 있습니다. 이러한 패키지는 아직 미리 보기 상태이며 프로덕션 환경에서는 사용하지 않는 것이 좋습니다. 추가된 특정 개선 사항 및 GitHub의 게시된 릴리스 정보에서 해결된 문제에 대한 모든 세부 정보를 찾을 수 있습니다.

Visual Studio 2015에는 ASP.NET 5개 애플리케이션을 빌드하고 DNX 프로젝트 작업을 위한 새로운 프로젝트 시스템 및 통합 도구 환경이 제공됩니다. 새로운 도구 기능 중 일부는 다음과 같습니다.

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

이 릴리스의 새로운 기능

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

자세한 내용은 GitHub의 도구 릴리스 정보.NET 웹 개발 및 도구 블로그를 참조하세요.

Azure 도구

계정 선택기 통합

계정 선택기는 웹 게시 및 웹앱 만들기/선택 대화 상자 전체에서 사용되며, 여러 계정에 대한 원클릭 액세스를 사용하도록 설정합니다. 여러 계정에 한 번 로그인할 수 있으며 리소스를 게시할 때 개별 계정을 빠르고 쉽게 선택할 수 있습니다.

API Apps

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

WebJobs 도구

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

  • 서버 탐색기의 웹 사이트 노드 아래에 있는 WebJobs 노드입니다.
  • 서버 탐색기에서 연속 WebJobs를 시작/중지합니다.
  • 서버 탐색기에서 주문형 또는 예약된 작업을 실행합니다.
  • 서버 탐색기에서 WebJob 대시보드를 봅니다.
  • 대시보드 보기 상황에 맞는 메뉴 Azure 웹 사이트의 WebJob 대시보드로 이동하는 데 사용합니다.

WebJobs SDK

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

NuGet

NuGet 2.8.3

DevExtreme 프로젝트 및 BizTalkProject 2.8.3에 대한 지원을 추가했습니다. 자세한 내용은 NuGet 2.8.3 릴리스 정보를 참조 하세요.

NuGet 패키지 관리자

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

NuGet 갤러리

새 웹 서비스 및 통합 클라이언트를 사용하여 NuGet 갤러리의 성능을 향상시켰습니다. NuGet 업데이트에 대한 자세한 내용은 .에서 http://docs.nuget.org확인할 수 있습니다.

JavaScript

JavaScript 편집기 지원

JavaScript 편집기를 더욱 유용하게 업데이트했습니다.

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

TypeScript

Visual Studio 2015에는 TypeScript 도구의 1.5 릴리스가 포함되어 있습니다. 이 릴리스는 모듈, 소멸을 포함하여 ECMAScript 6에 대한 다양한 지원을 추가합니다. ES3/ES5의 경우, 확산, 기호, 계산 속성, let/const 및 ES3/ES5에 대한 태그가 지정된 문자열 템플릿입니다. TypeScript 1.5는 ES6에 대한 지원 외에도 실험적 ES7 데코레이터 제안, UMD 및 System.js 모듈 출력 및 "tsconfig.json"이라는 새로운 경량 이식 가능한 프로젝트 파일에 대한 지원을 추가합니다.

IntelliTest

Visual Studio 2015에서는 .NET 코드를 탐색하여 테스트 데이터와 단위 테스트 제품군을 생성하는 IntelliTest를 추가했습니다. 코드의 모든 문에 대해 해당 문을 실행할 테스트 입력이 생성됩니다. 코드의 모든 조건부 분기에 대해 사례 분석이 수행됩니다. 예를 들면 다음과 같습니다.

문 및 어설션과 같은 예외를 throw할 수 있는 모든 작업이 분석됩니다. 이 분석은 각 메서드에 대해 매개 변수가 있는 단위 테스트용 테스트 데이터를 생성하는 데 사용됩니다(최대 코드 검사가 포함된 단위 테스트 생성). 그런 다음 기반 도메인 지식을 활용하여 이러한 단위 테스트를 수정할 수 있습니다.

IntelliTest에 다음 기능도 추가했습니다.

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

IntelliTest(이전의 "스마트 단위 테스트")에 대한 자세한 내용은 IntelliTest를 사용하여 코드에 대한 단위 테스트 생성을 참조하세요.

Application Insights

다양한 성능 향상 및 버그 수정과 함께 Application Insights에는 이제 다음 업데이트가 포함됩니다.

  • Visual Studio의 Application Insights 도구는 이제 Visual Studio 커넥트 services의 일부입니다. Application Insights를 추가하려면 커넥트 서비스 대화 상자를 열고 서비스 목록에서 Application Insights를 선택합니다.
  • 이 업데이트는 Visual Studio 2013 업데이트 3 또는 Visual Studio 2013 업데이트 4 Application Insights가 추가된 프로젝트와 완벽하게 호환됩니다.
  • ASP.NET 5명의 개발자, Windows 10 유니버설 앱 개발자 및 Windows 8.1 유니버설 앱 개발자는 Visual Studio에서 바로 프로젝트에 Application Insights를 추가할 수 있습니다.
  • Windows 10 유니버설 앱 개발자는 Application Insights SDK를 추가하기 위해 Azure에 로그인할 필요가 없습니다. 대신 Visual Studio에서 Application Insights 도구를 사용하여 추가할 수 있습니다.
  • Application Insights는 Visual Studio에서 전역 계정 선택기를 사용하므로 Visual Studio에서 동일한 계정을 사용할 수 있습니다.
  • 이제 Project의 서비스 참조 폴더에서 Application Insights에 대한 "시작" 정보를 볼 수 있습니다. 시작 폴더를 클릭하기만 하면 됩니다.

View Getting Started information for Application Insights from a Project's Service Reference folder.

Release Management

이 기능을 사용하면 앱의 릴리스를 관리하는 프로세스를 개선하고, 각 개별 단계에 대한 특정 환경에 앱을 배포하고, 각 단계에 대한 승인을 통해 프로세스의 단계를 관리할 수 있습니다. Visual Studio Online용 릴리스 관리 서비스를 사용하여 온-프레미스 릴리스 관리 서버를 설치하고 기본 않고도 검사에서 배포까지 릴리스 파이프라인을 설정할 수 있습니다.

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

  • 릴리스 프로세스 및 알림의 개요를 보여 주는 릴리스 관리 클라이언트 시작 페이지입니다.
  • 추가 캐싱을 통해 다른 릴리스 관리 클라이언트 페이지의 렌더링 및 대화형 작업
  • Active Directory 및 TFS 보안 그룹의 동기화
  • 새 릴리스 만들기

이제 Team Foundation Server 2015에 포함된 새 빌드 시스템의 빌드 정의에 대한 구성 요소 및 릴리스 정의를 정의할 수 있습니다. 구성 요소를 정의하는 동안 빌드 정의에서 게시된 아티팩트 이름과 동일하거나 포함된 구성 요소 이름을 사용하여 구성 요소의 아티팩트를 지정할 수도 있습니다.

Git 버전 제어

분기를 사용하여 작업하고 기록의 변경 내용이 어떻게 다른지 확인하는 것이 더 쉽습니다.

분기

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

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

Git branches

그리고 RC를 기준으로 분기 페이지를 다시 작업했습니다.

  • 이제 원격 분기와 로컬 분기에서 병합할 수 있습니다.
  • 병합하는 분기가 현재 검사 분기로 고정됩니다.
  • 이제 현재 분기에서 로컬 또는 원격 분기로 다시 지정할 수 있습니다.
  • 원격 분기를 두 번 클릭하거나 마우스 오른쪽 단추로 클릭한 다음 체크 아웃을 선택하여 검사 수 있습니다.

원격 관리

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

자세한 기록

이제 커밋이 기록에서 어떻게 다른지 확인할 수 있습니다.

Detailed view of history

그래프에서 병합 커밋은 회색이고 병합되지 않은 커밋은 더 밝은 색입니다. 단순 보기와 상세 보기 간에 전환할 수 있습니다. 그래프가 잘리면 크기를 조정할 수 있습니다.

RC 릴리스에서 기록 그래프를 몇 가지 업데이트했습니다.

  • 그래프에 표시되는 세부 수준을 제어할 수 있는 도구 모음을 추가했습니다.
  • 이제 기록 줄을 강조 표시하여 현재 선택한 커밋에서 연결할 수 있는 커밋을 나타냅니다.
  • 이제 로컬 분기와 원격 분기가 다른 경우 기록의 두 줄을 모두 표시합니다. 이는 로컬 분기의 재지정 후 특히 유용합니다.

팀 탐색기에서 다시베이스

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

VSO 리포지토리

VSO 리포지토리를 만들 때 "시작" 환경을 개선했으며 새 리포지토리 만들기를 간소화하기 위해 더 많은 변경 사항이 제공됩니다. RC의 경우 기존 리포지토리에 새 코드를 더 쉽게 추가할 수 있도록 약간 변경했습니다. 팀 탐색기를 사용하여 리포지토리에 연결한 다음 새 프로젝트 파일을 > 선택하면 연결된 리포지토리의 루트에서 대화 상자가 시작됩니다.

Visual Studio Online에 게시

Visual Studio Online에 게시 기능을 사용하면 로컬 리포지토리를 Visual Studio Online으로 가져오는 프로세스가 크게 간소화됩니다. 12단계를 수행하는 데 사용한 단계는 이제 2단계입니다. 팀 탐색기 동기화 페이지에서 Visual Studio Online에 새 게시 섹션을 사용하면 Visual Studio 계정 관리자에서 사용자 계정을 선택할 수 있습니다. Visual Studio 온라인 계정은 목록에서 자동으로 사용할 수 있습니다. URL을 기억할 필요가 없습니다. 코드를 공유할 준비가 되면 리포지토리를 호스트할 새 팀 또는 기존 팀 프로젝트를 선택하고 게시를 클릭하면 됩니다.

Publish to Visual Studio Online dialog box

Single Sign-In

현재 다른 많은 개발자와 마찬가지로 애플리케이션을 개발할 때 여러 클라우드 서비스를 활용합니다. 예를 들어 데이터를 저장하기 위해 애플리케이션에 클라우드 백 엔드를 추가하거나, 소스 코드를 클라우드에 저장하거나, 저장소에 애플리케이션을 게시했을 수 있습니다.

과거에는 이러한 각 서비스에 별도의 로그인 프로세스가 필요했고 각 서비스는 로그인한 사용자 상태를 별도로 관리했습니다.

이 릴리스에서는 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# 파일에 대한 팀 활동 타임라인 표시기의 예입니다.

The Team Activity Timeline indicator for a C# file

다음은 C# 파일에 대한 작성자 및 변경 내용 표시기의 예입니다.

The Authors and Changes indicator for a C# file

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

The Team Activity Timeline indicator for a file that is not a C# or Visual Basic code file

아키텍처, 디자인 및 모델링

코드 맵 및 종속성 그래프

코드의 특정 종속성을 이해하려면 코드 맵을 만들어 시각화합니다. 그런 다음 코드 옆에 표시되는 맵을 사용하여 이러한 관계를 탐색할 수 있습니다. 코드 맵은 코드를 작업하거나 디버그하는 동안 코드에서 위치를 추적하는 데 도움이 되므로 코드 디자인에 대해 자세히 알아보는 동안 코드를 더 적게 읽습니다.

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

New groupings in code maps

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

Select multiple groups and apply one layout in a Code Map

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

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

전반적으로 코드 맵에 대한 포괄적인 개선 사항 목록에는 다음이 포함됩니다.

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

이 릴리스의 다른 디자인 및 모델링 변경 내용:

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

XAML 언어 서비스

IntelliSense를 포함하는 빠르고 안정적이며 최신 XAML 편집 환경을 제공할 수 있도록 .NET 컴파일러 플랫폼("Roslyn")을 기반으로 XAML 언어 서비스를 다시 빌드했습니다.

이렇게 하면 XAML 제작 환경이 Visual Studio의 다른 일류 언어와 동일합니다. 또한 훨씬 더 빠른 주기로 언어 간 리팩터링과 관련된 강력한 기능 집합을 제공합니다.

기타

Visual Studio 2015용 에이전트에는 더 이상 테스트 컨트롤러가 필요하지 않습니다.

Visual Studio 2015용 에이전트에서는 에이전트가 TFS 2015 또는 Visual Studio Online과 통신하여 오케스트레이션을 처리할 수 있으므로 별도의 테스트 컨트롤러가 필요하지 않습니다.

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

그러나 TFS 2013을 사용하기 위해 테스트 에이전트 또는 테스트 컨트롤러가 필요한 경우 Visual Studio 2013 업데이트 5용 에이전트를 사용하고 테스트 컨트롤러를 구성하는 것이 좋습니다.

테스트 컨트롤러는 TFS 2015 및 TFS 2013과 호환됩니다. 그러나 Visual Studio 2015의 부하 테스트 지원은 에이전트의 일부가 아니므로 Visual Studio 2013 업데이트 5용 에이전트를 설치하고 컨트롤러를 구성하는 것이 좋습니다.

연결된 서비스

Visual Studio 2015의 새 커넥트 서비스 추가 대화 상자를 사용하면 애플리케이션을 Azure 애플리케이션 Insights, Azure Storage, Azure Mobile Services, Office 365 및 Salesforce에 쉽게 연결할 수 있습니다. 커넥트 서비스를 추가하려면 참조 노드를 마우스 오른쪽 단추로 클릭한 다음 커넥트 서비스 추가...를 선택합니다.

Add a Connected Service

커넥트 서비스 추가 대화 상자에는 현재 설치된 모든 커넥트 서비스 공급자가 포함되어 있으며 공급자, 사용하는 기술 및 현재 프로젝트에서 지원되는 경우 해당 공급자에 대한 자세한 정보를 얻을 수 있는 방법을 제공합니다. 다른 공급자는 더 많은 서비스 찾기... 링크를 사용하여 확장 및 업데이트 갤러리에서 검색할 수 있습니다. 커넥트 서비스 추가 대화 상자도 확장할 수 있습니다. 서비스 개발자인 경우 커넥트 서비스 SDK를 사용하여 검색 가능성을 개선하고 서비스 사용을 촉진할 수 있는 공급자를 빌드할 수 있습니다.

Enterprise Single Sign-On

비즈니스 애플리케이션의 일반 작업은 Azure Active Directory 사용에 대한 Enterprise Single Sign-On을 위해 애플리케이션을 구성하는 것입니다. 이제 애플리케이션을 마우스 오른쪽 단추로 클릭하고 Azure AD 인증 구성을 선택하여 애플리케이션을 구성하는 동안 언제든지 이 작업을 쉽게 수행할 수 있습니다. 그러면 커넥트 서비스 추가 환경과 유사한 마법사가 표시되어 Active Directory에서 작동하도록 애플리케이션을 구성하는 프로세스를 안내합니다. 마법사에서 Active Directory 도메인을 지정하면 애플리케이션이 해당 Active Directory에 등록되고 로그인 프롬프트가 표시되도록 애플리케이션을 구성합니다.

Specify an Active Directory Domain in the wizard

Visual Studio 2015 RC용 IIS 10 Express

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

기타 변경 내용: 버그 수정 및 알려진 문제

이 릴리스에서 기술 향상, 버그 수정 및 알려진 문제에 대한 전체 설명을 보려면 다음 KB(기술 자료) 문서를 참조하세요.

.NET용 Azure SDK 2.7

Azure SDK 2.7은 Visual Studio 2015의 최종 릴리스에서 지원되는 첫 번째 Azure SDK입니다. 다음은 Azure 개발 환경을 개선하는 데 도움이 되는 몇 가지 새로운 기능 및 업데이트입니다.

  • Visual Studio 2015의 로그인 개선 사항: Visual Studio 2015용 Azure SDK 2.7에는 역할 기반 액세스 제어, 클라우드 솔루션 공급자, DreamSpark 및 기타 계정 및 구독 유형을 통해 Azure에 액세스하는 계정에 대한 지원이 포함됩니다.
  • Visual Studio 2015용 클라우드 탐색기: Azure SDK 2.7에는 Azure 리소스 검색 및 보기, 속성 검사, Visual Studio 내에서 주요 개발자 및 진단 작업을 수행하기 위한 뛰어난 성능의 확장성 있는 도구를 제공하는 Visual Studio 2015용 클라우드 탐색기가 포함되어 있습니다.
  • Visual Studio 2015의 Virtual Machines에 대한 원격 디버깅: Azure Resource Manager 스택을 사용하여 만든 Virtual Machines에서 실행되는 원격 디버그 프로세스입니다.
  • Azure Resource Manager 도구: 새 Visual Studio Online 빌드 작업을 더 쉽게 사용할 수 있도록 Azure Resource Manager 도구를 업데이트했습니다. 또한 RBAC(역할 기반 액세스 제어) 및 새 구독 유형을 사용하기 위한 향상된 기능도 추가되었습니다.
  • Azure 앱 Service Tools: App Service Tools는 이제 Visual Studio 2015에서도 사용할 수 있습니다. 이 업데이트는 Web Apps에 대한 원격 프로파일링 지원, API Apps용 Swagger 생성 개선 및 여러 계정 로그인 지원을 제공합니다. App Service 도구는 이제 모든 기능에 Azure 리소스 관리 API를 사용하고 DreamSpark 및 클라우드 서비스 공급자를 지원할 수 있습니다. 또한 이 업데이트에서 Visual Studio 2015 개발자를 위한 Azure API Apps 미리 보기 릴리스에 대한 지원을 추가했습니다.
  • HDInsight 도구: 이 릴리스에서는 Tez에서 실행되는 Hive 작업에 대한 실행 그래프 보기를 추가하고, Hive DML IntelliSense 지원을 확장하고, SCP.Net 대한 NuGet을 추가하고, Storm 템플릿을 업그레이드하고, Pig용 새 템플릿을 추가했습니다.
  • Azure Data Factory 도구: 이제 Azure SDK에 포함된 Azure Data Factory 도구가 있습니다. Azure Data Factory 제작 환경을 간소화하고 온보딩 및 배포 문제를 제거하는 것이 목표입니다. Azure Data Factory 도구의 맞춤형 환경과 풍부한 도구는 신규 및 고급 사용자 모두의 생산성과 효율성을 향상시킵니다. 이 릴리스를 통해 고객은 Visual Studio 인터페이스를 사용하여 데이터 파이프라인을 대화형으로 작성하고 배포할 수 있습니다. 이러한 도구에 대한 자세한 내용은 Azure Data Factory 블로그 게시물을 참조하세요.

Windows 10 SDK

이 도구 릴리스는 유니버설 Windows 플랫폼을 실행하는 모든 Windows 디바이스에서 앱을 빌드, 디버그 및 제출하는 필요한 모든 기능을 제공하도록 Visual Studio 2015를 업데이트합니다. 주요 기능은 다음과 같습니다.

  • 선택하는 언어(C#, VB, C++ 또는 JS)로 유니버설 Windows 앱을 만들고 Windows 10 디바이스에 배포
  • XAML 앱 및 네트워크 프로파일러용 UI 디버깅 도구를 비롯한 새로운 디버깅 및 진단 도구.
  • 통합 저장소에 제출할 앱 패키지를 만듭니다.
  • 이제 Windows 10 Mobile Emulator는 PC의 GPU(그래픽 하드웨어)를 활용하여 화면을 더 빠르게 렌더링합니다. Microsoft RemoteFx를 사용하여 더 빠르고 응답성이 뛰어난 디버깅 환경을 제공합니다.
  • 이제 Windows 10 Mobile Emulator에서 NFC 시뮬레이션 기능을 사용하여 NFC/근접 사용 유니버설 앱을 빌드하고 테스트할 수 있습니다.
  • 디바이스에 맞는 사용자 환경을 만들기 위한 다양한 XAML 디자이너 지원
  • 클라우드에서 .NET 앱의 컴파일을 .NET 네이티브.

Windows 10 개발자 도구 에 대한 자세한 내용은 세계와 앱을 업그레이드할 시간입니다.

Visual Studio용 Python 도구 2.2

Visual Studio 내에서 Python 지원을 완전히 해제합니다.

  • CPython, PyPy, IronPython 등
  • 자세한 IntelliSense
  • 대화형 디버깅
  • Visual Studio 기능과 통합
  • 무료 및 오픈 소스

자세한 내용은 Visual Studio용 Python 도구 참조하세요.

Visual Studio Tools for Unity 2.0

Visual Studio를 강력한 Unity 개발 환경으로 전환합니다.

  • 다중 플랫폼 게임 빌드
  • Visual Studio에서 디버그
  • Visual Studio에서 Unity 스크립트 만들기
  • Visual Studio를 사용하여 생산성 향상 경험

Visual Studio Tools for Unity에 대한 자세한 내용은 Visual Studio를 사용한 게임 개발을 참조 하세요.

Node.js Tools for Visual Studio 1.1(RC)

업데이트된 2021년 10월:

Apache Cordova용 Node.js Visual Studio 도구를 금고 업데이트

Visual Studio를 강력한 Node.js 개발 환경으로 전환합니다.

  • 무료 및 오픈 소스
  • 지능형 코드 완성
  • 고급 디버깅 및 프로파일링
  • 다른 Visual Studio 기능 및 타사 도구와 통합
  • Node.js, io.js, JavaScript, TypeScript, HTML, CSS 및 JSON 지원

Visual Studio용 Node.js 도구에 대해 자세히 알아봅니다.

Visual Studio 2015용 Office 개발자 도구

Office 365 API를 사용한 개발

  • Office 365 API Tools는 Visual Studio 2015의 새로운 커넥트 서비스를 사용하여 개발자가 Office 365 API를 프로젝트에 통합할 수 있는 안내된 환경을 제공합니다.
  • 이제 커넥트 서비스 마법사에서 "Azure AD를 사용하여 Single Sign-On 구성"을 선택하여 Office 365 API Tools가 ASP.NET MVC 웹 애플리케이션에서 Single Sign-On을 자동으로 구성할 수 있습니다.
  • Office 365 API를 프로젝트에 통합하면 이제 Office 365 API Tools가 NuGet.org 최신 버전의 Office 365 API 클라이언트 라이브러리 NuGet 패키지를 다운로드하여 설치합니다.

SharePoint 추가 기능 개발

  • SharePoint 추가 기능을 만들 때 도구는 대상 SharePoint 버전을 프로젝트 만들기 마법사에서 지정한 디버깅 SharePoint 웹 사이트의 버전으로 설정합니다. 마법사는 선택한 SharePoint 버전을 표시하며 해당 기본값을 재정의할 수 있습니다. 프로젝트 디자이너의 SharePoint 탭을 사용하여 프로젝트를 만든 후 대상 버전을 변경할 수 있습니다.
  • 이제 도구는 대상 버전이 SharePoint Online인 경우 SPO-CSOM(SharePoint Online 클라이언트 쪽 개체 모델)이 포함된 NuGet 패키지를 프로젝트에 설치합니다. 이 도구는 SharePoint Online CSOM 어셈블리에 대한 참조를 프로젝트에 추가합니다. 이 도구는 더 이상 Microsoft 다운로드 센터에서 릴리스된 SharePoint Online 클라이언트 구성 요소 SDK를 사용하지 않습니다. 이렇게 하면 나중에 Visual Studio에서 NuGet 패키지 관리자 사용하여 CSOM 어셈블리를 더 쉽게 업그레이드할 수 있습니다.
  • 이제 Microsoft Azure Service Bus용 SAS 또는 ACS 연결 문자열 사용하여 SharePoint 추가 기능에서 원격 이벤트 수신기를 디버그하고 문제를 해결할 수 있습니다.

Office 추가 기능 개발

  • 이 릴리스에서는 앱이 Office 웹앱 및 Office 2013 클라이언트의 새 기능을 지원할 수 있도록 항상 v1.0 대신 v1.1 매니페스트를 사용하여 Office용 새 앱을 만듭니다. v1.0 매니페스트를 사용하는 Office용 기존 앱의 경우 v1.1 매니페스트가 필요한 새 기능이 사용되는 경우 도구는 매니페스트를 v1.1로 업그레이드합니다.

Visual Studio용 Office 개발자 도구에 대해 자세히 알아봅니다.

Visual Studio 2015용 GitHub 확장

Visual Studio에서 GitHub 리포지토리에 연결하는 가장 쉬운 방법입니다.

  • 쉽게 설치할 수 있습니다.
  • Visual Studio에서 GitHub로 커넥트
  • 리포지토리 만들기
  • 한 번의 클릭으로 리포지토리 복제
  • GitHub에 로컬 작업 게시

Visual Studio용 GitHub 확장에 대해 자세히 알아봅니다.

클라우드 기반 부하 테스트

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

부하 테스트를 실행하는 데 필요한 인프라 설정이 더 쉬워졌습니다. 이제 전 세계에서 지원되는 Azure 데이터 센터에서 클라우드 기반 부하 테스트를 수행할 수 있습니다.

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

이 릴리스에서는 클라우드 기반 부하 테스트에 대한 테스트 에이전트 진단 수행하는 기능을 추가했습니다.

머신에 액세스할 수 없기 때문에 클라우드에서 디버깅이 어렵기 때문에 테스트 에이전트에서 로그 또는 기타 정보를 수집하는 것이 항상 가능한 것은 아닙니다. 그럼에도 불구하고 고급 에이전트 진단 사용하여 테스트 에이전트에서 로그를 수집하고 클라우드 부하 테스트 결과에 연결하도록 할 수 있습니다.