本节书摘来自异步社区出版社《Visual C++ 2012 开发权威指南》一书中的第1章,第1.4节,作者: 尹成 , 朱景尧 , 孙明龙 , 胡耀文,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.4 Visual Studio 2012新特性
1.4.1 Visual Studio 2012(VS2012)的六大技术特点
(1)VS2012和Visual Studio 2010(VS2010)相比,最大的新特性莫过于对Windows 8 Metro开发的支持。Metro天生为云端而生,简洁、数字化、内容优于形式、强调交互的设计已经成为未来的趋势。不过对于开发者而言,要想使用这项新功能,必须要安装Windows 8 RP版。该版本中包含了新的Metro应用程序模板,增加了JavaScript功能、一个新的动画库,并提升了使用XAML的Metro应用程序的性能。
(2)VS 2012 RC在界面上,比Beta版更容易使用,彩色的图标和按照开发、运行、调试等环境区分的颜色方案让人爱不释手。
(3)VS 2012集成了ASP.NET MVC 4,全面支持移动和HTML5,WF 4.5相比WF 4,更加成熟,期待已久的状态及工作流回来了,更棒的是,现在它的设计器已经支持C#表达式(之前只能用VB.NET)。
(4)VS 2012支持.NET 4.5,和.NET 4.0相比,.NET 4.5更多的是完善和改进,.NET 4.5也是Windows RT被提出来的首个框架库,.NET获得了和Windows API同等的待遇。
(5)VS 2012+TFS 2012实现了更好的生命周期管理,可以这么说,VS 2012不仅是开发工具,也是团队的管理信息系统。
(6)VS 2012对系统资源的消耗并不大,不过需要Windows 7、Windows 8的支持。
1.4.2 Visual Studio 2012九大新功能
项目兼容(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 Studio 2012的向下兼容性让不再犹豫升级的Visual Studio 2011。过去每次升级Visual Studio总会修改打开的项目文件,有时候甚至只是修改一下版本号,就让的项目不再被兼容,虽然在个人使用时并没有什么大问题,但在团队工作时却会造成大麻烦,只能让整个团队同时升级到相同版本。而现在,当把Visual Studio 2011 sp1升级到Visual Studio 2012时,不再会对团队造成影响,因为Visual Studio 2012使用的.NET4.5框架不会修改旧的项目文件。虽然仅仅支持Visual Studio 2011 sp1互通,却仍非常实用。
2.更高效的IDE(IDE Productivity Improvements)
不管是使用哪种编程语言编程,相信都会很快注意到这些高效的功能,也许会感到很熟悉,因为很多功能在集成了Productivity Power Tools扩展的Visual Studio 2012中已经看到。或者没有试过Power Tools,但是使用过Eclipse,相信对此也会非常熟悉。首先,解决方案管理器有了很大的修改,它不再只是文件的索引,它可以直接在解决方案管理器中查看对象的结构。例如,可以展开一个CS类来直接查看它的成员并且直接打开文件相应位置。在类成员上右键就会出来这个成员的call hierarchy菜单,一般来说,这个菜单会包括它的基类、衍生类以及在项目中被引用情况,通过单击菜单中不同的选项来查看或编辑文件相应的位置。正如所想的那样,双击要查看的结点就会打开结点所对应的文件位置。强大的新的解决方案管理器还提供了预览功能。单击解决方案管理器的结点就会打开一个文档的预览。这样,当只是想预览一些文件时就只会在一个公共Tab(标签页)中进行预览而不会打开过多的无用Tab。当然也可以单击预览Tab的Promote按钮或者对它进行手动编辑从而将它变成普通Tab,如图1-32所示。
图1-32 更有效的IDE
3.随处搜索(Search Everywhere)
在Visual Studio2011中虽然已经集成了简单的搜索功能,作为前三受欢迎的功能,在Visual Studio12中必然会着重优化。
目前已知提供搜索功能的部分有:解决方案管理器、扩展管理器、快速查找功能、新的测试管理器、错误列表、并行监控、工具箱、TFS(Team Foundation Server)团队项目、快速执行Visual Studio命令,如图1-33所示。
4.工具栏的改进(Toolbar Improvements)
最显眼的莫过于增加了快速启动搜索框,可以直接输入快速命令。只要键入关键字就会在下拉列表中提示可用命令。甚至可以在其中找到工具菜单,如图1-34所示。
图1-33 强大的搜索功能
图1-34 工具栏的改进
5.附加工具(Additional Tooling)
Visual Studio 2012新增了几项新工具都非常引人注目。Visual Studio 2012 IDE集成了Expression Blend,极大方便了XAML相关应用的开发。此外Visual Studio 2012提供了一个崭新的代码克隆分析工具,相信VSS的老用户会非常熟悉,但是这个新版本不仅集成在Visual Studio 2012中,而且功能相当完备,如图1-35所示。
6.多显示器支持(Multiple-Monitor Support)
Visual Studio 2011虽然已经开始支持显示器处理,但仍有不少问题。Visual Studio 2012提供了强有力的显示器支持。和新的IE一样,当把一个Tab拖到另一个显示器上时,它会自动创建一个IDE窗口。如果关闭再打开一个窗口,它还能很好地恢复原来的状态。
图1-35 附加工具
7.性能优化(Performance Enhancements)
Visual Studio 2011中有一个没怎么引起注意过的多项目并行Build功能,但只局限于C++,现在在Visual Studio 2012中,已经不用再受编程语言约束了,不论是用什么语言(Visual Studio 2012支持的)开发的,都可以畅快地体验并行Build的效率。从此可以在“最大并行数”中来管理最大并行项目数。Visual Studio 2012中msbuild.exe不复存在,而且由于Visual Studio 2012中Build过程也不再在Devenv.exe进程中进行,所以Visual Studio 2012编译时还将会获得更好的UI反应和更低的内存占用。Visual Studio 2012中,最大同时进行的Build数默认是等于CPU核心数的,不建议手动修改这个值,因为可能会造成不必要的矛盾的编译结果。
8.新的项目类型(New Project Types)
从专业的角度来看是否应该从一款Visual Studio转向另一版本的Visual Studio,很重要的一点就是比较项目类型。新的Metro风格的项目毫无疑问是Visual Studio 2012的主推功能。包括Application, Grid Application, Split Application, Class Library和Unit Test Library。另外一个Visual Studio 2012就是JavaScript,包括Blank Application, Fixed Layout Application, Grid Application, Navigation Application和Split Application。当然,这些新功能只能在Windows 8环境下使用。值得注意的是,这一版本还是支持窗口程序的,Silver Light也依然存在,仍然是Visual Studio所支持的平台之一。还应该注意到是,Visual Studio 2012甚至包含了便携库,这允许跨平台的Silver Light和标准.NET的跨平台开发。另一个很具代表性的特色就是,所以的新功能都支持C++开发,使用C++来开发Metro界面。但是,Visual Studio 2012将不再支持.NET2.0以下平台,较早的程序需要重新编译。其他具体的项目类型的支持差别请查看文章所附的大图。
9.可扩展性(Extensibility )
Visual Studio 2012提供了相当多的插件来帮助更简单地操作。
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 2012的可扩展性在Visual Studio Gallery中的体现
Windows Presentation Foundation/Windows Forms Toolbox Control: 客户端UI的 自定义控制
Visual Studio 2012还提供了新的API接口用来开发插件。和之前透露的一样,包括可以使用第三方单元测试工具(XUnit and NUnit)和定制的代码分析工具。这是微软开放IDE扩展的一个信号,特别是面向开源工具。
微软在做了众多改进后却删减了一个相当重要的特性—宏!根据微软的报告,因为只有很少的的用户使用过宏,所以Visual Studio 2012中并不会默认引入宏,但Visual Studio 2012将可以通过扩展包引入自定义功能。
从开发者的角度来看,我们希望Visual Studio能够很好地改善开发效率,在这方面,Visual Studio 2012并没有明显的改进。但在其他地方,Visual Studio 2012做了很多改进,例如:SearchEverywhere、真正的多核支持、先进的代码克隆分析工具,以及解决方案管理器。明确地把重构过的测试功能也集成了进来,并且把测试窗口全都统一到同一个单元测试资源管理器中。