Visual Studio 2015 RTM
2015 年 7 月 20 日
今天,我们非常高兴地宣布发行 Visual Studio 2015 RTM。 此 Visual Studio 的交付厂商版 (RTM) 包括很多新功能和更新,如相关工具可用于通用 Windows 应用开发以及 iOS、Android 和 Windows(包括 Xamarin、Apache Cordova、Unity 等)的跨平台移动开发。
现在,您可以看到 Visual Studio 2015 中实际新增的功能了;请观看 Channel 9 上的相关视频了解详细信息。
若要了解有关 TFS 最新版本的详细信息,请参阅 Team Foundation Server 2015 RC 2 发行说明。
Visual Studio 2015 RTM 中的内容
Visual Studio:
- 适用于跨平台开发的 Visual Studio C++
- Visual Studio Tools for Apache Cordova
- Visual Studio Emulator for Android
- 适用于通用 Windows 应用开发的 Visual Studio 工具
- Visual C++
- C# 和 Visual Basic
- F#
- .NET Framework 4.6
- 实体框架
- Visual Studio IDE
- Blend
- 调试与诊断
- ASP.NET
- Azure
- NuGet
- JavaScript
- TypeScript
- IntelliTest
- Application Insights 全方位了解您的应用程序
- 版本管理
- 单一登录
- Git 版本控制
- CodeLens
- 体系结构、设计和建模
- XAML 语言服务
- 其他
其他更改:
相关版本:
- Azure SDK 2.7 for .NET
- 适用于 Visual Studio 2.2 (RTM) 的 Python 工具
- 适用于 Unity 2.0 (RTM) 的 Visual Studio 工具
- 适用于 Visual Studio 1.1 (RC) 的 Node.js 工具
- 适用于 Visual Studio 2015 的 Office 开发人员工具
- 适用于 Visual Studio 2015 (RTM) 的 GitHub 扩展
- 基于云的负载测试
适用于跨平台移动开发的 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 支持目前正在构建中,因此,请密切关注这里(并确保将反馈发送给我们,以下是各种反馈途径:对于 Bug,请使用 连接;对于建议,请使用 UserVoice;对于一闪念的灵感,请使用 Visual Studio IDE 中的 发送微笑)。
我们还添加或更新了以下内容:
- 对 Android API Level 21 (Lollipop) 的支持。
- 一个基于使文件支持 Android 的新模板,其允许使用外部生成系统(包括 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 的跨平台应用。
现在 Visual Studio 2015 RC 可提供以前 CTP 中所提供的所有功能,包括以下改进:
- 更新了 Ripple 的保存功能 – 无需重新生成!
- 将应用的 iOS 版本部署到 iOS 模拟器或连接到 Mac 的设备时,可从 Visual Studio 对其进行调试
- 提高了安全性并简化了所含远程 iOS 生成代理的配置
- 改进了插件管理体验,包括支持将自定义插件从 Git 或文件系统添加到您的项目
- 从改进的 config.xml 设计器选择特定于平台的配置选项
- 支持 Apache Cordova 4.0.0。
我们听取了您的反馈并扩大了您可以调试的设备数量,如下所示:
- 使用 jsHybugger 调试 Android 4.4、Android 4.3 和更低版本
- iOS 6、7 和 8
- Windows Store 8.1
之后,我们还进一步扩大了支持调试的范围。 您现在可以调试面向 Windows Phone 8.1 的 Apache Cordova 应用。
您可以在 Windows Phone 8.1 模拟器或附加设备上设置断点、检查变量、使用控制台并执行其他调试任务。
在 RC 中,我们已添加: CLI 互操作性。 Visual Studio 中的 Cordova 项目现在可以与您在磁盘上对项目文件夹所做的更改保持同步。 无论您使用的是第三方工具还是其他操作系统,更改都可以流入和流出 Visual Studio。(Cordova 项目的默认文件结构基于 Apache Cordova 命令行工具预期的结构,这样可以更方便地直接使用 Apache Cordova CLI 或预期使用该文件夹结构的其他工具。)
Visual Studio Emulator for Android
您可以在 Visual Studio(Xamarin 或 C++)的跨平台项目中或者在适用于 Apache Cordova 的 Visual Studio 工具中使用适用于 Android 的 Visual Studio 模拟器。 该模拟器允许您在不同的平台模拟器之间切换,而没有 Hyper-V 冲突。 其支持各种传感器和模拟,包括 GPS/位置、加速计、屏幕旋转、缩放、SD 卡、相机、多点触控以及网络访问。 它还支持 Android 版本 4.4 (KitKat, API Level 19) 和 5.0 (Lollipop, API Level 21)。
适用于 Android 的 Visual Studio 仿真器支持 WiFi 模拟以及能够从几个不同的设备硬件配置中进行选择。
现在, 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。 仿真器管理器的快捷键显示在“开始”菜单中,这样您可以从任何开发工具链中启动并使用它。
了解有关 适用于 Android 的 Visual Studio 仿真器的详细信息。
适用于通用 Windows 应用开发的 Visual Studio 工具
适用于通用 Windows 应用开发的 Visual Studio 工具与 Visual Studio 安装程序进行了集成。 通过这些工具,您可以创建在所有 Windows 10 设备上运行的 Windows 应用,这些设备包括您口袋里的手机、您包中的平板电脑或笔记本电脑、IoT 设备,以及不久之后就可在家中安装的 Xbox 控制台和 Surface Hub 等。 此外,您还可以使用这些工具生成利用 Windows 10 API 的 Windows 桌面应用程序。 了解有关 适用于通用 Windows 应用的 Visual Studio 工具 中新增功能的详细信息。
有关 Windows 应用开发的详细信息,请参阅 通用 Windows 应用的指南和 Windows 开发人员中心。 有关最新的 Windows 版本和 SDK 的更多信息,请参阅 Windows Insider 门户。
Visual C++
在该版本中,更新了 C++ 编译器和标准库,使其对 C++11 的支持得到增强并开始支持某些 C++14 功能。 还包括初步支持 C++17 标准版中预期的某些功能。
此外,已修复 500 多个编译器 Bug,包括客户通过 Microsoft Connect 提交的很多 Bug。非常感谢!
语言功能
我们增加了以下新功能,以使编译器更靠近标准 C++:
- 可恢复函数 (resume/await) 关键字 resume 和 await 为异步编程提供语言级的支持,并启用可恢复函数。 目前,此功能仅适用于 x64 目标。 对于 C++17 的建议 [N3858]
- 泛型(多态)Lambda 表达式 现在 Lambda 函数参数类型可指定使用 auto;在此上下文中编译器将 auto 解释为此闭包的函数调用运算符是成员函数模板,在 Lambda 表达式中对 auto 的每次使用都对应着截然不同的模板类型参数。 C++14
- 通用的 Lambda 捕获表达式也称为初始化捕获。 现在,任意表达式的结果可分配给 Lambda 捕获子句中的变量。 这将使 move-only 类型被值捕获,并使 Lambda 表达式在其闭包对象中定义任意数据成员。 C++14
- 现在支持 二进制文本。 这些文本将以 0B 或 0b 作为前缀,且仅由数字 0 和 1 组成。 C++14
- 返回类型推断现在,可推断普通函数的返回类型,包括带有多条返回语句的函数以及递归函数。 这些函数定义前面可以添加 auto 关键字,和带有结尾返回类型的函数定义一样,只是省略了结尾返回类型。 C++14
- decltype(auto) 使用 auto 关键字初始化表达式的类型推断将从表达式中去除 ref 限定符和顶层 cv 限定符。 decltype(auto) 将保留 ref 和 cv 限定符,且现在可在可以使用 auto 的任意位置使用,除非引入推断或结尾返回类型的函数。 C++14
- 隐式生成 Move 特殊成员函数 现在,当条件允许时,将隐式生成 Move 构造函数和 Move 赋值运算符,从而使编译器与 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
- 线程安全“神奇”静态 现在可用线程安全的方式来初始化静态局部变量,而不必进行手动同步。 只有初始化是线程安全的,多线程使用静态局部变量仍必须手动同步。 通过使用 /Zc:threadSafeInit- 标记来避免依赖于 CRT,可以禁用线程安全静态功能。 C++11
- 线程本地存储 使用 thread_local 关键字声明应为每个线程创建独立对象。 C++11
- 现在,可以使用 noexcept 运算符来检查表达式是否可能引发异常。 现在,可以使用 noexcept 说明符来指定函数未引发异常。 C++11
- 内联命名空间 现在可以将命名空间指定为内联式,以将其内容提升至封闭命名空间。 内联命名空间可用于创建带有版本的库,这些库默认提供其最新版本,同时仍显式提供 API 的较低版本。 C++11
- 无限制联合 现在联合类型可包含使用重要构造函数的类型。 必须定义这些联合的构造函数。 C++11
- 新字符类型和 Unicode 文本 现在支持 UTF-8、UTF-16 和 UTF-32 格式的字符和字符串文本,并引入了新的字符类型 char16_t 和 char32_t。 字符文本可使用 u8 (UTF-8)、u (UTF-16) 或 U (UTF-32) 作为前缀(如 U'a'),而字符串文本还可使用原始字符串等效项 u8R (UTF-8 raw-string)、uR (UTF-16 raw-string) 或 UR (UTF-32 raw-string) 作为前缀。 通用字符名可在 Unicode 文本(如 u'\u00EF'、u8"\u00EF is i" 和 u"\U000000ef is I")中自由使用。 C++11
- __func__ 预定义的标识符 __func__ 显式定义为包含封闭函数的非限定和无修饰名称的字符串。 C++11
- __restrict 现在 __restrict 可应用于引用。
- 类型名称关键字。 用户现在可以在模板参数中编写
typename
而不是class
。 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
- 非静态数据成员初始值 现在,可与初始值列表共同使用。 C++11
- 属性 现在,您可以将函数指定为 [[noreturn]],以告知编译器该函数未返回(虽然它会引发异常)。 各种构造现在也可以指定为 [[deprecated]]。 现在,属性可允许在命名空间和枚举器中使用。 C++11、C++14 和 C++17
- 用户定义文本 (UDL) 数值和字符串文本现在可包含有意义的后缀,从而在文本数据上执行自定义计算。 C++11
- 数据依赖关系排序 属性 您现在可以将函数参数、lambda 参数或函数声明指定为 [[carries_dependency]],以提高对经常读取但很少修改的并行数据结构的优化。 C++11
- 自动使用括号初始化列表的新规则 现在,复制列表初始化的自动减少会减少 std::initializer_list 或格式错误。 C++17
Visual C++ 库功能
- 适用于标准库类型的用户定义文本 (UDL) 为了方便起见,现在 <chrono>、<string> 和 <complex> 标头提供 UDL 运算符。 例如,123ms 表示 std::chrono::milliseconds(123),"hello"s 表示 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() 实用工具函数,将新值分配到对象并返回其旧值。 对于复杂类型,如果 Move 构造函数可用,则 exchange() 不必复制旧值,如果 Move 构造函数为临时或已移动,则 exchange() 不必复制新值,且将利用转换赋值运算符接受任何类型作为新值。 C++14
- 双范围 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_t<I, T> 类型别名,这一别名是 tuple_element<I, T>::type 类型名称的别名。 这为模板程序员提供了一些便利,类似于 <type_traits> 中的其他元函数类型别名。 C++14
- 文件系统“V3”技术规范 所包含的文件系统技术规范的实施已更新至最终版本。
- 最小的分配器现在标准库在整个库中支持最小分配器接口;重要修复包括 std::function、shared_ptr、allocate_shared() 和 basic_string。 C++11
- <chrono> 已修复 chrono 类型 high_resolution_clock 和 steady_clock。 C++11
- constexpr 已在整个 C++ 标准库中实施。 C++11、C++14 和 C++17
- quick_exit() 现在,通过调用 quick_exit() 并在 at_quick_exit() 中运行清理代码,可以更彻底地终止多线程进程。 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
- 在 C++11/14 中弃用以及在 C++17 中移除 auto_ptr、 random_shuffle() 和 old <functional>。 默认情况下,Visual Studio 2015 提供它们,但是将 _HAS_AUTO_PTR_ETC 定义为 0 的项目范围将移除它们的定义。
- 现在, unique_ptr 分配受到精确限制。 C++17
- 现在, bool_constant 支持作为 integral_constant<bool> 的别名。 C++17
Visual C++ 更快速的生成
- 增量链接时间代码生成 (LTCG) 现在增量链接可与 LTCG 结合,减少使用 LTCG 应用程序的链接时间。 可通过使用 /LTCG:incremental 和 /LTCG:incremental_rebuild 链接程序开关来激活此功能。
- 适用于静态库的增量链接 现在其他代码模块引用的静态库的更改将以增量方式链接。
- 通过使用新的 PDB 创建技术,/Debug:FastLink 大大减少了链接时间。
- 对链接程序所做的算法改进减少了链接时间。
- 已取得的改进能更快地生成模板代码。
- 快速按配置优化 (PGO) 检测 在 PGO 中引入了针对游戏和实时系统的新型、轻量型检测模式。 现在通过 /GENPROFILE 和 /FASTGETPROFILE 链接程序开关所提供的其他新功能,您可以在使用 PGO 时,在代码质量和生成速度之间取得平衡。
- 对象文件变小 编译器和 C++ 标准库增强功能使对象文件和静态库显著变小。 这些增强功能不会影响动态链接库 (DLL) 或可执行文件 (EXE) 的大小,因为一直以来冗余代码都由链接程序删除。
Visual C++ 性能和代码质量
- 自动矢量化改进之处。 现在,我们改进了控制流矢量化 (if-then-else)、在 /O1(最小大小)下编译时的矢量化以及整个矢量代码质量,包括对 Parallel STL 的支持,矢量化更多基于范围的 for 循环,以及对 #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 可读性改进之处:简化了参数帮助和快速信息中的复杂模板实例化和 typedef 以提高它们的可读性。
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 图形诊断现在完全支持在 Phone 模拟器中或在已接入的 Phone 上调试 Windows 应用。
- 图形帧分析 此工具将在捕获的帧上收集性能测量。此外,还将执行一组预定义实验,用于深入分析应用各种纹理技术时性能所受的影响。 帧分析还会从硬件收集性能计数器。
- 图形分析的专用 UI 新的 Visual Studio 图形分析器窗口是分析图形帧的专用工作区。
- 着色器编辑和应用 在捕获的日志中查看着色器代码更改的影响,而无需重新运行应用。
- 在“工具”->“选项”->“图形诊断”中配置 捕获选项。
- 命令行工具 用于捕获和回放帧。
- 图形诊断对 DirectX 12 的支持。 Visual Studio 图形诊断工具现在支持在 DirectX 12 应用程序中调试呈现问题。
新的 GPU 使用情况工具
Visual Studio 2015 中的 GPU 使用情况工具可用于了解 DirectX 应用程序的 GPU 使用情况。 在应用程序实时运行时提供帧时间、帧速率和 GPU 利用率图形。 此外,通过收集和分析详细的 GPU 使用情况数据,此工具还可以深入分析单个 DirectX 事件的 CPU 和 GPU 执行时间,因此可用于确定是 CPU 还是 GPU 是性能瓶颈。
启用 Visual C++ 托管测试项目的调试
RTM 中的新增功能:若要启用 Visual C++ 托管测试项目的调试,请转到“工具 | 选项 | 调试 | 常规”窗格,然后选中“模块加载(仅限托管)上的取消 JIT 优化”选项。
C# 和 Visual Basic
语言功能
在此版本中,新增的数个 C# 和 Visual Basic 语言功能有助于减少日常代码的样板和混乱,建议编程使用更具声明性的样式,并使两种语言联系更紧密。 例如,对类型和成员声明以及 Null 检查的语法做了改进。 同样,可以在表达式内声明局部变量,并且 await 可用于 catch 和 finally 块。 在较低版本中,以上大部分功能仅以两种语言中的一种来实现,但在最终版本中将提供两种语言。
- Nameof 提供一种安全重构的方法来获取诸如参数、成员或字符串类型的名称。
- 在访问和调用成员或索引器时,您可以使用 Null 条件运算符获取内置 Null 检查。
- 字符串插值: 字符串插值提供一种描述字符串模板的简洁方法,该模板将表达式插入格式字符串(C# 仅适用于预览版,VB 和 C# 均适用于 RTM)。
- 现在, 方法、 仅定义了 getter 的属性等可像其主体一样拥有单个表达式,就像 Lambdas 一样。
- 自动属性 可拥有初始值设定项,不再需要使用 setter。
- 索引初始值设定项:现在,您可以在对象初始值设定项中初始化新对象的特定索引。 仅适用于 C#。
- 异常筛选器 可用于查看异常,并确定是否使用给定的 catch 块捕获它。
- 使用 静态类的子句可将其静态成员直接加入作用域,以便您可以调用不带类名前缀的 WriteLine() 或 Sqrt() 等。
- 现在 Await 可在 catch 和 finally 块中工作,避免了一些非常棘手的解决方法。
代码编辑器 UI 和编辑
适用于 C# 和 Visual Basic 的代码编辑器 UI 和编辑体验已经替换为在 .NET 编译器平台 ("Roslyn") 上生成的新体验。 如今您所喜爱的许多功能都得到了改进或修改。
- 灯泡图标是您在 Visual Studio Editor 中所采取的全部快捷操作的新主目录,包括对常见代码问题和重构代码的修复。 当代码有问题时,灯泡图标将显示针对这些问题的建议修补程序。 所有重构操作都已移到灯泡图标中,您可以随时键入 Ctrl + <dot> 进行访问。
-
有两种新的核心重构操作: 内联临时变量和 引入局部变量。 新的 引入局部变量功能的示例如下:
内联临时变量的示例如下:
- 首次增加了对 Visual Basic 的重构支持,且这一支持也已移到灯泡图标中。
-
同时还改进了重命名;现在它将突出显示要重命名的所有标识符实例,使您直接在编辑器中一次键入所有实例的新名称。
-
您可在键入时,获取实时代码分析和自动修补程序,以及您的目标 Microsoft 平台和 NuGet 程序包的特定代码感知指导。 在预览版中,您需要通过从 NuGet 库获取的 NuGet 程序包来添加实时 FxCop 分析器,正如您获取任何其他程序包一样。 在您引入任何给定实时规则时,它将取代等效的生成后 FxCop 规则,这样您就无需重复点击。
Azure 代码分析程序包的示例如下:
- 已经重写了适用于 C# 和 Visual Basic 的表达式计算器。 改进包括在“监视”和“即时”窗口中支持 LINQ 和 Lambda 表达式。
F#
语言和运行时功能
F# 4.0 包含大量语言和运行时新增功能,这些功能弥补了不足,使工作一步到位,并改进了关键领域的性能。 同时,我们还对编译器和运行时进行了大量的 Bug 修复以及细微的性能优化。
- 作为一类函数的构造函数 - 类名现在可用作一类函数值,表示该类的构造函数。
- “mutable”和“ref”一体化 -“mutable”语法现在可随处使用,捕获值将根据需要由编译器自动转换为基于堆的“ref”值。 添加了一个新的可选警告,以防开发人员希望在此情况发生时获得通知。
- 提供方法的静态参数 - 类型提供程序提供的单个方法现在可以指定静态参数。
- 不可为 Null 的提供类型 - 现在可以通过 [<AllowNullLiteral(false)>] 将提供类型指定为不可为 Null。
- 方法参数的隐式引用 - Expr<'t> 类型的方法参数现在可以通过透明方式自动引用,从而同时传递该参数值和生成其的表达式的 AST。
- 扩展的预处理器语法 - 布尔运算符 ||&& 和 ! 现在可以在 #if 预处理器指令中与 ( ) 分组一起使用。
- 度量单位中的有理指数 - 度量单位现在支持有理指数,该指数有时用于诸如电气工程的物理科学中。
- 简化了度量值单位与“printf”样式函数的结合使用 - 组合数值现在可与数字型 printf 格式说明符无缝结合使用而无需移除单位。
- 支持高维 .NET 数组 - F# 代码现在可以使用等级为 5 或更高的 .NET 数组。
- 对象初始值设定项中的扩展属性 - 对象初始值设定项表达式中现在可以分配可设置的扩展属性。
- 从多个泛型接口实例化进行继承 - 现在允许 F# 编写的类从实施多个泛型接口实例化的类进行继承。
- “StructuredFormatDisplayAttribute”中的多个属性- %A 个通过 [<StructuredFormatDisplay>] 指定的格式现在可以包含多个属性。
- 前导“Microsoft”命名空间可选 - 从 FSharp.Core 使用或打开模块和命名空间时,前导“Microsoft.”现在为可选项。
F# 运行时
- 规范化 Array、List 以及 Seq 模块 - Array、List 以及 Seq 模块间的集合处理函数集现在保持一致(不包括不适用于特定类型的 API),针对每个类型进行了专门的优化实现。
- 优化了结构哈希 - 进行了显著优化,以改进基元类型的通用哈希比较的性能,从而提高 API(如“distinct”和“groupBy”)的性能。
- 优化了非结构化比较运算符 - FSharp.Core.Operators.NonStructuralComparison 模块现在可以打开,将默认 F# 结构化比较运算符替换为更高效的非结构化运算符。 使用自定义运算符实现处理类型(尤其是值类型)时,这可以显著提高性能。
- 在 F# 列表上对语法切片 - F# 列表现在支持切片语法以获取子列表。
- System.Net.WebClient' 的异步扩展 - WebClient 扩展 AsyncDownloadFile 和 AsyncDownloadData 现已可用。
- 更好的异步堆栈跟踪 - F# 异步计算中出现的异常现在引入了更为用户友好的堆栈跟踪,从而可以更方便地诊断问题。
- 适用于 Option 的互操作 API - Option 模块中添加了各种新 API,以方便从 Null 对象和 System.Nullable 值转换以及转换为 Null 对象和 System.Nullable 值。
- 针对 System.Decimal 值的引用活动模式 - 现在内置了一个活动模式以匹配引用中的常量文本 System.Decimal 值。
F# IDE 功能
Visual F# 工具中新增了体验和功能,并修复了许多 Bug。
- 脚本调试 - F# 脚本现在可以直接在 Visual Studio 调试器中进行调试。
- 项目模板中的程序集元数据 - 所有 F# 项目模板现在均包含文件 AssemblyInfo.fs,其中包含常用的程序集级元数据属性。
- 集成的最新检查 - 现在,当 F# 项目在 Visual Studio 生成时可以正确报告其“最新”状态。
- 对象初始值设定项中的 IntelliSense 完成 - 对象初始值设定项表达式现在支持使用 Ctrl+空格键实现可设置属性的 IntelliSense 完成。
- 命名参数的 IntelliSense 完成 - 方法和构造函数调用现在支持使用 Ctrl+空格键实现命名参数的 IntelliSense 自动完成。
- 关于文件夹支持的 Bug 修复 - Visual F# 工具不直接支持项目中的文件夹,但许多项目系统 Bug 得到了修复,从而改进了由 Visual F# Power Tools 扩展添加的文件夹支持。
了解有关 F# 的详细信息。
.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 社区技术预览版 2 (CTP2) 中现在支持“始终加密”功能。
- Windows Presentation Foundation (WPF) 对触摸提供了更好的支持并改进了 HDPI 布局。
- 除了支持 SSL 3.0 和 TLS 1.0 以外,现在 Windows Communication Foundation (WCF) 还支持 SSL 版本 TLS 1.1 和 TLS 1.2。
- .NET Framework 基类库包括对垃圾回收、基于任务的异步模式和加密技术的改进。 另外,它还添加了 SIMD 启用的矢量类型,以及对兼容开关的支持,可允许开发人员为新版库支持的功能提供统一的选择退出机制。
有关 .NET Framework 新增功能的其他详细信息及完整列表,请参阅 .NET Framework 中的新增功能。
实体框架
此版本包括 Entity Framework 7 的预览版以及主要包括 Bug 修复和社区贡献的 Entity Framework 6 的更新。
Entity Framework 7
Entity Framework 的新版本启用了新的平台和新的数据存储。 现在 Windows Phone、Windows 应用商店、ASP.NET 5 和传统的桌面应用程序都可以使用 Entity Framework。 Framework 的这一版本支持关系数据库以及非关系数据存储,如 Azure 表存储和 Redis。 这一版本包括安装在新 ASP.NET 5 项目中的 EF 7 运行时的早期预览版。 有关 EF7 的详细信息,请参阅 EF7 究竟是什么。
Entity Framework 6.x
此版本包括运行时和工具的 EF6.1.3 版本。 EF6.1.3 包括 Bug 修复和社区贡献;您可以在我们的 Entity Framework CodePlex网站上的 EF6.1.3 中查看所包含的变化内容的列表。
在此版本的许多地方都包含 Entity Framework 6.1.1 运行时。
- 如果您在尚未安装 EF 运行时的项目中使用 Entity Framework Tools 创建新模型,则将安装运行时。
- 新 ASP.NET 项目中将预装运行时,具体取决于您选择的项目模板。
了解有关 实体框架的更多内容。
Visual Studio IDE
共享的帐户
通过 RTM 中的新增功能,您可以与其他应用(Blend for Visual Studio 或 Microsoft 测试管理器)共享您在 Visual Studio 中添加的用户帐户,反之亦然。
共享的项目
在此版本中,新模板可用于创建适用于 Visual Basic、C# 和 JavaScript 的空共享项目。 现在以下几个项目类型可引用这些共享项目:
- 任何去风格化的 VB/C# 项目(如 console 应用、类库和 Windows 窗体应用)
- Windows Store 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 客户将能够编辑存储在使用情况上下文中的外部资源字典中的“模板和样式”。 此体验进一步优化了对 Peek 的使用,以便在 XAML 设计器中启用真正的原位资源编辑。
自定义窗口布局
通过单击“窗口”菜单中的“保存窗口布局”来保存自定义窗口布局,同时可通过单击 窗口菜单中的 应用窗口布局来应用自定义布局。 您还可以通过使用预分配的键盘快捷方式来应用布局。 前 9 个布局还拥有从 Ctrl+Alt+1 到 Ctrl+Alt+9 的键盘快捷方式。 您可以执行的其他任务包括通过从“窗口”菜单单击“管理窗口布局”来删除、重命名和重新排列布局。
高分辨率图标
Visual Studio 在命令栏、工具窗口工具栏(标准)、主菜单、错误列表、状态栏以及当您的设备以大于 100% DPI 缩放运行时的一些“解决方案资源管理器”项目类型中支持高分辨率图标。
UI 改进
- 现在菜单以首字母大写样式而不是全大写样式显示。
- 在关闭并重新打开属性页时,Visual C++ 属性页对话框的配置和平台下拉框的值已更改为记住用户的上次选择。
Visual Studio 反馈
发送哭脸体验已得到了改进,可以使用更好的工具报告缓慢、挂起和崩溃等问题。 现在您还可以通过附加文件或标记反馈来更好地描述问题。 此外,已更新了 反馈图标和菜单项,以提高可发现性。
Visual Studio 扩展性
- 您现在可在 Visual Studio 扩展中使用高分辨率图标。
- 本版本中不再支持加载项。 删除了 Visual Studio 加载项项目模板和加载项管理器。 我们建议您将插件转换成 VSPackage 扩展。 有关详细信息,请参阅 常见问题:将外接程序转换为 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
我们重新设计了 Visual Studio 2015 以向您提供改进后的用户界面开发体验,从而创建美观的 XAML 应用。 Blend 含有美观新颖的外观,与 Visual Studio 一致,支持解决方案和团队资源管理器,同时丰富了文件重新加载体验,从而促进了 Blend 和 Visual Studio 之间更好的工作流。 我们还提供了 Blend 最受需要的功能,以帮助您提高工作效率:
- 使用 XAML IntelliSense,您现在可以更高效地编写 XAML,因为它可以向您提供语句完成和指向源的导航。
- 您还可以在使用 XAML 查看定义的上下文中查看并编辑 XAML 控制和资源。
- 在运行的应用中查找并修复 UI 问题现在更易于使用 UI 工具进行 XAML 调试,这让您可以检查实时可视树和树中的所有元素的属性。
- 添加了 NuGet 支持以后,您可以在 Blend 中管理 NuGet 包。
- 此外,我们用更加强大的同步布局功能代替了动画工作区功能,因此您可以使用同步布局功能创建很多不同的窗口布局,并在各计算机上漫游它们。
- 对于喜欢使用键盘(而非鼠标)的超级用户,我们使 Blend 设计器窗格完全适用于键盘。
- 最后,作为 Microsoft 致力于创建可广泛使用的软件的一部分,Blend 现在是全屏阅读器并且可以使用高对比度。
若要了解 Blend 新增功能的详细信息,请访问我们的 预览版和 RC 博文。 与往常一样,使用 Blend User Voice 发布您希望我们添加功能的建议。
调试与诊断
在附加情况下的托管编辑和继续
对于 RC,当您附加到 .NET 应用程序以及当环境变量 complus_forceenc
在目标进程中设置为 1 时执行编辑操作并继续。
断点配置
新“断点设置”窗口可用于指定断点条件和操作。 窗口包括改进的 IntelliSense 对断点条件和操作的支持。 您可以使用撤消 (CTRL+Z) 操作来还原删除的断点。
调试器窗口中 Lambda 表达式
现在您可以使用 C# 和 Visual Basic 在“监视”、“即时”和其他调试器窗口使用 Lambda 表达式。
PerfTips
当您使用调试器设置中断点和分步时,可以使用 PerfTips 功能来查看代码需要多长时间能直接在编辑器中执行。
GPU 使用情况
GPU 使用情况工具可用于了解 DirectX 应用程序的 GPU 使用情况。 在应用程序实时运行时提供帧时间、帧速率和 GPU 利用率图形。 此外,通过收集和分析详细的 GPU 使用情况数据,此工具还可以深入分析单个 DirectX 事件的 CPU 和 GPU 执行时间,因此可用于确定是 CPU 还是 GPU 是性能瓶颈。
C++ 调试器改进之处
当 C++ 调试器在断点停止时,它能执行代码以便计算结果,例如在“监视”和“即时”窗口中显示数据。 如果调试器检测到调用的函数发生死锁,则调试器会尝试解决此问题。
现在当 C++ 调试器启动一个进程时,Windows 将使用正常堆而不是调试正常堆来分配内存。 这样会更快地启动调试。 有关详细信息,请参阅 Visual Studio 2015 中的 C++ 调试改进之处。
面向 XAML 的 UI 调试工具
我们新增了两个工具 Live Visual Tree 和 Live Property Explorer,其可用于检查运行中 WPF 应用程序的可视化树以及树中任意元素的属性。 简而言之,这些工具允许您在运行中应用内选择任何元素并显示经过计算和呈现的最终属性。 详细信息如下:
- Live Visual Tree。 现在,您可以在调试会话期间查看运行中应用程序的完整可视化树。 当您在 Visual Studio 中按下 F5 或附加至运行中应用程序后,Live Visual Tree 将可用。 您可以使用 Live Visual Tree 在运行中应用程序内选择元素,以在 Live Property Explorer 中进行检查。 将显示后代计数,如果源代码信息可用,则您可以立即查找到该元素定义的文件和位置。
- Live Property Explorer。 使用该新工具检查运行中应用程序内任意元素上设置的属性,这些属性按设置其的范围分组。 您可以在调试会话期间修改这些属性,并立即在运行中应用程序内看到其更改。
事实证明,在设计时详细了解属性如何相互替代并确定领先行为非常困难。 现在,当您可以考虑各方面因素时,您可以使用面向 XAML 的新 UI 调试工具在运行时执行这些检查。
(对 Windows 应用商店应用的支持将在未来更新中推出。)
异常设置
您可以通过使用“异常设置”工具窗口配置调试器异常设置。 该新窗口是一个非模式窗口,其中包含改进的性能、搜索以及筛选功能。
时间线工具
新增的时间线工具可针对应用程序所用资源提供以场景为中心的视图,您可通过该视图检查、诊断并改进 WPF 和 Windows Store 8.1 应用程序的性能。
该时间线工具位于性能和诊断中心内,可显示应用程序在准备 UI 帧以及服务网络和磁盘请求方面所花的时间,并在诸如应用程序负载和页面负载之类的场景中执行这些操作。
了解有关 Visual Studio 2015 中新的时间线工具的更多详细信息。 (新的时间线工具将替换 XAML UI 响应能力工具。)
诊断工具
我们新增了一个会在您开始调试时(按 F5)出现的诊断工具窗口。 该诊断工具窗口包含以下功能:
- 事件(含有 IntelliTrace)
事件(含有 IntelliTrace)可以让您访问在您的调试会话期间收集的所有 Debugger Break、Output 和 IntelliTrace 事件。 该数据会同时以时间线和表格视图方式显示。 这两个视图是同步的,且可以相互交互。 - 内存使用情况
通过内存使用情况工具,您可以在调试的同时监视应用的内存使用情况。 您还可以获取本机和托管内存的详细快照并进行比较,以分析内存增长和内存泄露的原因。 - CPU 使用情况
通过 CPU 使用情况工具,您可以在调试的同时监视应用的 CPU 使用情况。
(该工具将替换 Visual Studio 2015 预览版中的 CPU 时间 PerfTip。)
在较低版本中,诊断工具窗口支持以下项目类型和调试配置:
- 托管 WPF、WinForms 和控制台项目
- 本机 Win32、控制台和 MFC 项目
- 仅使用 IIS Express 的 ASP.NET 4
- 托管或本机 Windows 应用商店项目在本地运行
(使用 JavaScript 或在电话上运行的 Windows 应用商店项目不受支持)
RC 版本中的诊断工具窗口进行了以下改进:
- 其可移至 Visual Studio 内的任意窗口位置并牢记其在调试会话之间的位置和大小
- 当使用要处理的 Debug -> Attach 附加到某个过程时,它会出现并显示单个过程的数据
- 其会在调试在 IIS 上运行的 ASP.NET 项目时出现
- 其会在调试 ASP.NET 5 项目时出现
- 其会在调试在远程 Windows 桌面设备上运行的应用时出现
- 您可在停止调试后查看内存快照
- 调试本机项目时,调试器事件(仅 Break 事件)可用
在 RC 中,我们还添加了以下新功能:
仅限我的代码。 当您按 F5 启动调试器时,其将仅显示您的代码,以便您可以在无框架和其他代码的干扰下了解性能问题和异常。 由于 IntelliTrace 中的这一新增的代码筛选功能将取消显示系统代码而只显示用户代码,因此您可以更方便地调试“仅我的代码”。
网络诊断工具。 在生成 Windows 应用商店应用以及跨所有 Windows 10 设备(从 Windows Phone 到 Xbox 和 Windows 应用商店)运行的通用应用时,这一新增的网络诊断工具可以帮助您诊断与网络相关的问题。
该网络诊断工具将记录有关应用的 HTTP 网络操作的信息,包括 HTTP 请求和响应标头、请求和响应负载、cookie 以及详细的计时信息等。 该网络诊断工具还将帮助回答有关常见情况的问题,如:
- 与身份验证相关的问题(例如,为什么您无法访问资源)
- 与缓存相关的问题(例如,为什么您没有获得最新版本的资源)
- 运行应用的常见任务时下载了多少字节
- 访问和下载资源时瓶颈在何处
若要访问该网络工具,请在 Visual Studio 2015 中打开诊断工具窗口。 在 调试菜单上,选择 无需调试启动诊断工具。 或者,按 Alt+F2 即可。
现在,通过 RTM 中的新增功能,我们对调试时显示的“诊断工具”窗口进行了改进:
- 现在,来自您的应用的事件显示在单个 IntelliTrace Events 跟踪中,而不是在 IntelliTrace Events 和 Output Events 跟踪中被拆分。 了解有关 使用 IntelliTrace 进行调试的详细信息。
- 现在,来自您的应用的事件在程序运行时显示;现在,您无需按“全部中断”即可查看事件。
- 现在,您可以激活您在代码中设置的 Tracepoints 的历史调试记录,允许您查看源代码和调用堆栈。
- 现在,您可以在“内存使用情况”图形中查看垃圾收集和屏幕快照事件,以便于您可以查看可管理垃圾收集发生的时间以及使用内存使用情况工具进行屏幕快照的时间。
ASP.NET
ASP.NET 4.6
ASP.NET 模型绑定支持 Task 返回方法
ASP.NET 模型绑定方法之前不支持 Task 返回方法,且如果进行配置,会在运行时引发异常。 现在如果使用这类方法部署应用程序,会正确执行这些方法。 此更改仅适用于专门针对 .NET 4.6 或更高版本的应用程序。
在 ASP.NET 应用程序中启用 .NET 编译器平台 (“Roslyn”)
您可以在任何 ASP.NET 4.6 项目中使用 C# 和 VB 的新语言功能。 VS 2015 中的 Web 窗体模板含有预安装的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 Identity 进行社交登录。
ASP.NET MVC 5.2.3、Web Pages 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
对 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 有很多 Bug 修复,并在 2.1 的基础上进行了性能改进。 有关详细信息,请参阅 ASP.NET Identity 2.2.1 博文。
ASP.NET 工具更新
JSON 编辑器改进之处
我们已对 JSON 编辑器做出改进,包括性能改进,如异步加载 JSON 架构、子架构缓存以及更好地支持 IntelliSense。 此外,JSON 编辑器还具有以下新功能:
- JSON 架构验证。 根据在架构下拉列表中定义的架构增加了 JSON 架构验证功能。
- 取消缩小上下文菜单。 您可以右键单击 JSON 编辑器并选择“取消缩小上下文”菜单,以取消缩小 JSON 文件中的任意长数组。
- “重新加载架构”上下文菜单。 Visual Studio 将缓存从 Internet 上下载的架构,并在您重新启动 Visual Studio 后使用该缓存。 如果您知道架构发生了更改,则可以使用上下文菜单“重新加载架构”Ctrl+Shift+J 来在 JSON 活动文档中重新下载当前使用的架构,然后立即在当前文档中使用。
- 适用于 package.json/bower.json 的 Intellisense。 除了证实 IntelliSense 及验证 package.json 和 bower.json 文件之外,Visual Studio 还在 JSON 编辑器中直接提供针对 Bower 和 npm 包的实时 IntelliSense。
- 重复的属性验证。 现在 JSON 编辑器将为任何重复的属性提供验证。 这将有助于使用 JSON 文件编写来捕获常见问题。
- 通过完全支持 JSON 架构草案 v4 的规范,对于 IntelliSense 以及 JSON 文件的验证的支持得到很大改善。 现在,更容易识别所需的属性,并且该编辑器可让您轻松地对属性按字母进行分类。 对设置为缩小的 JSON 文件现在可自动取消缩小。
- 现在支持 SchemaStore.org,这是有用的 JSON 架构文件的开放源集合。 这表示在含有与 SchemaStore.org 有关的架构的 Visual Studio 中打开的所有 JSON 文件将自动获取 IntelliSense 和验证。
- 通过更好的架构完整性验证,对 JSON 架构作者的支持也得到了改进。
HTML 编辑器改进之处
HTML 编辑器已针对 Web 标准更新了 IntelliSense,并新增了以下功能:
- 更好的客户端模板格式。 HTML 编辑器不再解析双花括号语法 {{…}} 或设置其格式。 这是为了确保该语法的内容不会被看作 HTML,进而被视为无效;也确保其不会尝试设置内容格式,此操作通过使用 HTML 格式设置程序无法正确地完成。 这对 Angular、Handlebars、Mustache 和其他双花括号模板语法很重要。
- 支持自定义元素、Polymer 元素和属性。 HTML 编辑器不再验证自定义元素的未知属性,因为不同框架中可能有很多自定义标记。 未知元素下方将不再显示波浪线。
- 适用于 Web 组件的基础 IntelliSense。 HTML 编辑器有适用于 <link rel="import"></link> 的 IntelliSense,这是 Web 组件标准版的一部分。
- HTML 元素工具提示。 为编辑器中的 HTML 元素提供了工具提示。
- #region 支持。 HTML 编辑器现在支持区域折叠。 您也可以使用周围代码段来包围当前所选内容。
- “任务列表”中支持 Todo/Hack 注释。
- Angular 图标。 现在,在 Intellisense 中,Angular 指令(例如, <<ng-view>) 和属性(例如 ng-controller)现在均以带有 Angular 徽标的形式显示,以便识别。
- Bootstrap 图标。 现在,如果类名通过 Bootstrap CSS 文件定义,则 HTML 类属性中提供的 Intellisense 以带有 Bootstrap 徽标的形式显示。
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 文件会导致整个 CSS 文件在浏览器中重新加载。 如果文件无法自动同步,按 Ctrl + S 会启动自动重新加载,使浏览器恢复到正常状态,而无需刷新链接的浏览器 (Ctrl + Alt + Enter)。 可以在工具栏中禁用此功能。
了解有关 ASP.NET 的详细信息。
ASP.NET 5
ASP.NET 5 是一个精简的可组合 .NET 堆栈,可为云服务器和本地服务器生成现代 Web 应用程序。 包括以下功能:
- 新的轻型请求管道
- 在 IIS 中运行,或在您自己的进程中进行自托管
- 基于可在完整 .NET Framework 或 .NET Core(一个支持真正的并行版本控制的新云优化运行时)上运行的新 .NET 执行环境 (DNX) 生成。
- 在 Windows、Mac 和 Linux 上跨平台运行
- 通过 NuGet 可以安装一切内容,甚至是运行时自身
- 支持 ASP.NET MVC 6 - 一个适用于 Web UI 和 Web API 的统一 Web 框架
- 基于环境的配置,可无缝转换到云
- 现成的依赖关系注入
- 新的 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 网站和 Web API 的模板。
- 根据类库和控制台应用程序创建 DNX 的模板
- 通过 NuGet 创建并分发跨平台命令行工具。
- 使用开发人员命令提示符中的 .NET Version Manager (DNVM) 安装和管理不同的 DNX 版本。
- 查找、安装和还原 NuGet 包的集成体验。
- 使用 CTRL +。 查找并安装针对 C# 代码中未解析符号的 NuGet 包。
- 使用 NPM、Grunt/Gulp 和 Bower 进行客户端 Web 开发的集成工具,包括包管理集成和新的 Task Runner Explorer。
- 通过使用“运行”按钮下拉菜单直接从 Visual Studio 中运行项目级 DNX 命令。
- 创建启动 IIS Express 的自定义启动配置文件,包括自定义环境变量设置。
- 从面向多个框架(包括 .NET Core)的单一项目生成 NuGet 包。
- 从单个项目针对多个目标框架进行生成时的组合 IntelliSense。
- ASP.NET 5 中引入的新 Razor 功能(如标记帮助程序)现在在 IntelliSense 和语法突出显示中表现更加出色。
此版本中的新功能
- 当您打开一个要求安装目前不可用的 DNX 版本的项目时,Visual Studio 将提示安装所需的 DNX 版本。
- 您现在可以使用“添加引用”对话框来将引用添加到丢失的程序集。
- ASP.NET 5 Web 应用程序模板现在支持“工作和学校帐户”选项进行身份验证。
- “新建 ASP.NET 项目”对话框中“云”选项中的主机现在可用于 ASP.NET 5 项目。
- 使用服务器资源管理器对 Azure 上托管的 ASP.NET 5 项目的 approot 下的文件进行远程编辑。
有关详细信息,请参阅 GitHub 上的 工具发行说明和我们的 .NET Web 开发和工具博客。
Azure 工具
帐户选择器集成
帐户选择器现在用于整个 Web 发布和 Web 应用创建/选择对话框,以启用对多个帐户的单点访问。 您可以一次登录多个帐户,并进行快速轻松地访问,以选择您发布资源时的单个帐户。
API 应用
API 应用预览模板、发布支持和服务器资源管理器可视性已全部迁移到 Visual Studio 2015。 现在,您可以使用最新版的 Visual Studio 来创建和部署 Azure API 应用。 我们还改进了 Swagger 输出功能,因此 API 应用开发人员可以拥有对从 ASP.NET Web API 中动态生成的 Swagger 的更先进支持。
WebJobs 工具
现在,您可以在 Azure 网站的“服务器资源管理器”WebJob 节点上控制“Web 作业”,方法如下:
- 位于“服务器资源管理器”中“网站”节点下方的 WebJobs 节点。
- 从“服务器资源管理器”启动/停止持续 WebJobs。
- 从“服务器资源管理器”运行按需或计划作业。
- 从“服务器资源管理器”查看 WebJob 仪表板。
- 使用“查看仪表板”上下文菜单转到 Azure 网站的 WebJob 仪表板。
WebJobs SDK
WebJobs SDK 预装在 Azure WebJob 项目模板中。
NuGet
NuGet 2.8.3
在 NuGet 2.8.3 中增加了对 DevExtreme 项目和 BizTalkProject 的支持。 有关详细信息,请查看 NuGet 2.8.3 发行说明。
Nuget 包管理器
已更新 NuGet 程序包管理器用户界面,以在 Visual Studio 2015 中的整个解决方案中更轻松管理程序包。 通过项目中安装的整个程序包的单个视图,您可以从 NuGet 库中筛选可用程序包的列表、您安装的程序包以及含有可用更新的程序包。
NuGet 库
我们改进了 NuGet 库的性能,其中含有新的 Web 服务和集成客户端。 可在 http://docs.nuget.org 上找到有关 NuGet 更新的更多详细信息。
JavaScript
JavaScript 编辑器支持
我们已对 JavaScript 编辑器进行了更新,使其更为有用。
- AngularJS 的工具支持。 现在,当您使用 AngularJS 编写应用时,IntelliSense 会提供 Angular 控制器、服务、工厂、指令和动画的建议。
- 新的 JavaScript 语言功能(从 JavaScript ES6 版本开始)提供支持,包括类、箭头函数以及模板字符串。
- 导航栏共享项目支持。 对于 Windows 通用应用项目,您现在可以在共享项目中使用导航栏。
- 新导航栏。 新的导航栏可用于更容易地在 JavaScript 源代码的主要元素之间导航。
- JSDoc 注释。 现在使用 IntelliSense 时可以显示使用 JSDoc 格式编写的文档注释。 (有关 JSDoc 注释的详细信息,请参阅http://usejsdoc.org。)
- 对象文本 IntelliSense。 在将对象文本传递至使用 JSDoc 记录的函数时,JavaScript 编辑器可为您提供 IntelliSense 建议。
- 展开/折叠。 您可以展开和折叠 JavaScript 代码的更多部分,其中包括多行注释、多行数组和所有多行代码块。
- 任务列表支持。 您可以使用任务列表功能查看 JavaScript 代码中的任务注释(如
// TODO
)。
TypeScript
Visual Studio 2015 包括 1.5 版本的 TypeScript 工具。 此版本针对 ECMAScript 6 增加了大量的支持,包括模块、重构、for..of、扩散、标志、计算属性、let/const for ES3/ES5 以及 ES3/ES5 的标记字符串模板。 除了支持 ES6 以外,TypeScript 1.5 还添加了对实验 ES7 装饰方案的支持、UMD 和 System.js 模块输出以及新的轻型可移植项目文件(称为“tsconfig.json”)。
IntelliTest
在 Visual Studio 2015 中,我们添加了 IntelliTest,其将探究您的 .NET 代码以生成测试数据和一套单元测试。 针对代码中的每个语句,生成将在该语句中执行的测试输入。 针对代码的每个条件分支执行案例分析。 例如, if
将分析语句、声明及可能会引发异常的所有操作。 此分析用于为您的每个方法的参数化单元测试生成测试数据,并创建具有最大代码覆盖范围的单元测试。 然后,您可以运用域知识来改进这些单元测试。
我们还向 IntelliTest 添加了以下功能:
- 参数化单元测试。 IntelliTest 支持您可以用于指导测试数据生成、指定受测试代码的正确性属性以及引导探究受测试代码的 API。 该 API 通过 Microsoft.Pex.Framework 命名空间提供,可用于 IntelliTest 生成的测试方法(参数化单元测试、工厂方法)。 因此,现在也可通过生成的测试方法使用“IntelliTest”上下文菜单命令。
- 测试存根创建。 “创建单元测试”现在作为上下文菜单上的命令提供,可用于创建和配置测试项目、测试类以及测试存根。
了解有关 IntelliTest(以前称为“智能单元测试”)的详细信息。
Application Insights 全方位了解您的应用程序
除了各种性能改进和 Bug 修复之外,Application Insights 现在包括以下更新:
- Visual Studio 中的 Application Insights 现在属于 Visual Studio 连接服务的一部分。 (若要添加 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 通用应用开发人员无需登录到 Azure 来添加 Application Insights SDK,而是通过使用 Visual Studio 中的 Application Insights 工具即可添加。
- 由于 Application Insights 在 Visual Studio 中使用全局帐户选择器,因此,您可以在整个 Visual Studio 中使用相同的帐户。
- 现在,您可以从”项目服务引用”文件夹中直接查看 Application Insights 的“使用入门”信息;直接单击“使用入门”文件夹即可。
版本管理
通过该功能,您可以改进管理应用发布的流程、将应用部署至特定于每个单独阶段的环境并通过审批每个步骤来管理流程中的步骤。 通过使用 Visual Studio Online 的发布管理服务,您还可以设置从签入到部署的发布管道,而无需安装和维护本地发布管理服务器。
Visual Studio 2015 的发布管理更新版本现已推出。 其与现有的 Visual Studio 2013 发布管理非常类似,但改进了以下方面的性能:
- 发布管理客户端启动页面,其中将显示发布流程和通知概述。
- 通过额外缓存改进了其他发布管理客户端页面中的呈现和交互性。
- Active Directory 与 TFS 安全组保持同步。
- 创建新版本。
通过 RTM 中的新增功能,您现在可以针对 Team Foundation Server 2015 中的新生成系统的生成定义来定义组件和版本定义。 在定义组件时,您可以使用与生成定义中的已发布项目名称相同(或包含该名称)的组件名称来指定组件的项目。
了解有关 发布管理的详细信息。
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 中访问多个集成云服务所需的身份验证提示。 现在,当您在 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++、SQL、JavaScript 和其他类型的文件)的文件级别显示。 以下是非 C# 或 Visual Basic 代码文件的文件的团队活动时间线指示器的示例:
体系结构、设计和建模
代码映射与依赖关系图
当您希望了解代码中的特定依赖关系时,可通过创建 代码映射将其可视化。 然后,您可以通过使用显示在代码旁边的映射导航这些关系。 代码映射还可以帮助您在工作或调试代码时跟踪自己在代码中的位置,以便您在阅读更少的代码同时了解更多的代码设计信息。
在最终的 RTM 版本中,通过将命令分组到与选择、编辑、管理组和更改组内容的布局相关的部分,我们将代码元素的快捷菜单和链接变得更加简单。 另请注意,测试项目的显示方式与其他项目不同,而且更新了映射上的元素的图标以用于更多适合的版本。
我们还更改了代码元素的内容的显示方式,因此您现在可以选择多个组并将布局格式应用于您想要的所有组。 现在,当您展开程序集、命名空间或代码映射上的类型时,始终可以获取有用的依赖关系图。
在 Visual Studio 2015 的较早期版本和发布候选版本中,我们进行了相关更新,以允许您执行以下操作:
- 改进了自上而下的图。 对于大中型 Visual Studio 解决方案,您现在可以使用简化的体系结构菜单以获取对您的解决方案更有用的代码映射。 您的解决方案的程序集将按解决方案文件夹进行分组,以便您可以在上下文中对其进行查看并利用结构化解决方案时所做的工作。 您可以立即查看项目和程序集引用,随后链接类型出现。 此外,解决方案外部的程序集将以更紧凑的方式进行分组。
- 更快地获取反应式代码映射。 拖放操作可生成即时结果,节点之间的链接创建更为快速,不会影响后续用户启动的操作,如展开节点或请求更多节点。 特别是,在创建和编辑图表时,“跳过重新生成解决方案”选项可让您提高性能。当您创建代码映射而没有生成解决方案时,所有极端情况(如未生成程序集)现在都会得到处理。
- 筛选代码元素节点和组。 您可以通过显示或隐藏代码元素(根据其类别)快速整理您的映射,以及按解决方案文件夹、程序集、命名空间、项目文件夹以及类型将代码元素分组。
- 筛选器关系使图表读取更容易。 这包括跨组链接,可使得筛选器窗口的使用要比较低版本中的侵入性低很多。
- “下钻依赖关系链接”将筛选器考虑在内。 您在扩展它以了解依赖关系链接的贡献时可以获得一个有用且清晰的图。 该图更整洁,并且它还将您选择的链接筛选选项考虑在内。
- 从类视图和对象浏览器创建图表。 将文件和程序集拖放到类视图和对象浏览器窗口中的新映射或现有映射。
总之,我们对代码映射所有改进的完整列表包括:
- 测试项目样式不同且可筛选。 现在,您可以更轻松、更快速地确定映射上的测试项目,因为它们的格式不同。 这些项目还可进行筛选,以便您可以专注于应用程序的产品代码。
- 与上下文一起添加的代码元素。 由于这些图现在都与其上下文(取决于您根据需要过滤的程序集和解决方案文件夹)一起显示,因此现在您从解决方案资源管理器、类视图、对象浏览器拖放代码元素或选择解决方案资源管理器中的元素以及在代码映射上选择“显示”时可以获得更为有用的图。
- 简化后的外部依赖关系链接。 依赖关系链接不再代表来自 System.Object、System.ValueType、System.Enum 以及 System.Delegate 的继承,这使得在代码映射中查看外部依赖关系更加简单。
了解有关 代码映射的详细信息。
此版本中的其他设计和建模更改:
- 层关系图。 使用类视图和对象浏览器更新这些图表。 为了满足软件设计要求,请使用层关系图来描述软件所需的依赖关系。 通过查找不满足这些限制的代码,并使用此基准验证未来代码,使代码与此设计保持一致。
- UML 图。 您无需再从代码创建 UML 类图表和序列图表。 但您仍可使用新的 UML 元素创建这些图表。
- 体系结构资源管理器。 您无需再使用“体系结构资源管理器”来创建图表。但您仍可使用“解决方案资源管理器”。
XAML 语言服务
我们基于 .NET 编译器平台(“Roslyn”)重新生成了 XAML 语言服务,以便我们可以为您提供快速、可靠以及现代的 XAML 编辑体验,包括 IntelliSense。
这使得 XAML 创作体验等同于 Visual Studio 中的其他一类语言。 我们还能够以更快的速度向您提供有关跨语言重构的强大的功能集。
其他
Agents for Visual Studio 2015 不再需要测试控制器
在 Agents for Visual Studio 2015 中,您无需单独的测试控制器,因为代理可以通过与 TFS 2015 或 Visual Studio Online 通信来处理业务流程。
在所有新的 Visual Studio 2015 和 TFS 2015 场景中,我们建议您使用 Agents for Visual Studio 2015。
然而,如果您确实需要测试代理或测试控制器以使用 TFS 2013,我们建议您使用 Agents for Visual Studio 2013 Update 5 并配置测试控制器。
(测试控制器与 TFS 2015 以及 TFS 2013 兼容。 但是,Visual Studio 2015 中支持的负载测试不是代理的一部分,因而我们建议您安装 Agents for Visual Studio 2013 Update 5 并配置控制器。)
连接服务
通过 Visual Studio 2015 中新增的“添加连接的服务”对话框,您可以轻松地将应用程序连接至 Azure Application Insights、Azure 存储空间、 Azure 移动服务、 Office 365 以及 Salesforce。 若要添加连接的服务,请右键单击“引用”节点,然后选择添加连接的服务...。
“添加连接的服务”对话框包含当前安装的所有连接的服务提供程序,并提供获取提供程序相关的更多信息、其使用的技术以及其是否在当前项目中受支持的方法。 可以通过使用 查找更多服务...链接发现“扩展与更新”库中的其他提供程序 。 “添加连接的服务”对话框也可以进行扩展。 如果您是服务开发人员,可以使用我们的“ 连接的服务 SDK”生成可改进可发现性并提升服务使用率的提供程序。
企业单一登录
业务应用程序的一个常见任务是配置应用程序以便企业使用 Azure Active Directory 单一登录。 现在,您可以在构造应用程序期间随时通过右键单击您的应用程序并选择 配置 Azure AD 身份验证...轻松实现此目的。 此操作将弹出一个向导(类似于“添加连接的服务”体验)以指导您按步骤配置应用程序以使用 Active Directory。 在向导中指定 Active Directory 域会将您的应用程序注册到该 Active Directory 并配置您的应用程序以提示登录。
适用于 Visual Studio 2015 RC 的 IIS 10 Express
该 RC 版本包含新版的 IIS 10 Express;新功能包括支持 HTTP 2.0 以及与 Windows 10 位数保持同步。
其他更改:Bug 修复 & 已知问题
有关该版本中的技术改进、Bug 修复和已知问题的完整说明,请参阅以下知识库 (KB) 文章。
了解详细信息: Visual Studio 2015 RTM 的说明
相关版本
Azure SDK 2.7 for .NET
Azure SDK 2.7 是首个适用于最终版的 Visual Studio 2015 的 Azure SDK。 以下是一些新增功能及更新,可以帮助您改进 Azure 开发体验:
- Visual Studio 2015 的登录改进:现在,Azure SDK 2.7 for Visual Studio 2015 包括支持通过 基于角色访问控件、云解决方案提供程序、 DreamSpark 访问 Azure 的帐户以及其他帐户和订阅类型。
- Cloud Explorer for Visual Studio 2015:Azure SDK 2.7 包括 Cloud Explorer for Visual Studio 2015,其可提供较高的性能,适用于搜索和查看 Azure 资源、检查它们的属性,以及在 Visual Studio 中执行关键开发人员和诊断操作的可伸缩工具。
- Visual Studio 2015 中虚拟机的远程调试功能:使用 Azure 资源管理器堆栈创建在虚拟机上运行的远程调试过程。
- Azure 资源管理器工具:我们已经更新了 Azure 资源管理器工具,以便可更容易地与新的 Visual Studio Online 生成任务联合使用。 而且,我们已经对基于角色的访问控制 (RBAC) 和新的订阅类型进行了改进。
- Azure 应用服务工具:App 服务工具现在可在 Visual Studio 2015 中使用。 此更新为 Web 应用提供了远程分析支持,对 API 应用的 Swagger 生成进行了改进,并为多帐户登录提供了支持。 现在,应用服务工具使用 Azure 资源管理 API 的所有功能,并启用对 DreamSpark 和云服务提供商的支持。 在此更新中,我们还增加了对 Visual Studio 2015 开发人员的 Azure API 应用预览版的支持。
- HDInsight 工具:在此版本中,我们已经增加了在 Tez 上运行的 Hive 作业执行图的视图,扩展了我们的 Hive DML IntelliSense 支持,增加了针对 SCP.Ne 的 NuGet,升级了我们的 Storm 模板,以及为 Pig 添加了新模板。
- Azure 数据工厂工具:现在,Azure SDK 包括 Azure 数据工厂工具。 我们的目标是简化 Azure 数据工厂制作体验,并消除载入和部署的诸多挑战。 藉由 Azure 数据工厂工具中的丰富的定制经验和工具,可使新用户和高级用户提高生产率和工作效率。 在此版本中,客户可与作者进行互动,并且可以通过 Visual Studio 接口部署数据管道。 有关这些工具的更多信息,请参阅 Azure 数据工厂博文。
适用于 Visual Studio 2.2 (RTM) 的 Python 工具
Visual Studio 中可支持完全免费的 Python。
- CPython、PyPy、IronPython 等
- IntelliSense 的详细信息
- 交互调试
- 与 Visual Studio 功能集成
- 免费、开源
了解有关 适用于 Visual Studio 的 Python 工具的更多信息。
适用于 Unity 2.0 (RTM) 的 Visual Studio 工具
将 Visual Studio 变为强大的 Unity 开发环境。
- 构建多平台游戏
- 在 Visual Studio 中调试
- 在 Visual Studio 中创建 Unity 脚本
- 使用 Visual Studio 体验增强的工作效率
了解有关 适用于 Unity 的 Visual Studio 工具的详细信息。
适用于 Visual Studio 1.1 (RC) 的 Node.js 工具
将 Visual Studio 变为强大的 Node.js 开发环境。
- 免费、开源
- 智能代码完成
- 高级调试和分析
- 与其他 Visual Studio 功能和第 3 方工具完全集成
- Node.js、io.js、JavaScript、TypeScript、HTML、CSS 以及 JSON 支持
了解有关 适用于 Visual Studio 的 Node.js 工具的更多信息。
适用于 Visual Studio 2015 的 Office 开发人员工具
使用 Office 365 API 进行开发
- Office 365 API 工具使用 Visual Studio 2015 中新增的连接服务向开发人员提供指导经验,以将 Office 365 API 集成到项目中。
- 现在,直接通过选择“连接服务”向导中的“使用 Azure AD 配置单一登录”,即可让 Office 365 API 工具在您的 ASP.NET MVC Web 应用程序中自动配置单一登录。
- 当您将 Office 365 API 集成到项目时,Office 365 API 工具现在可从 NuGet.org 下载并安装最新版本的 Office 365 API 客户端库 NuGet 程序包。
SharePoint 加载项开发
- 在创建 SharePoint 加载项时,这些工具将目标 SharePoint 版本设置为您在项目创建向导中指定的调试 SharePoint 网站的版本。 该向导会显示已经选择哪个版本的 SharePoint,并允许您覆盖默认值。 此外,在使用项目设计器中的 SharePoint 选项卡创建项目之后,您可以更改目标版本。
- 现在,当目标版本是 SharePoint Online 时,这些工具会将包含 SharePoint Online 客户端对象模型 (SPO-CSOM) 的 NuGet 程序包安装到您的项目。 这些工具还会将对 SharePoint Online CSOM 程序集的引用添加到该项目。 这些工具不再依赖 Microsoft 下载中心中发布的 SharePoint Online 客户端组件 SDK。 这使得您以后可以更轻松地使用 Visual Studio 中的 NuGet 程序包管理器升级 CSOM 程序集。
- 现在,您可以使用 Microsoft Azure 服务总线的 SAS 或 ACS 连接字符串来 调试和排除 SharePoint 加载项中的远程事件接收器的故障。
Office 加载项开发
- 在此版本中,这些工具始终对含有 v1.1 清单(而非 v1.0)的 Office 创建新应用,以便于您的应用可以支持 Office Web 应用和 Office 2013 客户端中的新功能。 对于使用 v1.0 清单的 Office 的现有应用,当任何可用的新功能需要 v1.1 清单时,这些工具会将该清单升级到 v1.1。
了解有关 适用于 Visual Studio 的 Office 开发人员工具的更多信息。
适用于 Visual Studio 2015 (RTM) 的 GitHub 扩展
在 Visual Studio 中连接到您的 GitHub 存储库最简便的方式。
- 易于安装
- 在 Visual Studio 中连接到 GitHub
- 创建存储库
- 通过一次单击即可复制存储库
- 将您的本地工作发布到 GitHub
了解有关 适用于 Visual Studio 的 GitHub 扩展的更多信息。
基于云的负载测试
从全球 Azure 数据中心执行基于云的负载测试
设置运行加载测试所需的基础结构变得更加轻松:现在,您可以从全球任一受支持的 Azure 数据中心执行基于云的负载测试。
详细了解 如何选择负载测试位置。
基于云的加载测试现在支持高级代理诊断
RTM 中的新增功能:实施基于云的加载测试的测试代理诊断的功能。
云中的调试很难,因为无法访问计算机,因此从测试代理中收集日志或其他任何信息并非总是可行。 但现在,使用高级代理诊断,您可以从测试代理中收集日志,并将它们附加到基于云的测试结果中。
若要了解有关测试代理诊断的更多信息,请参阅我们的 使用高级诊断调试云加载测试中的问题博文。