导读:之前Visual Studio 11开发者预览版 发布的消息收到了众多技术人员的关注和讨论。日前VS2011最新的Beta版本在巴塞罗那正式推出。为让更多人了解相关内容,以及与VS2010所能支持的项目类型比较,CSDN软件研发频道编译了Microsoft Visual Studio全球最有价值专家Mark Michaelis眼中的Visual Studio 11 九大新功能。
- 项目兼容(Project Compatibility)
- 高效的IDE(IDE Productivity Improvements)
- 随处搜索(Search Everywhere)
- 工具栏升级(Toolbar Improvements)
- 附加工具(Additional Tooling)
- 多核处理器支持(Multiple-Monitor Support )
- 性能提升(Performance Enhancements )
- 新的项目类型(New Project Types)
- 可扩展性(Extensibility )
1.项目兼容(Project Compatibility)
Visual Studio2011的向下兼容性让你不再犹豫升级你的Visual Studio2010。过去每次升级Visual Studio总会修改你打开的项目文件,有时候甚至只是修改一下版本号,就让你的项目不再被兼容,虽然在个人使用时并没有什么大问题,但在团队工作时却会造成大麻烦,只能让整个团队同时升级到相同版本。而现在,当你把你的Visual Studio 2010 sp1升级到Visual Studio 11时,不再会对团队造成影响,因为Visual Studio 11使用的.NET4.5框架不会修改旧的项目文件。虽然仅仅支持Visual Studio 2010 sp1互通,却仍非常实用。
2.更高效的IDE(IDE Productivity Improvements)
不管你是使用哪种编程语言编程,相信你都会很快注意到这些高效的功能,也许你会感到很熟悉,因为很多功能在集成了Productivity Power Tools扩展的Visual Studio 2010中已经看到。或者你没有试过Power Tools,但是使用过Eclipse,相信对此也会非常熟悉。首先,解决方案管理器有了很大的修改,它不再只是文件的索引,它可以直接在解决方案管理器中查看对象的结构。比如,你可以展开一个CS类来直接查看它的成员并且直接打开文件相应位置。在类成员上右键就会出来这个成员的call hierarchy菜单,一般来说,这个菜单会包括它的基类、衍生类以及在项目中被引用情况,通过点击菜单中不同的选项来查看或编辑文件相应的位置。正如你所想的那样,双击要查看的节点就会打开节点所对应的文件位置。强大的新的解决方案管理器还提供了预览功能。点击解决方案管理器的节点就会打开一个文档的预览。这样,当你只是想预览一些文件时就只会在一个公共Tab(标签页)中进行预览而不会打开过多的无用Tab。当然你也可以点击预览Tab的Promote按钮或者对它进行手动编辑从而将它变成普通Tab。
3.Search Everywhere
在Visual Studio2010中虽然已经集成了简单的搜索功能,作为前三受欢迎的功能,在Visual Studio11中必然会着重优化。
目前已知提供搜索功能的部分:解决方案管理器、扩展管理器、快速查找功能、新的测试管理器、错误列表、并行监控、工具箱、TFS(Team Foundation Server)团队项目、快速执行Visual Studio命令。
4.工具栏的改进(Toolbar Improvements )
最显眼的莫过于增加了快速启动搜索框,可以直接输入快速命令。只要键入关键字就会在下拉列表中提示可用命令。甚至可以在其中找到工具菜单。
5.附加工具(Additional Tooling)
Visual Studio新增了几项新工具都非常引人注目。Visual Studio 11 IDE集成了Expression Blend,极大方便了XAML相关应用的开发。此外Visual Studio 2011提供了一个崭新的代码克隆分析工具,相信VSS的老用户会非常熟悉,但是这个新版本不仅集成在Visual Studio 11中,而且功能相当完备。
6.支持多核处理(Multiple-Monitor Support)
Visual Studio 2010虽然已经开始支持多核处理,但仍有不少问题。Visual Studio 2011提供了强有力的多核支持。和新的IE一样,当你把一个Tab拖到另一个核心上时,它会自动创建一个IDE窗口。如果你关闭再打开一个窗口,它还能很好地恢复原来的状态。
7.性能优化(Performance Enhancements)
Visual Studio 2010中有一个没怎么引起注意过的多项目并行Build功能,但只局限于C++,现在在Visual Studio 11中,已经不用再受编程语言约束了,不论你是用什么语言(Visual Studio 11支持的)开发的,都可以畅快地体验并行Build的效率。从此可以在“最大并行数”中来管理最大并行项目数。Visual Studio 11中msbuild.exe不复存在,而且由于Visual Studio 11中Build过程也不再在Devenv.exe进程中进行,所以Visual Studio 11编译时还将会获得更好的UI反应和更低的内存占用。Visual Studio 11中,最大同时进行的Build数默认是等于CPU核心数的,不建议你手动修改这个值,因为可能会造成不必要的矛盾的编译结果。
8.新的项目类型(New Project Types)
从专业的角度来看是否应该从一款Visual Studio 转向另一版本的Visual Studio ,很重要的一点就是比较项目类型。新的Metro风格的项目毫无疑问是Visual Studio 11的主推功能。包括Application, Grid Application, Split Application, Class Library 和Unit Test Library。另外一个 Visual Studio 11 就是JavaScript,包括Blank Application, Fixed Layout Application, Grid Application, Navigation Application 和Split Application。当然,这些新功能只能在Windows8环境下使用。值得注意的是,这一版本还是支持窗口程序的,Silver Light也依然存在,仍然是Visual Studio所支持的平台之一。还应该注意到是,Visual Studio 11甚至包含了便携库,这允许跨平台的Silver Light和标准.NET的跨平台开发。另一个很具代表性的特色就是,所以的新功能都支持C++开发,使用C++来开发Metro界面。但是,Visual Studio 11将不再支持.NET2.0以下平台,很较早的程序需要重新。
其它具体的项目类型的支持差别请查看文章所附的大图。
9.可扩展性(Extensibility )
- Visual Studio 11提供了相当多的插件来帮助更简单地操作。
- Visual Studio Package: 提供旧版本Visual Studio 视图的插件
- C#/Visual Basic Item and Project Templates: 定制的文档和项目模板
- Editor Classifier: 自定义文本高亮支持
- Editor Margin: 支持自定义编辑器"margins" UI
- Editor Text Adornment: 支持编辑器自定义图片装饰
- Editor Viewport Adornment: 支持画板的自定义图片美化
- VSIX Project: Visual Studio 11的可扩展性在Visual Studio Gallery中的体现
- Windows Presentation Foundation/Windows Forms Toolbox Control: 客户端UI的自定义控制
Visual Studio 11还提供了新的API接口用来开发插件。和之前透露的一样,包括可以使用第三方单元测试工具(XUnit and NUnit)和定制的代码分析工具。这是微软开放IDE扩展的一个信号,特别是面向开源工具。
微软在做了众多改进后却删减了一个相当重要的特性——宏!根据微软的报告,因为只有很少的的用户使用过宏,所以Visual Studio 2011 中并不会默认引入宏,但Visual Studio 11将可以通过扩展包引入自定义功能。
从开发者的角度来看,我们希望Visual Studio 能够很好地改善开发效率,在这方面,Visual Studio 11并没有明显的改进。但在其他地方,Visual Studio 11做了很多改进,比如:SearchEverywhere、真正的多核支持、先进的代码克隆分析工具,以及解决方案管理器。明确地把重构过的测试功能也集成了进来,并且把测试窗口全都统一到同一个单元测试资源管理器中。
下面是Visual Studio 11和Visual Studio2010支持的项目类型的详细比较:
关于作者:作者Mark Michaelis 是IntelliTechture的首席设计师和培训师。自1996年,他分别获得微软C#/Visual Studio /WindowsSDK方面全球最有价值专家。2007年,他成为微软的区域总监。