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 支持仍在进行中,因此请密切关注这一点。 可以通过对 bug 使用连接向我们发送反馈。 此外,还可以通过在 Visual Studio IDE 中使用 Send-a-Smile 向我们发送快速想法。

我们还添加了或更新了以下内容:

  • 支持 Android API 级别 21 (Lollipop) 。
  • 基于 Android 的文件支持的新模板,它允许使用外部生成系统 (包括 NDK- BUILD) 。
  • 所有模板中的预编译标头 (包括动态共享库、静态库和跨平台移动模板) 。

适用于 Apache Cordova 的Visual Studio Tools

以前称为用于Visual Studio的多设备混合应用,Apache Cordova 的Visual Studio Tools可以轻松地从一个简单的Visual Studio项目中生成、调试和测试面向 Android、iOS、Windows 和Windows Phone的跨平台应用。

Visual Studio 2015 RC 中提供了以前 CTP 中提供的所有功能,包括以下改进:

  • 更新后保存波纹 - 无需重新生成!
  • 将应用部署到 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 Store 8.1

然后,我们进一步扩大了调试支持范围。 现在可以调试面向 Windows Phone 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 Emulator

可以在 Visual Studio (Xamarin 或 C++) 的跨平台项目中,或在 Apache Cordova 的 Visual Studio Tools中使用适用于 Android 的Visual Studio Emulator。 借助模拟器,可以在不同平台模拟器之间切换,而不会发生 Hyper-V 冲突。 它支持各种传感器和模拟,包括 GPS/位置、加速计、屏幕旋转、缩放、SD 卡、相机、多触摸和网络访问。 它还支持 Android 版本 4.4 (KitKat、API 级别 19) 和 5.0 (Lollipop、API 级别 21) 。

适用于 Android 的Visual Studio Emulator支持 WiFi 模拟以及从多个不同的设备硬件配置中进行选择的功能。

我们为 RTM 添加了以下新功能:

  • 新平台。 Jellybean (API 17) 和 Lollipop 5.1 (API 22) 映像可用。
  • 命令行接口。 在命令提示符中导航到 %programfiles (x86) %\Microsoft Emulator Manager\1.0\emulatorcmd.exe,可让你在没有 UI 的情况下与模拟器管理器 (列表、安装、启动配置文件 ) 等交互。
  • 拖放 zip 库。 现在,将可闪烁的 zip 拖放到仿真器上将自动解压缩并安装它。
  • SD 卡选项卡。“其他工具”窗口中的这一新选项卡允许你向 SD 卡推送和拉取数据。
  • 自行获取。 可以在计算机上安装模拟器,而无需安装Visual Studio。 Emulator管理器的快捷方式显示在"开始"菜单中,以便可以从任何开发工具链启动并使用它。

有关详细信息,请参阅适用于 Android 的Visual Studio Emulator

用于通用Windows应用开发的Visual Studio Tools

通用Windows应用开发的Visual Studio工具与Visual Studio设置集成。 这些工具使你能够构建跨所有Windows 10设备运行Windows应用:口袋中的手机、你的袋子中的平板电脑或笔记本电脑、桌面上的电脑、IoT 设备以及很快、家里的 Xbox 主机、Surface Hub等。 此外,还可以使用这些工具生成利用Windows 10 API 的桌面应用程序Windows。 有关详细信息,请参阅通用Windows应用Visual Studio Tools中的新增功能。

有关Windows应用开发的详细信息,请参阅通用Windows应用指南和Windows开发人员中心。 有关最新的Windows版本和 SDK 的信息,请参阅Windows预览体验成员门户。

Visual C++

在此版本中,C++ 编译器和标准库已更新,增强了对 C++11 的支持和对某些 C++14 功能的初始支持。 它们还包括针对 C++17 标准中预计会具有的某些功能的初步支持。

此外,已经修复了 500 多个编译器 bug,包括客户通过 Microsoft 开发者社区 提交的许多 bug — 谢谢!

语言功能

我们添加了以下新功能,使编译器更接近标准 C++:

  • 恢复函数 (恢复/等待) resume 和 await 关键字为异步编程提供语言级支持,并支持可恢复的函数。 当前,此功能只能用于 x64 目标。 建议使用 C++17 [N3858]
  • 泛型 (多态) Lambda 表达式 现在可以使用 auto 指定 Lambda 函数参数类型;编译器在此上下文中解释自动,表示关闭的函数调用运算符是成员函数模板,lambda 表达式中的每个自动用法都对应于不同的模板类型参数。 C++14
  • 通用 Lambda 捕获表达式 也称为 init-capture。 现在可以将任意表达式的结果分配给 lambda 的 capture 子句中的变量。 这使得可以通过值捕获仅移动类型,并使 lambda 表达式可以在其闭包对象中定义任意数据成员。 C++14
  • 现在支持二进制文本。 这类文本具有前缀 0B 或 0b,仅由数字 0 和 1 组成。 C++14
  • 返回类型扣减 现在可以推断正常函数的返回类型,包括具有多个返回语句和递归函数的函数。 此类函数定义前面是自动关键字,如函数定义中带有尾随返回类型,但省略尾随返回类型。 C++14
  • decltype (自动) 类型推断,使用自动关键字初始化表达式从表达式中提取 ref-qualifiers 和顶级 cv 限定符。 decltype(auto) 保留引用和 cv 限定符,现在可以在可使用 auto 的任何位置使用(除了用于引入具有推断或尾随返回类型的函数)。 C++14
  • 移动特殊成员函数的隐式生成 当条件允许时,移动构造函数和移动赋值运算符现在隐式生成,从而使编译器与 C++11 rvalue 引用完全一致。 C++11
  • 继承构造函数 派生类现在可以通过使用 Base::Base 包括语句来指定它将继承其基类的构造函数 Base;在其定义中。 派生类只能继承其基类的所有构造函数,无法仅继承特定基构造函数。 派生类无法从构造函数具有相同签名的多个基类继承,派生类也无法定义签名与其任何继承的构造函数相同的构造函数。 C++11
  • 对齐查询和控制 可以使用 alignof () 运算符查询变量的对齐方式,并使用 alignas () 说明符进行控制。 alignof () 在必须分配的类型实例上返回字节边界;对于引用,它返回所引用类型的对齐方式,对于数组,它将返回元素类型的对齐方式。 alignas () 控制变量的对齐方式;它采用常量或类型,其中类型是对齐 (alignof (类型) ) 的速记。 C++11
  • 扩展大小of 现在可以使用 sizeof () 确定类或结构成员变量的大小,而无需类或结构实例。 C++11
  • constexpr 对 C++11 constexpr 的部分支持。 C++11 (部分)
  • 用户定义的文本 (UDL) 现在可以将有意义的后缀追加到数字文本和字符串文本中,以便提供特定的语义。 编译器会将后缀文本解释为对适当 UDL 运算符的调用。 C++11
  • 线程保险箱“Magic”静态局部变量现在以线程安全的方式初始化,无需手动同步。 只有初始化是线程安全的,多个线程对静态局部变量的使用仍必须手动同步。 可以通过使用 /Zc:threadSafeInit- 标志避免对 CRT 形成依赖,来禁用线程安全的静态对象功能。 C++11
  • Thread-Local 存储 使用 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 原始字符串)、uR(UTF-16 原始字符串)或 UR(UTF-32 原始字符串)作为前缀。 通用字符名称可以在 Unicode 文本中自由使用,如 u'\u00EF', u8“\u00EF 为 i”,而你“\U000000ef 为 I”。 C++11
  • func 预定义标识符 func 隐式定义为一个字符串,其中包含封闭函数的非限定和未限定的名称。 C++11
  • 现在可以将__restrict __restrict应用于引用。
  • Typename 关键字。 用户现在可以在模板模板参数中编写 typename 而不是类。 C++14
  • globals void 运算符删除 (void *, std::size_t) noexcept and 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]] 来告诉编译器,该函数不会返回 (,尽管它可以引发异常) 。 现在还可以将各种构造指定为 [[已弃用]]。 现在,命名空间和枚举器上允许属性。 C++11、C++14 和 C++17
  • 用户定义的文本 (UDL) 数值和字符串文本现在可以有有意义的后缀,用于对文本数据执行自定义计算。 C++11
  • 数据依赖项排序attributes 现在可以将函数参数、lambda 参数或函数声明指定为 [[carries_dependency]] 来改进经常读取但很少修改的并发数据结构的优化。 C++11
  • 带有大括号 init 列表的自动新规则 复制列表初始化的自动扣减现在会推断出 std::initializer_list或者格式不正确。 C++17

