这个帖子是对
你们希望下一代Visual C++都具有什么功能?这个帖子的总结。
界面
首先,不需要C#、VB.Net支持人的可以使用免费的Visual C++速成版,这个版本占用的资源比较少,不过对应的功能也比较少。一些用户要求的清爽界面在这个版本中也实现了,不过要使用全部功能的话,需要在选项中切换到专家模式。需要更多功能的专业开发人员建议升级到专业版。
内存占用:受渲染引擎改为WPF的影响,Visual C++ 2010的内存占用会比2008大。在内存较少的计算机上会有性能问题。建议升级开发用的计算机的内存。
受很多人抱怨的MSDN的启动速度大大加快,但是帮助文档项目组没时间实现目录和索引,估计会另外发布一个补丁。幸好Help的扩展开发接口也大大改进,使得自己写帮助写起来更加容易。一些Windows Help MVP们写的一个帮助阅览器可以在http://mshcmigrate.helpmvp.com/找到。另外,帮助文档安装的时候也提供了更多选项,这样搜索本地文档的时候可以跳过自己不需要的技术。
导入、导出Visual Studio设置的功能在Visual Studio 2005就有了,不知道为什么有人要求Visual Studio 2010增加这个功能。
编辑器
以前造成很大性能瓶颈的智能感知被大幅改进,很多计算工作被转移到工作线程(这也增加了内存占用)。智能感知使用SQL Server CE来提高查询速度,但是这需要更多的磁盘空间来存放代码信息数据库,以及在创建项目的时候经常要解析一个很大的windows.h。受开发进度限制,C++/CLI的智能感知来不及加上了,计划是在后续版本中支持。第三方的IDE扩展可能有对C++/CLI的智能感知支持的功能。智能提示的另外一个应用就是可以实时提示可能造成智能提示解析失败的语法错误和修改建议。
使用基于GPU的渲染引擎使得原来需要CPU来做的界面现在用GPU来做了,在支持视频加速的计算机上会加快界面的显示速度。代价就是在显卡不好的计算机上速度会比较慢,以及一些非true type字体不能用在代码编辑器中。
很多IDE的扩展可以在MSDN的Visual Studio gallery网站(http://visualstudiogallery.msdn.microsoft.com/en-us/)上找到。有需要的可以自己去购买或者免费下载。鉴于微软的垄断地位,我不认为微软会推荐任何一个厂家的IDE扩展,或者直接集成某个厂家的IDE扩展。另外,一些IDE扩展占用很多内存和CPU时间,默认启用扩展的话并不适当。
编辑器增加了多显示器支持,使得具有多个显示器的程序员可以一次看到更多的代码。
代码模板在Visual Studio 2005里面就支持了。C++代码片段则仍旧不支持,不过有第三方的IDE扩展支持,比如Visual Assist和一个开源的codeplex项目(忘记名字了)。
调试器
和虚拟机的集成远程调试没有实现。多线程调试方面,估计是集成了并行计算库调试的原因,有比较大的加强。
编译器
C++标准方面,正则方面是随着TR1支持而支持。模板类导出可以看看Why we cannot afford Export这篇文章(http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1426.pdf)。
DDK开发仍旧是不支持。DDK发布周期和VC的不同,而DDK和VC编译器之间的差异造成的bug很难查,推荐的做法还是使用DDK来编译驱动。只有用户态的驱动才建议用VC编译。
编译的时候可以在项目编译选项中指定使用2008版本的Platform Toolset,当然这需要计算机上同时安装VC 2008。在2010之前只能在全局选项中指定头文件、库文件和工具的搜索目录。编译器使用新的MSBuild组织方式,使得自定义编译过程更加容易。比如可以自己写target文件来指定编译时使用的Platform Toolset。
导出旧版本格式的项目文件的功能没有很多人要,建议的方式还是在项目之间共享代码文件。
对于C的支持不可能去掉。很多的程序,例如微软的Windows、Office和SQL Server,仍旧包含C代码。VC不支持C意味着微软需要第三方的C编译器来开发自己的软件。
在编译的时候支持多核,在多个CPU的计算机上编译速度应该会加快。
类库
MFC Feature Pack被集成到了MFC,工具箱里也增加了MFC Feature Pack的控件。MFC增加了对Windows 7控件的支持,以及类似VC6的类向导(Class Wizzard)。类向导的快捷键从Control+W变成了Control+Shift+X,需要用旧快捷键的人可以自己重新映射一下。
由于MFC中新增的功能,MFC的运行时库的大小增加。需要编写微型软件的可以考虑ATL。
MFC仍旧不支持WPF,不过VC项目组在对下一个版本的VC的建议中有询问是否增加GPU显示支持(http://topic.csdn.net/u/20100323/07/d6365061-c851-4bc2-bbb3-fa26258386e0.html)。估计这考虑的是完全非托管的类库而不是WPF。
MFC应用程序向导在6.0开始就提供能够被脚本调用的自动化支持(http://msdn.microsoft.com/en-us/library/b2az2zt0.aspx)。当然,需要另外的编辑器来写自动控制MFC应用程序的脚本。
发布
去掉了对应用程序清单的强制要求。Visual C++运行库不再安装到sxs目录。但是这也意味着在应用程序的安装目录下部署的本地Visual C++运行库在微软发布安全补丁的时候不会自动得到更新。
其他
使用C++的一个好处就是第三方的库和控件很多。几十年的代码积累不是说着玩的,没有必要把每个类库都集成到Visual C++。
像测试项目这样一些以前只在团队版中有的功能,现在在专业版也可以用了。不过静态代码分析和Profile Guided Optimization仍旧需要Premium版本的才可以用。
VC++ ToolKit只是编译器而已,速成版连IDE都包含了。
汉化版VC还没做完,现在无法评价。至于Windows SDK的翻译——文章太多,等翻出来了,SDK也过时了。你可以去http://www.clubof.net/去请求翻译文章,社区会选择请求比较多的文章翻译。
boost和WTL这样的开源项目仍旧需要自行去官方主页下载。不是每个人都需要这样的第三方的类库。
高校学生应该可以通过Microsoft DreamSpark使用免费的微软软件。学校需要的话可以向微软申请参与这个项目。
移动开发方面,wince的模拟器没有提供,但是会支持Windows Phone 7的开发。
跨平台开发方面,我不认为微软会做出经济上自杀的举动。
发布调试版的微软DLL仍旧是违反Visual Studio的最终用户许可协议的。调试版的文件中包含微软的源代码的信息。
至于要求VC替代程序员的大脑的,假如买几百美金的软件就可以不给你每个月开工资了,你愿意么?