如何评价 Visual Studio 2017?

[图片] https://www.visualstudio.com/vs/visual-studio-2017-rc/
关注者
808
被浏览
261,946

24 个回答

不邀自来

从第一个Preview起就保持关注,听说昨天要开Connect2016了,估计了一下是时候发RC了,于是小睡一会醒了发现果然发布了。

总体评价:本次更新非常着重 现代化 设计,继续在宇宙第一的位置上领跑,并将 官方逼死同人 进行了下去。

好处:新功能实用性都非常强

坏处:把项目升级到2017会对以前版本的VS兼容性很差,必须通知团队中的所有人换新IDE

容我对着Release Note详细道来:

Visual Studio 2017 发行说明

全新安装体验

上一次安装程序大更新还是在2010到2012的时候,这次更新就是以更现代、模块化为主题。

顺便这次也不再强制安装VB和C#,对于需要用VS写其它语言的用户应该是个好消息。

IDE性能改进

不仅小项目,大项目也有所改进(比如打开时间为分钟级的Roslyn解决方案),这一项以前曾饱受诟病。

起始页重新设计

最近使用列表更好用了(不容易点错了),同时新闻不再占那么大版面了,很注重使用的设计。

改进的代码导航与搜索

嗯,这两个功能我是知道有插件实现了的,官方逼死同人+1

不再需要对着长长的引用列表懵逼了

EditorConfig支持:

官方逼死同人+2,前几天我还在Team里说大家都去安装一下EditorConfig插件呢。

插件系统更新:

  • 插件对功能的依赖:随着高度模块化安装,也是需要的
  • 批量安装、云记录插件喜好:终于迈向现代了
  • 使用vsix在更多地方安装文件:由于只有vsix格式的插件才能完全在扩展管理器内操作,这一更新等于优化了扩展管理工作

解决方案系统更新:

  • 允许打开文件夹:不再强制「每个项目必须有一个项目描述文件」的思维
  • 轻量级加载:卡在项目加载这种事情我也遇到过,比如想打开并立刻编译的情形,应该会有所改善
    增加更多语言支持:
  • 仅支持语法着色和自动完成:
    • Bat、Clojure、CoffeeScript、CSS、Docker、F#、Groovy、INI、Jade、Javadoc、JSON、LESS、LUA、Make、Markdown ++、Objective-C、Perl、PowerShell、Python、Rust、ShaderLab、SQL、Visual Basic .NET、YAML。
  • 支持代码段(除了语法着色和自动完成以外):
    • CMake、C++、C#、Go、Groovy、HTML、Java、Javadoc、JavaScript、Lua、Perl、PHP、R、Ruby、Shellscript、Swift、XML。
  • 支持导航到(除了语法着色和自动完成以外):
    • C++、C#、Go、Java、JavaScript、PHP、TypeScript、Visual Basic。

(求求你们不要再把VS支持说成C#的优点了,Java在VS的文本编辑器里可是接近一等公民的待遇)

ASP.NET 项目概述页更新:

不再那么古典了

体系结构依赖关系的实时认证:

将准则性的东西交给IDE去检查,自然是极好的。

实时单元测试:

更新:了解了一下其行为

进行改动之后不再需要手动编译->运行单元测试,IDE会自动运行涉及到的单元测试,进一步把一些检查从编译器提前到文本编辑期。

(对于那种编译时间都超长的项目应该是挺有用的)

新的vsdevcmd.bat:

我就一句话:请出PowerShell版本,谢谢

运行到指定行:

这个功能记得VB6都有,居然到现在才加上

「附加到进程」更新:

有一个插件专门用来搞这个的,逼死+3

新的异常查看器:

缓解了在一个长链调用中突然蹦出来一个NullReferenceException时的那种无力感。

IntelliTrace事件筛选:

挺好的,加强了现有的分类功能,毕竟记录的事件不少,而真正有用的其实没多少。

性能查看器更新:

结合了函数调用关系图,看起来更直观了。

可以分析外部代码的开销、直接预览项目代码,免除了找到目标之后翻看代码的工作。

Chrome调试支持:

支不支持Edge的来着……

C++编译器例行更新:

好像也没什么好说的啊,似乎也没有什么特别大的新闻

C++ Core Check代码分析:

isocpp/CppCoreGuidelines

说实话我开始觉得这个挺重要,能够在很大程度上减少「烂C++代码的数量」

然而又想了想,对于那种连Warning都不看的人,他们会去用这个分析吗

顺便求其他编译器的用户来说一下这个功能的支持情况

C++ IDE:

一大堆实验性功能现在变成默认开启了

内置的cmake支持

C#7和VB14:

嗯GitHub上的Roslyn看的我已经没有新鲜感了,顺便还有一种「怎么还有这么多功能需要拖到下一个版本」的感觉

新增的重构功能:

官方逼死同人+4,真的有一大堆插件在干这个

代码风格支持增强:

我跟你们说,除了大括号换行以外,C#按照this、var、命名大小写的用法又能分出不少教派出来。

话说这个东西希望有一个「每项目」的设置文件来支持一下,在参与不同的项目的时候可能会用到不同的风格。

更新:这些设置现在可以写在EditorConfig里了

F# 4.1:

看出来还是在F#上下了不少心思的。

Python、R、TS、JS支持:

「听说你们喜欢这些语言?你仍然可以使用VS啊」

XAML编辑器大增强:

手写XAML党大!欢!喜!

我跟你们说,手写几百行的XAML的时候,唯一的重构工具是查找并替换,我的感受是累感不爱的

UWP ToolChain更新:

呃,这些在VS2015Update3里都发布过了吧

NuGet 4.0:

新项目兼容性down,不过为了消灭掉某些历史遗留问题,去掉少量兼容性我觉得是值的。

总之:如果这些功能在一年前就发布了,我会在这一年干的事情中减少非常多了麻烦事。等RTM发布第一时间更新好了。

补充:VS的插件Gallery页面也一起更新了

旧:

新:

几个月前我在专栏文章里就提到了Visual Studio "15"的策略性改变

知乎专栏

。这次终于完成了IDE和编译器分开更新。你问我支持不支持我肯定说支持的了。甚至当时想给cmake写一个生成器,但发现有人手比我快,在我要提交前一天就提交了。