Visual C++ 库功能

  • 标准库类型的用户定义的文本 (UDL) <计时>、<字符串>和<复杂>标头现在为方便提供 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(),会将整个带引号的字符串视为单个实体(因为非空格字符组成的字符串处于 I/O 流中);此外,可通过 I/O 操作保留转义序列。 C++14
  • 异类关联查找 标准库现在支持关联容器的异类查找函数。 此类函数实现按 key_type 以外的类型进行查找(只要该类型可与 key_type 进行比较)。 C++14
  • 编译时整数序列 标准库现在支持integer_sequence类型,该类型表示可在编译时评估的整数值序列,以便更轻松地使用参数包并简化某些模板编程模式。 C++14
  • exchange () 标准库现在支持 std::exchange () 实用工具函数,为对象分配新值并返回其旧值。 对于复杂类型,exchange () 在移动构造函数可用时避免复制旧值,如果它是临时值或移动值,并且接受任何类型作为利用任何转换赋值运算符的新值。 C++14
  • 双范围相等 () , is_permutation () , 不匹配 () 标准库现在支持 std::equal () 、std::is_permutation () 和接受两个范围的 std::mismatch () 的重载。 这些重载处理不同长度的序列。 C++14
  • 获取<T> () 标准库现在支持 getT<> () 模板函数,以允许按其类型对元组元素进行寻址。 如果元组包含同一类型的两个或多个元素 getT<> () ,则元组无法由该类型进行寻址;但是,仍可以寻址其他唯一类型的元素。 C++14
  • tuple_element_t 标准库现在支持 tuple_element_t< I、T> 类型别名,该别名是 typename tuple_element< I、T>::type 的别名。 这为模板程序员提供了一些便利,类似于type_traits>中的其他<元函数类型别名。 C++14
  • 文件系统“V3”技术规范 文件系统技术规范的包含实现已更新到最终版本。
  • 最小分配器 标准库现在支持整个最小分配器接口;值得注意的修补程序包括 std::function、shared_ptr、allocate_shared () 和 basic_string。 C++11
  • <已> 修复了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[] 的转换是安全的,则允许转换为 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 () 和数据 () 非成员函数现已提供。 C++17
  • auto_ptrrandom_shuffle () 旧 <功能> 机械在 C++11/14 中弃用,并在 C++17 中删除。 Visual Studio 2015 默认提供它们,但定义_HAS_AUTO_PTR_ETC到 0 个项目范围会删除其定义。
  • unique_ptr 分配现在完全受约束。 C++17
  • bool_constant 现在支持为 integral_constant< bool> 的别名。 C++17

Visual C++ 生成速度更快

  • 增量链接时代码生成 (LTG) 现在,你可以告诉 LTG 仅重新生成受编辑影响的项目部分。 这可以显著减少使用 LTCG 的应用程序的链接时间。 使用 /LTG:增量链接器开关激活此功能。
  • 静态库的增量链接 对其他代码模块引用的静态库的更改现在以增量方式链接。
  • /Debug:FastLink 使用新的 PDB 创建技术显著减少链接时间。
  • 对链接器进行了算法改进以减少链接时间。
  • 进行了允许更快生成使用大量模板的代码的改进。
  • 快速配置文件引导式优化 (PGO) 检测 PGO 中引入了适用于游戏和实时系统的全新轻型检测模式。 你现在可以在使用 PGO(与其他新功能一起,通过 /GENPROFILE 和 /FASTGETPROFILE 链接器开关提供)时平衡代码质量与生成速度。
  • 对象文件大小缩减 编译器和 C++ 标准库增强功能可显著缩小对象文件和静态库。 这些增强功能不影响动态链接库 (DLL) 或可执行文件 (EXE) 的大小,因为从历史上看链接器已删除了冗余代码。

Visual C++ 性能和代码质量

  • 自动矢量化改进。 我们改进了控制流向量化 (if-then-else) 、在 /O1 下编译时矢量化 (最小化大小) ,并改进了矢量代码质量,包括支持并行 STL、向量化基于更多范围的循环,以及#pragma循环 (ivdep) 的支持。
  • 对标量优化的改进。 我们添加了更好的代码生成位测试操作、控制流合并和优化 (循环(如果切换) )和其他标量优化 (例如 std::min 和 std::max) 更好的代码生成。
  • 配置文件引导式优化 (PGO) 。 我们对 PGO 进行了许多增强,包括改进的参考集、更好的数据布局功能,以及重复使用以前做出的内联、速度与大小和布局决策的能力。
  • 控制Flow防护 (CFG) 。 我们添加了新的安全功能;只需向项目添加新选项,Visual C++ 编译器现在会将额外的安全检查注入二进制文件中,以帮助检测劫持代码的尝试。 当检查触发时,它会停止执行代码,然后劫持者会对数据或电脑造成损坏。

注意

我们已更新命令选项。 现在应使用 /guard:cf,而不是像在早期版本中那样使用 /d2guard4 开关。

Visual C++ 生产力、调试和诊断

我们通过以下功能针对 C++ 添加了重构支持:

  • 重命名符号 将符号的所有匹配项更改为新名称。
  • 函数提取 将所选代码移到其自己的函数中。 此重构可用作Visual Studio库中Visual Studio的扩展。
  • 实现纯虚拟 为类或结构继承的纯虚拟函数生成函数定义。 支持多个和递归继承。 从继承类定义激活此重构可实现所有继承的纯虚函数,从基类说明符激活可仅从该基类实现纯虚函数。
  • 创建声明或定义 从现有定义或现有声明生成默认定义的声明。 从现有声明或定义或灯泡指示器访问此重构。
  • 移动函数定义 在源代码和头文件之间移动函数的正文。 从函数的签名激活此重构。
  • 转换为原始字符串文本 将包含转义序列的字符串转换为原始字符串文本。 支持的转义序列\n (新行) ,\t (选项卡) ,' (单引号) ,“ (双引号) ,? (问号)。 通过在字符串中的任意位置右键单击来激活此功能。

Visual C++ 中的程序数据库 (PDB) 增强功能包括:

  • 解决方案扫描速度得到了提高,尤其是对于大型解决方案。
  • 在解决方案扫描过程中,不会再阻止“转到定义”这类操作(除了在首次打开新解决方案时的初始解决方案扫描过程中)。

IntelliSense 可读性改进:复杂的模板实例化和 typedefs 在参数帮助和 quickinfo 中简化,使其更易于阅读。

C++ 中的调试器可视化效果

将 Natvis 调试器可视化效果添加到Visual Studio项目中,以便于管理和源代码管理集成。 添加到项目的 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 Phone 8.1 图形诊断的支持现在完全支持在电话模拟器或电话中调试Windows应用。
  • 图形帧分析 此工具收集捕获帧的性能度量;此外,它还执行一组预定义的试验,用于深入了解应用各种纹理技术时性能的影响。 帧分析还从硬件收集性能计数器。
  • 用于图形分析的专用 UI新的Visual Studio图形分析器窗口是用于分析图形帧的专用工作区。
  • 着色器编辑和应用 查看捕获日志中着色器代码更改的影响,而无需重新运行应用。
  • 在 Tools-Options-Graphics>> Diagnostics 中配置捕获选项
  • 用于捕获和播放帧的命令行工具
  • DirectX 12 的图形诊断支持。 Visual Studio图形诊断工具现在支持调试 DirectX 12 应用程序中的呈现问题。

新的 GPU 使用情况工具

Visual Studio 2015 中的 GPU 使用情况工具可用于了解 DirectX 应用程序的 GPU 使用情况。 实时运行应用程序期间,可以使用帧时间、帧速率和 GPU 使用率图表。 此外,通过收集和分析详细的 GPU 使用情况数据,此工具提供有关单个 DirectX 事件的 CPU 和 GPU 执行时间的见解,因此可用于确定 CPU 还是 GPU 是性能瓶颈。

启用 Visual C++ 托管测试Project的调试

此版本中的新增功能:若要启用 Visual C++ 托管测试Project的调试,请转到“工具|选项|调试|“常规”窗格,并选中“取消模块加载上的 JIT 优化 (仅托管) ”选项。

C# 和 Visual Basic

语言功能

在此版本中,几个新的 C# 和 Visual Basic 语言功能有助于减少日常代码中的样板和杂乱,鼓励更声明性的编程风格,并将这两种语言更紧密地结合在一起。 例如,对类型和成员声明和 null 检查有语法改进。 此外,可以在表达式内声明局部变量,await 可用于 catch 和 finally 块。 其中许多功能仅针对早期版本中的两种语言之一实现,但在最终版本中,这两种语言均可使用。

  • Nameof 提供了一种重构安全的方法来获取参数、成员或类型作为字符串的名称。
  • 使用 null 条件运算符,可以在访问和调用成员和索引器时获取内置的 null 检查。
  • 字符串内插:字符串内插提供了一种简洁的方式来描述字符串模板,这些模板仅在预览版中将表达式插入格式字符串 (C# 中,VB和 C#) 。
  • 方法仅限 getter 的属性等现在可以将单个表达式作为其主体,就像 lambda 一样。
  • 自动属性 可以具有初始值设定项,并且不再需要 setter。
  • 索引初始值设定项:在对象初始值设定项内,现在可以初始化新对象的特定索引。 仅限 C#。
  • 异常筛选器 允许查看异常,并决定是否使用给定 catch 块捕获它。
  • 使用 静态类 的子句将静态成员直接引入范围,因此可以调用 WriteLine () 或 Sqrt () ,而无需使用类名前缀。
  • Await 现在在 catch 和 finally 块中工作,从而消除一些非常棘手的解决方法。

代码编辑器 UI 和编辑

C# 和Visual Basic的代码编辑器 UI 和编辑体验已替换为基于 .NET Compiler Platform (“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 包Code Analysis的示例。

An example from the Code Analysis for Azure package

  • 已重写 C# 和Visual Basic的表达式计算器。 改进包括对 Watch 和即时Windows中 LINQ 和 lambda 表达式的支持。

F#

语言和运行时功能

F# 4.0 包含许多新的语言和运行时新增功能,这些新增功能填补了空白,使更多内容“只是工作”,并提高关键领域的性能。 编译器和运行时也实现了许多 bug 和小型性能优化。

  • 构造函数作为一类函数 - 类名称现在可用作一流的函数值,表示该类的构造函数 () 。
  • “可变”和“ref”的统 一 - “可变”语法现在可以随处使用,捕获的值在需要时由编译器自动转换为基于堆的“ref”值。 如果开发人员希望在发生这种情况时收到通知,则添加了新的可选警告。
  • 提供给提供方法的静态参数 - 类型提供程序提供的单个方法现在可以指定静态参数。
  • 不可为 null 提供的类型 - 现在可以通过标准 [<AllowNullLiteral (false) >] 指定为不可为 null 的类型。
  • 方法参数的隐式引号 - Expr<> 类型的方法参数现在可以透明地自动引用,同时传递参数值和生成它的表达式的 AST。
  • 扩展预处理器语法 - 布尔运算符||和 && ! 现在可以在#if预处理器指令中使用 ( ) 分组。
  • 度量单位中的合理指数 - 度量单位现在支持理性指数,有时在物理科学(如电气工程)中使用
  • 简化使用带有“printf”样式函数的度量值单位 - 单位化数值现在可与数字打印格式说明符无缝配合,而无需删除单位。
  • 对高维 .NET 数组的支持 - F# 代码现在可以使用排名 5 或更高版本的 .NET 数组。
  • 对象初始值设定项中的扩展属性 - 现在可以在对象初始值设定项表达式中分配 Settable 扩展属性。
  • 从多个泛型接口实例化继承 - 现在允许 F#创作类从实现多个泛型接口实例化的类继承。
  • “StructuredFormatDisplayAttribute”中的多个属性 - 通过 [<StructuredFormatDisplay>] 指定的 %A 格式现在可以包含多个属性。
  • 前导“Microsoft”命名空间可选 - 从 FSharp.Core 使用或打开模块和命名空间时,前导“Microsoft”。现在为可选。

F# 运行时

  • 数组、列表和 Seq 模块的规范化 - 集合处理函数集现在在数组、列表和 Seq 模块之间保持一致, (阻止 API 不适用于某些类型) ,每个类型的专用优化实现。
  • 优化的结构哈希 - 进行了重大优化,以提高基元类型的泛型哈希比较的性能,从而导致 API(如“distinct”和“groupBy”)的性能提升。
  • 优化的非结构比较运算符 - 现在可以打开 FSharp.Core.Operators.NonStructuralComparison 模块,将默认的 F# 结构比较运算符替换为更高效的非结构运算符。 当使用自定义运算符实现(尤其是值类型)处理类型时,这可以提供显著的性能提升。
  • F# 列表上的切片语法 - F# 列表现在支持切片语法以获取子列表。
  • System.Net.WebClient 的异步扩展 - WebClient 扩展 AsyncDownloadFile 和 AsyncDownloadData 现已推出。
  • 更好的异步堆栈跟踪 - F# 异步计算中发生的异常现在携带更多用户友好的堆栈跟踪,从而更轻松地诊断问题。
  • Option 的互操作 API - 已将各种新 API 添加到 Option 模块,用于转换到 null 对象和 System.Nullable 值。
  • System.Decimal 值的引号活动模式 - 现在内置了一个活动模式,用于匹配引号中的常量文本 System.Decimal 值。

F# IDE 功能

Visual F#工具中也有新的体验和功能,以及许多 bug 修复。

  • 脚本调试 - F# 脚本现在可以直接在Visual Studio调试器中进行调试。
  • 项目模板中的程序集元数据 - 所有 F# 项目模板现在都包含一个包含通用程序集级元数据属性的文件 AssemblyInfo.fs。
  • 集成的最新检查 - F# 项目现在在生成Visual Studio时正确报告其“最新”状态。
  • 对象初始值设定项中的 IntelliSense 完成 - 对象初始值设定项表达式现在支持使用Ctrl+Space 完成可设置的属性。
  • 命名参数的 IntelliSense 完成 - 方法和构造函数调用现在支持使用Ctrl+Space 自动完成命名参数。
  • 有关文件夹支持的 Bug 修复 - Visual F#工具不支持项目中的文件夹,但修复了许多项目系统 bug,改进了 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 Community Technical Preview 2 (CTP2) 中提供的Always Encrypted功能。
  • 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

此版本包括 Entity Framework 7 的预览版和实体框架 6 的更新,主要包括 bug 修复和社区贡献。

Entity Framework 7

新版 Entity Framework 支持新的平台和新数据存储。 Windows Phone、Windows Store、ASP.NET 5 和传统桌面应用程序现在可以使用 Entity Framework。 此版本的框架支持关系数据库和非关系数据存储,例如 Azure 表存储和 Redis。 它包括新 ASP.NET 5 个项目中安装的 EF7 运行时的早期预览版。 有关 EF7 的详细信息,请参阅什么是 EF7。

Entity Framework 6.x

此版本包括运行时和工具的 EF6.1.3 版本。 EF6.1.3 包括 bug 修复和社区贡献;可以在实体框架 CodePlex 站点上查看 EF6.1.3 中包含的更改列表。

Entity Framework 6.1.1 运行时包含在此版本中的多个位置。

  • 如果在尚未安装 EF 运行时的项目中使用 Entity Framework Tools 创建新模型,则会安装运行时。
  • 运行时预安装在新的 ASP.NET 项目中,具体取决于所选的项目模板。

Visual Studio IDE

共享帐户

此版本中的新增功能可以与其他应用共享添加到Visual Studio的用户帐户,例如Blend for Visual Studio或 Microsoft 测试管理器 (,反之亦然) 。

共享项目

在此版本中,新模板可用于为 Visual Basic、C# 和 JavaScript 创建空共享项目。 这些共享项目现在可以由多个项目类型引用:

  • 任何非风格VB/C# 项目 (,例如控制台应用、类库、Win 表单应用)
  • 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 设计器中启用真正的就地资源编辑。

自定义窗口布局

现在,可以通过单击“窗口”菜单中的“保存窗口布局”来保存自定义窗口布局,并通过单击“窗口”菜单中的“应用窗口布局”来应用自定义布局。 还可以使用预分配的键盘快捷方式应用布局。 前九个布局还具有从 Ctrl + Alt + 1 到 Ctrl+Alt+9 的键盘快捷方式。 你可以执行的其他任务包括删除、重命名和重新排序布局,方法是单击“窗口”菜单中的“管理窗口布局”。

High-Resolution图标

Visual Studio支持命令栏中的高分辨率图标、工具窗口工具栏 (标准) 、主菜单、错误列表、状态栏和某些解决方案资源管理器项目类型(当设备以大于 100% DPI 缩放)运行时。

UI 改进

  • 菜单现在以标题大小写样式而不是 ALL CAPS 样式显示。
  • 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设置”对话框中,检查 Common Tools 下的Visual Studio扩展性工具。
  • 为了提高扩展项目的可移植性和共享性,可以使用 Visual Studio SDK 引用程序集的NuGet版本。 有关详细信息,请参阅Visual Studio扩展性发布的程序集。

详细了解Visual Studio扩展性

混合

我们重新设计了 Blend for Visual Studio 2015,为你提供了一种改进的用户界面开发体验,用于创建漂亮的 XAML 应用。 Blend 具有与 Visual Studio、解决方案和团队资源管理器支持以及丰富文件重载体验一致的新外观,有助于在 Blend 和 Visual Studio 之间实现更好的工作流。 我们还提供了 Blend 最想要的功能,可帮助你提高工作效率:

  • 现在,可以使用 XAML IntelliSense 更高效地编写 XAML,该 XAML 提供语句完成和源导航。
  • 还可以在上下文中查看和编辑它们与 XAML 速览定义一起使用的 XAML 控件和资源。
  • 现在,使用 UI 工具可以更轻松地查找和修复正在运行的应用中的 UI 问题,以便进行 XAML 调试,以便检查树中的任何元素的实时可视化树和属性。
  • 添加了NuGet支持后,可以在 Blend 中管理NuGet包。
  • 我们还将动画工作区功能替换为功能更强大的“同步布局”功能,可用于创建许多不同的窗口布局,并跨计算机漫游它们。
  • 对于宁愿使用键盘而不是鼠标的电源用户,我们使 Blend 设计器窗格完全可访问键盘。
  • 最后,作为 Microsoft 不断努力创建可普遍访问的软件的一部分,Blend 现在是一个全屏阅读器和高对比度可访问。

若要详细了解添加到 Blend 的新功能,请访问 我们的预览 博客文章。

调试和诊断

附加时托管的编辑并继续

从 RC 开始,可以在附加到 .NET 应用程序和环境变量时编辑并继续

目标进程中complus_forceenc设置为 1。

断点配置

新的断点设置窗口允许指定断点的条件和操作。 该窗口包括对断点条件和操作的改进 IntelliSense 支持。 可以使用撤消 (CTRL+Z) 还原已删除的断点。

调试器中的 Lambda 表达式Windows

现在可以在 C# 和 Visual Basic 的 Watch、即时和其他调试器窗口中使用 lambda 表达式。

性能提示

可以使用 PerfTips 功能查看在设置断点和执行调试器时直接在编辑器中执行的代码花费的时间。

GPU 使用情况

可以使用 GPU 使用情况工具了解 DirectX 应用程序的 GPU 使用情况。 当应用程序实时运行时,可以使用帧时间、帧速率和 GPU 利用率图。 此外,通过收集和分析详细的 GPU 使用情况数据,此工具可以深入了解每个 DirectX 事件的 CPU 和 GPU 执行时间,因此可用于确定 CPU 还是 GPU 是否是性能瓶颈。

C++ 调试器中的改进

当 C++ 调试器在断点处停止时,它可以执行代码来计算结果,例如在“监视”和“即时”窗口中显示数据。 如果调试器检测到调用的函数已死锁,它将尝试解决此问题。

当 C++ 调试器启动进程时,Windows现在使用普通堆而不是调试正常堆分配内存。 这样可更快地启动调试。

XAML 的 UI 调试工具

我们添加了两个新工具:实时可视化树和实时属性资源管理器,用于检查正在运行的 WPF 应用程序的可视化树,以及树中任何元素的属性。 这些工具允许选择正在运行的应用中的任何元素,并显示最终、计算和呈现的属性。 这些工具还包括以下内容:

  • 实时可视化树。 现在,可以在调试会话期间查看正在运行的应用程序的完整可视化树。 在Visual Studio中按 F5 或附加到正在运行的应用程序时,可以使用实时可视化树。 可以使用实时可视化树选择正在运行的应用程序中的元素,以便在 Live 属性资源管理器中检查。 将显示后代计数,如果源信息可用,可以立即找到元素定义的文件和位置。
  • 实时属性资源管理器。 使用此新工具检查在正在运行的应用程序中的任何元素上设置的属性,这些属性按所设置的范围分组。 可以在调试会话期间修改这些属性,并在正在运行的应用程序中立即看到这些属性的更改。

区分属性如何相互替代,并找出获胜行为在设计时可能会变得困难。 现在,通过使用适用于 XAML 的新 UI 调试工具,可以在运行时执行这些检查。

(将来的 update.) 中将发布对 Windows 应用商店应用的支持

UI Debugging Tools for XAML, full screen

异常设置

可以使用异常设置工具窗口配置调试器异常设置。 新窗口是非模式的,包括改进的性能、搜索和筛选器功能。

Exceptions Settings - Break when Thrown window

时间线工具

我们的新时间线工具提供以方案为中心的视图,了解应用程序可用于检查、诊断和改进 WPF 和 Windows Store 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存储项目
    不支持 (Windows使用 JavaScript 或在手机上运行的应用商店项目)

RC 版本中的“诊断工具”窗口具有以下改进:

  • 它可以移动到Visual Studio中的任何窗口位置,并记住调试会话之间的位置和大小
  • 当使用调试 - 附加到进程时,它将显示并显示单个进程的数据 -> 附加到进程
  • 调试 IIS 上运行 ASP.NET 项目时出现
  • 调试 ASP.NET 5 个项目时出现
  • 调试在远程Windows桌面设备上运行的应用时出现
  • 停止调试后,可以查看内存快照
  • 调试器事件 (中断事件仅在调试本机项目时) 可用

我们还为 RC 版本添加了以下新功能:

仅我的代码。 当按 F5 启动调试器时,它将仅显示代码,以便你可以了解性能问题和异常,而不会受到框架和其他代码的干扰。 由于 IntelliTrace 中的这一新代码筛选功能会抑制系统代码并仅公开用户代码,因此可以更轻松地调试“仅我的代码”。

网络诊断工具。 此新的网络诊断工具可帮助你在生成Windows应用商店应用时诊断与网络相关的问题,以及跨所有Windows 10设备运行的通用应用,从Windows Phone到 Xbox 和Windows应用商店。

网络诊断工具记录有关应用的 HTTP 网络操作的信息,包括 HTTP 请求和响应标头、请求和响应有效负载、Cookie 和详细计时信息等。 网络诊断工具还可以帮助回答有关常见方案的问题,例如:

  • 身份验证相关问题 (例如,为什么无法访问资源)
  • 例如,缓存相关问题 (,为什么你未获得最新版本的资源)
  • 运行应用的常见任务时下载的字节数
  • 访问和下载资源时的瓶颈在哪里

若要访问网络工具,请在 2015 Visual Studio中打开“诊断工具”窗口。 在 “调试 ”菜单上,选择“ 启动诊断工具而不调试”。 或者,只需按 Alt+F2。

我们对调试时出现的诊断工具窗口进行了以下改进:

  • 应用中的事件现在显示在单个 IntelliTrace 事件跟踪中,而不是在 IntelliTrace 事件和输出事件跟踪之间拆分。
  • 现在,当程序正在运行时,应用的事件会显示;现在,你不再需要按“全部中断”才能查看事件。
  • 现在可以为代码中设置的跟踪点激活历史调试,以便查看源代码和调用堆栈。
  • 现在,可以在“内存使用情况”图上查看垃圾回收和快照事件,以便查看何时发生托管垃圾回收以及使用内存使用情况工具拍摄快照的时间。

ASP.NET

ASP.NET 4.6

ASP.NET 模型绑定支持任务返回方法

ASP.NET 以前返回的任务的模型绑定方法不受支持,并在运行时(如果已配置)引发异常。 如果使用此类方法部署应用程序,这些方法现在将正确执行。 此更改仅适用于专门面向 .NET 4.6 或更高版本的应用程序。

在 ASP.NET 应用程序中启用 .NET Compiler Platform (“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 标识使用双重身份验证和社交登录。

ASP.NET MVC 5.2.3、网页 3.2.3 和 Web API 5.2.3

我们更新了模板包,以使用 MVC 5.2、网页 3.2 和 Web API 2.2 的最新运行时包。 有关这些包更新的详细信息,请参阅 ASP.NET MVC 5.2.3、网页 3.2.3 和 Web API 5.2.3 发布博客文章。

ASP.NET Web API OData 5.3.1

我们更新了 Web API OData 基架,以使用 web OData 5.3.1 ASP.NET。 有关详细信息,请参阅 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 标识 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 文件中的任何长数组。
  • 重新加载架构上下文菜单。 Visual Studio将缓存从 Internet 下载的架构,即使在重启Visual Studio后,也会使用缓存。 如果知道架构已更改,可以使用上下文菜单“重载架构 Ctrl+Shift+J”重新下载活动 JSON 文档中的当前已用架构,然后在当前文档上立即使用它。
  • package.json/bower.json 的 IntelliSense。 除了证明 package.json 和 bower.json 文件的 IntelliSense 和验证外,Visual Studio还直接在 JSON 编辑器中为 Bower 和 npm 包提供实时 IntelliSense。
  • 重复属性验证。 JSON 编辑器现在将为任何重复属性提供验证。 这有助于捕获 JSON 文件创作的常见问题。
  • 通过完全支持 JSON 架构草案 v4 规范,对 IntelliSense 和 JSON 文件的验证都得到了很大的改进。 现在可以更轻松地识别所需的属性,编辑器可让你轻松地按字母顺序对属性进行排序。 现在,格式化缩小的 JSON 文件将自动取消缩小。
  • 添加了对 SchemaStore.org 的支持,这是一个有用的 JSON 架构文件的开放源代码集合。 这意味着在Visual Studio中打开的任何 JSON 文件在 SchemaStore.org 上关联架构会自动获取 IntelliSense 和验证。
  • 对 JSON 架构作者的支持还得到了更好的架构理智验证的增强。

HTML 编辑器改进

HTML 编辑器更新了用于 Web 标准的 IntelliSense,并引入了以下新功能:

  • 更好的客户端模板格式设置。 HTML 编辑器不再分析或格式化双曲语法 {{...}}。 这是为了确保该语法的内容未处理 HTML,因此无效,也不会尝试使用 HTML 格式化程序正确设置内容的格式。 这非常适合Angular、句柄栏、胡须和其他双卷曲模板语法。
  • 支持自定义元素、聚合物元素和属性。 HTML 编辑器不再验证自定义元素的未知属性,因为不同的框架有许多自定义标记。 未知元素下将不再有波浪线。
  • Web 组件的基本 IntelliSense。 HTML 编辑器具有用于链接 rel=“import”/(>属于 Web 组件标准的一部分)的 IntelliSense<。
  • HTML 元素工具提示。 工具提示为编辑器中的 HTML 元素提供。
  • #region支持。 HTML 编辑器现在支持区域折叠。 还可以使用周围的代码片段来包围当前选择。
  • 任务列表中的 Todo/Hack 注释支持。
  • Angular图标。 前 (两个Angular指令。 <<ng-view>) 和属性 (前的 ng-controller) 现在以 intelliSense 显示Angular徽标,以便轻松识别它们。
  • 启动图标。 HTML 类属性中提供的 IntelliSense 现在显示 Bootstrap 徽标(如果类名称是由 Bootstrap CSS 文件定义的)。

CSS/LESS/Sass 编辑器改进

  • 任务列表中的 Todo/Hack 注释支持。
  • @viewport 修复了 LESS 编辑器。 在 LESS 编辑器中, @viewport 不再显示验证警告。
  • 提供更多代码片段。 CSS/LESS/Sass 编辑器现在提供了更多代码片段,使开发体验更加轻松。
  • 扩展现在可用于 2015 Visual Studio,以编译 LESS、Scss 和 CoffeeScirpt。 可从此处下载。

JSX 编辑器 (React.js)

Visual Studio现在支持具有 .jsx 文件扩展名的任何文件的 JSX 语法。 在键入时,在编辑器中获取 IntelliSense、格式设置和验证。 此编辑器是与负责React.js库的 Facebook 团队协作构建的。

浏览器链接

CSS 会自动同步。 例如,通过使用 LESS/SASS 编译器) 保存 CSS 文件或更改它在外部 (,会导致整个 CSS 文件在浏览器中重新加载。 如果文件无法自动同步,Ctrl + S 会导致自动重新加载,并且应该将其重新加载到良好状态,而无需刷新链接浏览器 (Ctrl + Alt + Enter) 。 可以在工具栏中禁用该功能。

详细了解 ASP.NET

ASP.NET 5

ASP.NET 5 是一个精简且可组合的 .NET 堆栈,用于为云和本地服务器生成现代 Web 应用程序。 它包括以下功能:

  • 新的轻型请求管道
  • 在 IIS 上运行,或在你自己的进程中自承载
  • 基于新的 .NET 执行环境 (DNX) 构建,可在完整.NET Framework或 .NET Core 上运行,这是支持真实并行版本控制的新云优化运行时
  • 在 Windows、Mac 和 Linux 上运行跨平台
  • NuGet所有内容,甚至运行时本身
  • 支持 ASP.NET MVC 6 - Web UI 和 Web API 的统一 Web 框架
  • 基于环境的配置,用于无缝过渡到云
  • 现装的依赖项注入
  • 新的Visual Studio项目系统和高性能工具体验
  • 通过 .NET Foundation GitHub上的所有开放源代码

Visual Studio 2015 包括 5 个 beta5 运行时包 ASP.NET。 这些包仍处于预览状态,不建议在生产环境中使用。 可以在已发布的发行说明中找到有关GitHub上添加的特定增强功能和已修复的问题的所有详细信息。

Visual Studio 2015 年附带了一个新的项目系统和集成工具体验,用于生成 ASP.NET 5 个应用程序和用于处理 DNX 项目。 一些新的工具功能包括:

  • 用于创建基于跨平台 DNX 的项目的新项目系统,这些项目在 Windows、Mac 和 Linux 上运行。
  • 用于使用 MVC 6、标识 3 和 Entity Framework 7 创建 ASP.NET 5 个网站和 Web API 的模板。
  • 用于创建基于 DNX 的类库和控制台应用程序的模板
  • 通过NuGet创建和分发跨平台命令行工具。
  • 使用 .NET 版本管理器从开发人员命令提示符安装和管理不同的 DNX 版本 (DNVM) 。
  • 用于查找、安装和还原NuGet包的集成体验。
  • 使用 Ctrl + 。 若要查找并安装NuGet包,请在 C# 代码中查找和安装未解析的符号。
  • 使用 NPM、Grunt/Gulp 和 Bower 进行客户端 Web 开发的集成工具,包括包管理集成和新的任务运行程序资源管理器。
  • 使用“运行”按钮下拉菜单直接从Visual Studio内运行项目级 DNX 命令。
  • 创建自定义启动配置文件,用于启动IIS Express,包括自定义环境变量的设置。
  • 从面向多个框架(包括 .NET Core)的单个项目中生成NuGet包。
  • 从单个项目为多个目标框架生成时,组合了 IntelliSense。
  • ASP.NET 5(如标记帮助程序)引入的新 Razor 功能现在在 IntelliSense 和语法突出显示方面都亮起。

此版本中的新功能

  • 打开需要 DNX 版本的项目时,Visual Studio将提示安装所需的 DNX 版本。
  • 现在,可以使用“添加引用”对话框添加引用以丢失程序集。
  • ASP.NET 5 Web 应用程序模板现在支持用于身份验证的工作和学校帐户选项。
  • “新建 ASP.NET Project”对话框中的“云中的主机”选项现在可用于 ASP.NET 5 个项目。
  • 使用服务器资源管理器对 azure 上托管的 ASP.NET 5 个项目进行 approot 下的文件的远程编辑。

有关更多详细信息,请参阅有关GitHub的工具发行说明.NET Web 开发和工具博客

Azure 工具

帐户选取器集成

帐户选取器在整个 Web 发布和 Web 应用创建/选择对话框中使用,以启用一键式访问多个帐户。 可以登录一次到多个帐户,并在发布资源时快速轻松地访问选择单个帐户。

API Apps

API 应用预览模板、发布支持和服务器资源管理器可见性已全部迁移到 2015 Visual Studio。 现在可以使用最新版本的 Visual Studio 创建和部署 Azure API 应用。 此外,我们改进了 Swagger 输出功能,以便 API 应用开发人员能够更好地支持从 ASP.NET Web API 动态生成的 Swagger。

WebJobs 工具

现在,可以通过以下方式在 Azure 网站内的服务器资源管理器 WebJob 节点上控制 Web 作业:

  • 服务器资源管理器中网站节点下方的 WebJobs 节点。
  • 从服务器资源管理器启动/停止连续 Web 作业。
  • 从服务器资源管理器运行按需作业或计划作业。
  • 从服务器资源管理器查看 WebJob 仪表板。
  • “查看仪表板”上下文菜单;使用它转到 Azure 网站的 WebJob 仪表板。

WebJobs SDK

Azure WebJob 项目模板预安装了 WebJobs SDK。

NuGet

NuGet 2.8.3

我们添加了对 DevExtreme 项目和 BizTalkProject 2.8.3 的支持。 有关详细信息,请参阅 NuGet 2.8.3 发行说明

NuGet 程序包管理器

我们更新了 NuGet Package Manger 用户界面,以便更轻松地管理 2015 Visual Studio整个解决方案中的包。 通过项目中安装的包的单个视图,可以筛选NuGet库中的可用包列表、已安装的包以及具有可用更新的包。

NuGet 库

我们改进了具有新 Web 服务和集成客户端的 NuGet 库的性能。 More details about NuGet updates can be found at http://docs.nuget.org.

JavaScript

JavaScript 编辑器支持

我们更新了 JavaScript 编辑器,使其更加有用。

  • AngularJS 的工具支持。 现在,使用 AngularJS 编写应用时,IntelliSense 为Angular控制器、服务、工厂、指令和动画提供了建议。
  • 支持从 ES6 版本的 JavaScript) (的新 JavaScript 语言功能,包括类、箭头函数和模板字符串。
  • 导航栏共享项目支持。 现在,可以将共享项目中的导航栏用于Windows通用应用项目。
  • 新的导航栏。 通过新的导航栏,可以在 JavaScript 源代码中的主要元素之间更轻松地导航。
  • JSDoc 注释。 使用 IntelliSense 时,现在会显示以 JSDoc 格式编写的文档注释。 (有关 JSDoc 注释的详细信息,请参阅 http://usejsdoc.org.)
  • 对象文本 IntelliSense。 JavaScript 编辑器提供了将对象文本传递给使用 JSDoc 记录的函数时的 IntelliSense 建议。
  • 展开/折叠。 可以展开和折叠 JavaScript 代码的更多部分,包括多行注释、多行数组和所有多行块。
  • 任务列表支持。 可以使用任务列表功能查看 JavaScript 代码中的任务注释,例如 // TODO。

TypeScript

Visual Studio 2015 包括 TypeScript 工具的 1.5 版本。 此版本添加了对 ECMAScript 6(包括模块、析构)的丰富支持。的、分布、符号、计算属性、ES3/ES5 的 let/const 和 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 (以前称为“智能单元测试”) 的详细信息,请参阅 使用 IntelliTest 为代码生成单元测试

应用程序Insights

除了各种性能增强功能和 bug 修复,应用程序Insights现在包含以下更新:

  • Visual Studio中的应用程序Insights工具现在是Visual Studio连接服务的一部分。 (若要添加应用程序Insights,请打开“连接服务”对话框,然后从 services 列表中选择应用程序Insights。)
  • 此更新与应用程序Insights添加到 Visual Studio 2013 Update 3 或 Visual Studio 2013 Update 4 中的项目完全兼容。
  • ASP.NET 5 名开发人员、Windows 10通用应用开发人员和 Windows 8.1 通用应用开发人员可以直接从 Visual Studio 将应用程序Insights添加到其项目中。
  • Windows 10通用应用开发人员无需登录到 Azure 即可添加应用程序Insights SDK;相反,他们可以通过在Visual Studio中使用应用程序Insights工具添加该应用程序。
  • 由于应用程序Insights在 Visual Studio 中使用全局帐户选取器,因此可以在Visual Studio中使用同一帐户。
  • 现在,可以从Project的服务引用文件夹查看应用程序Insights的“入门”信息;只需单击入门文件夹即可。

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

Release Management

借助此功能,可以改进管理应用发布的过程,将应用部署到每个单独阶段的特定环境,并为每个步骤审批管理流程中的步骤。 可以使用适用于 Visual Studio Online 的 Release Management 服务来设置从签入到部署的发布管道,而无需安装和维护本地发布管理服务器。

Release Management的更新版本适用于 2015 Visual Studio。 这非常类似于现有的 Visual Studio Release Management 2013,但在以下方面提供改进的性能:

  • 发布管理客户端启动页,其中显示了发布过程和通知的概述。
  • 通过其他缓存在其他发布管理客户端页中呈现和交互。
  • Active Directory 和 TFS 安全组的同步。
  • 创建新版本。

现在可以为 2015 年 Team Foundation Server 中包含的新生成系统的生成定义定义。 定义组件时,还可以使用与 (相同的组件名称或包含) 生成定义中已发布项目的名称来指定组件的项目。

Git 版本控制

使用分支更容易,并了解历史记录中的更改如何变化。

分支

可以通过指定前缀以分层方式组织分支:

本地分支和远程分支 (包括未在本地创建) 的分支分别显示在树视图中。

Git branches

从 RC 开始,我们修改了“分支”页:

  • 现在可以从远程分支以及本地分支进行合并。
  • 你合并到的分支现在已固定到当前已签出的分支。
  • 现在可以从当前分支重新基于任何本地或远程分支。
  • 可以通过双击远程分支或右键单击远程分支,然后选择“签出”。

远程管理

现在可以在团队资源管理器中配置 Git 远程。 在存储库设置中,有一个新的“远程”部分显示当前配置的远程,可在其中添加、编辑或删除远程。 例如,如果需要更改源远程的 URL,可以单击“编辑”并更改提取和/或推送 URL。

详细历史记录

现在可以查看提交在历史记录中的分歧。

Detailed view of history

在图中,合并提交为灰色,非合并提交为更亮的颜色。 可以在简单视图和详细视图之间来回切换。 如果图形被截断,则可以调整其大小。

我们在 RC 版本中对 History 图形进行了多项更新:

  • 我们添加了一个工具栏,用于控制在图形中看到的详细信息级别。
  • 我们现在突出显示历史记录行,以指示从当前所选提交访问哪些提交。
  • 如果本地分支和远程分支不同,我们现在会显示这两行历史记录。 重新设置本地分支后,这尤其有用。

团队资源管理器中的存储库

我们现在支持团队资源管理器中的存储库。 若要启动存储库,请单击“分支”页上的“存储库”浮出控件,或右键单击分支并选择“Rebase On...”

VSO 存储库

在创建 VSO 存储库时,我们改进了“入门”体验,接下来会进行更多更改来简化新存储库的创建。 对于 RC,我们做了一个小更改,以便更轻松地将新代码添加到现有存储库:如果使用团队资源管理器连接到任何存储库,请选择“文件>新建”Project,对话框现在将从该连接的存储库的根目录开始。

发布到 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

单一登录

与当今许多其他开发人员一样,在开发应用程序时,可以利用多个云服务。 例如,你可能已将云后端添加到应用程序以存储数据、将源代码存储在云中或将应用程序发布到存储区。

过去,每个服务都需要单独的登录过程,每个服务单独管理登录用户状态。

在此版本中,我们将减少访问Visual Studio中许多集成云服务所需的身份验证提示。 现在,当你在Visual Studio中向第一个云服务进行身份验证时,我们将自动登录,或减少其他集成云服务的身份验证提示。

CodeLens

了解有关代码的详细信息,同时专注于编辑器中的工作。 查找代码引用、对代码的更改、相关的 TFS 项和单元测试 – 所有这些都无需远离代码。

在此版本中,我们已将 CodeLens“作者”指示器替换为新的“团队活动时间线”和“作者和更改”历史记录指示器。

  • 团队活动时间线指示器显示最后一个作者,以及上次更改的时间。 选择此指示器将打开 团队活动视图,可在其中查找代码更改中的模式。 这有助于评估随时间变化的影响。
  • 作者和更改 ”指示器显示已更改文件的作者数和更改数。 选择此指示器将打开所有更改、更改详细信息以及链接的列表,以获取详细信息并查看以前的版本。

当代码托管在 Team Foundation Server 和 Visual Studio Online) 和 Git 存储库中的Team Foundation 版本控制 (中时,指示器中的所有信息都可用。 在 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

在 2015 Visual Studio的早期预览版和候选版本中,我们进行了更改,允许你:

  • 获取改进的从上到下的关系图。 对于中型到大型 Visual Studio 解决方案,现在可以使用简化的体系结构菜单来获取更有用的解决方案代码图。 解决方案的程序集按解决方案文件夹进行分组,因此你可以在上下文中查看它们,并利用构建解决方案时所做的工作。 将立即看到项目和程序集引用,然后显示链接类型。 此外,解决方案外部的程序集以更紧凑的方式进行组合。
  • 更快速地获取反应式代码图。 拖放操作会产生即时结果,节点之间的链接会更快创建,而不会影响后续用户启动的操作,例如扩展节点或请求更多节点。 具体而言,“跳过重新生成解决方案”选项可让你在创建和编辑图表时获得更好的性能。 在不生成解决方案的情况下创建代码映射时,现在会处理所有角情况(如非生成程序集)。
  • 筛选代码元素节点和组。 通过根据代码元素的类别显示或隐藏代码元素,以及通过按解决方案文件夹、程序集、命名空间、项目文件夹和类型对代码元素进行组合,可以快速整理代码图。
  • 筛选关系以使关系图更易于阅读。 这包括跨组链接,这使得使用筛选器窗口比以前版本中的侵入性要小。
  • “深入了解依赖项链接”将筛选器考虑在内。 展开关系图以了解某个依赖项链接的贡献时,可以获得有用且清晰的关系图。 关系图不太混乱,它考虑到所选的链接筛选选项。
  • 根据类视图和对象浏览器创建关系图。 从类视图和对象浏览器窗口将文件和程序集拖放到新的代码图或现有代码图中。

总的来说,我们对代码映射所做的改进的综合列表包括:

  • 测试项目的风格不一样且可以进行筛选。 现在可以快速识别地图上的测试项目,因为它们的样式不同。 此外,还可以筛选出它们,以便可以专注于应用程序的工作代码。
  • 代码元素随上下文一起添加。 由于关系图现在显示其上下文 (程序集和解决方案文件夹,你可以根据需要) 筛选出该文件夹,因此在从解决方案资源管理器、类视图和对象浏览器拖放代码元素时,或者在解决方案资源管理器中选择元素并选择代码映射上显示时,可以获得更有用的关系图。
  • 简化的外部依赖项链接。 依赖项链接不再表示来自 System.Object、System.ValueType、System.Enum 和 System.Delegate 的继承,这样一来,在代码图中查看外部依赖项变得更加方便。

此版本中的其他设计和建模更改

  • 层关系图。 使用类视图和对象浏览器更新这些关系图。 为满足软件设计要求,使用层关系图来描述软件所需的依赖项。 通过查找不符合这些约束的代码以及使用此基线验证未来代码,使代码与此设计保持一致。
  • UML 关系图。 不再能够根据代码创建 UML 类图和序列图。 但是,仍可以使用新的 UML 元素创建这些关系图。
  • 体系结构资源管理器。 不再能够使用体系结构资源管理器创建关系图。 但是,仍可以使用解决方案资源管理器。

XAML 语言服务

我们在 .NET Compiler Platform (“Roslyn”) 之上重新生成 XAML 语言服务,以便我们可以为你提供快速、可靠且包含 IntelliSense 的新式 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 Update 5 并配置测试控制器。

测试控制器与 TFS 2015 和 TFS 2013 兼容。 但是,Visual Studio 2015 中的负载测试支持不属于代理,因此建议为 Visual Studio 2013 Update 5 安装代理并配置控制器。

连接的服务

使用 Visual Studio 2015 中的新“添加连接服务”对话框,可以轻松地将应用程序连接到 Azure 应用程序 InsightsAzure 存储Azure 移动服务、Office 365 和 Salesforce。 若要添加连接服务,请右键单击“引用”节点,然后选择“ 添加连接服务...”

Add a Connected Service

“添加连接服务”对话框包含当前安装的所有连接服务提供商,并提供获取有关提供程序的详细信息、它使用的技术以及当前项目中是否受支持的方法。 其他提供程序可以使用 “查找更多服务...” 链接在“扩展和更新”库中发现。 “ 添加连接服务 ”对话框也是可扩展的。 如果你是服务开发人员,则可以使用 我们的连接服务 SDK 构建一个提供程序,以提高服务的可发现性和推动服务的使用。

企业单一登录

业务应用程序的常见任务是使用 Azure Active Directory 配置企业单一登录的应用程序。 现在,可以通过右键单击应用程序并选择“配置Azure AD 身份验证...”,在应用程序的构造过程中随时轻松执行此操作。这将启动类似于“添加连接服务”体验的向导,指导你完成配置应用程序以使用 Active Directory 的过程。 在向导中指定Active Directory 域会将应用程序注册到该 Active Directory,并将应用程序配置为提示登录。

Specify an Active Directory Domain in the wizard

IIS 10 Express for Visual Studio 2015 RC

RC 版本包括新版本的 IIS 10 Express;其新功能包括对 HTTP 2.0 的支持,以及与 Windows 10 同步位。

其他更改:Bug 修复和已知问题

有关该版本中的技术改进、Bug 修复和已知问题的完整说明,请参阅以下知识库 (KB) 文章。

用于 .NET 的 Azure SDK 2.7

Azure SDK 2.7 是 2015 Visual Studio 最终版本支持的第一个 Azure SDK。 下面是有助于改进 Azure 开发体验的一些新功能和更新:

  • Visual Studio 2015 的登录改进:适用于 Visual Studio 2015 的 Azure SDK 2.7 现在支持通过基于角色的访问控制、云解决方案提供商、DreamSpark 和其他帐户和订阅类型访问 Azure 的帐户。
  • 适用于 Visual Studio 2015 的云资源管理器:Azure SDK 2.7 包括适用于 Visual Studio 2015 的云资源管理器,提供高性能、可缩放的工具,用于搜索和查看 Azure 资源、检查其属性,以及从Visual Studio内执行关键开发人员和诊断操作。
  • Visual Studio 2015 中针对虚拟机进行远程调试:使用 Azure 资源管理器 堆栈创建的虚拟机上运行的远程调试进程。
  • Azure 资源管理器工具:我们更新了 Azure 资源管理器 工具,以便更轻松地处理新的Visual Studio联机生成任务。 此外,我们还添加了对使用基于角色的 访问控制 (RBAC) 和新订阅类型的改进。
  • Azure 应用服务工具:App 服务工具现已在 2015 Visual Studio推出。 此更新为 Web 应用、API 应用的 Swagger 生成改进以及多个帐户登录支持带来了远程分析支持。 App 服务工具现在对所有功能使用 Azure 资源管理 API,并支持 DreamSpark 和云服务提供商。 我们还在此更新中添加了对 Visual Studio 2015 开发人员的 Azure API 应用预览版的支持。
  • HDInsight 工具:在此版本中,我们添加了 Tez 上运行的 Hive 作业的执行图视图,扩展了 Hive DML IntelliSense 支持,添加了 SCP.Net NuGet,升级了 Storm 模板,并为 Pig 添加了新模板。
  • Azure 数据工厂工具:Azure SDK 中现在包括Azure 数据工厂工具。 我们的目标是简化Azure 数据工厂创作体验,并消除载入和部署挑战。 Azure 数据工厂工具中的定制体验和丰富的工具可提高新用户和高级用户的工作效率和效率。 通过此版本,客户可以使用Visual Studio接口以交互方式创作和部署数据管道。 有关这些工具的详细信息,请参阅Azure 数据工厂博客文章

Windows 10 SDK

此工具Visual Studio 2015 发布更新,以提供针对运行通用 Windows 平台的任何Windows设备生成、调试和提交应用所需的一切。 亮点包括:

  • 使用所选语言(C#、VB、C++ 或 JS)创建通用Windows应用,并将其部署到Windows 10设备。
  • 新的调试和诊断工具,包括 XAML 应用和网络探查器的 UI 调试工具。
  • 创建应用包以提交到统一应用商店。
  • 现在,Windows 10 移动版 Emulator利用电脑的图形硬件 (GPU) ,使屏幕呈现速度更快。 它使用 Microsoft RemoteFx 提供更快且响应更快速的调试环境。
  • 现在,可以使用Windows 10 移动版 Emulator中的 NFC 模拟功能来生成和测试已启用 NFC/邻近感应的通用应用。
  • 丰富的 XAML 设计器支持,用于创建专为设备定制的用户体验。
  • .NET Native云中 .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 进行游戏开发

适用于 Visual Studio 1.1 (RC) 的 Node.js 工具

更新时间:2021 年 10 月:

安全更新 Apache Cordova Node.js Visual Studio Tools

将Visual Studio转换为功能强大的Node.js开发环境。

  • 免费且开源
  • 智能代码完成
  • 高级调试和分析
  • 与其他Visual Studio功能和第三方工具集成
  • Node.js、io.js、JavaScript、TypeScript、HTML、CSS 和 JSON 支持

详细了解 Node.js Tools for Visual Studio

Office 2015 Visual Studio开发人员工具

使用 Office 365 API 进行开发

  • Office 365 API 工具使用 Visual Studio 2015 中的新连接服务,为开发人员提供Office 365 API 集成到项目中的引导体验。
  • 现在,只需在连接服务向导中选择“使用Azure AD配置单一Sign-On”,即可让Office 365 API 工具在 ASP.NET MVC Web 应用程序中自动配置单Sign-On。
  • 将Office 365 API 集成到项目中时,Office 365 API 工具现在从 NuGet.org 下载并安装最新版本的 Office 365 API 客户端库NuGet包。

SharePoint加载项开发

  • 创建SharePoint外接程序时,工具会将目标SharePoint版本设置为在项目创建向导中指定的调试SharePoint网站的版本。 向导显示所选SharePoint版本,并允许重写该默认值。 可以使用Project设计器中的“SharePoint”选项卡创建项目后更改目标版本。
  • 当目标版本SharePoint Online 时,这些工具现在会安装包含 SharePoint Online 客户端对象模型 (SPO-CSOM) 到项目中的NuGet包。 这些工具向项目添加对 SharePoint Online CSOM 程序集的引用。 这些工具不再依赖于 Microsoft 下载中心中发布的 SharePoint Online 客户端组件 SDK。 这使你能够更轻松地使用 Visual Studio 中的NuGet 程序包管理器来升级 CSOM 程序集。
  • 现在,可以使用 SAS 或 ACS 连接字符串进行Microsoft Azure 服务总线调试和排查SharePoint加载项中的远程事件接收器问题。

Office加载项开发

  • 在此版本中,工具始终使用 v1.1 清单而不是 v1.0 为 Office 创建新应用,以便应用能够支持 Office Web 应用和 Office 2013 客户端中的新功能。 对于使用 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 数据中心执行基于云的负载测试。

基于云的负载测试现在支持高级代理诊断

对于此版本,我们添加了对基于云的负载测试执行测试代理诊断的功能。

云中的调试很困难,因为计算机不可访问,因此,从测试代理收集日志或任何其他信息并不总是可能的。 不过,使用高级代理诊断,可以从测试代理收集日志,并将它们附加到云负载测试结果。