微软宣称,在这即将发布的正式版中,微软将给C++开发者更多的关怀和支持。“从Visual studio产品发展情况看,相较与对其它语言的支持和改进,也许我们的确显得有些冷落了C++开发者,但从Visual studio 2010开始,不管是从IDE到编译器,C++开发者都能在这个工具中重新找回自己应该在的位置。” Visual Studio 2010重要新功能一览
记者了解到,C++曾经是Visual Studio 6.0中的***语言,但是微软从2000年开始推行.NET战略以来,其核心及缺省的编程语言是C#,所以微软的开发工具Visual Studio系列,多年来对C++开发者的关怀和C#的开发者相比,一直相去甚远。C++的地位不断下滑,被后来居上的C#抢了风头,很多钟情于C++的程序员顿感失落和惆怅,甚至都开始怀疑C++的前途问题。
ITPUB网站微软技术频道的专栏作者、5届MVP陈良乔谈到,“多年以来,在Visual Studio所支持的各种编程语言中,C++就像被打入了冷宫。从Visual Studio 6.0到***的Visual Studio 2008,其间经过了多次版本更迭,Visual C#不断推陈出新,就连昔日受到程序员们鄙视的Visual Basic都有很多新的特性推出,但是Visual C++每次都是几个不咸不淡的小更新,没有革命性的变化。在Visual Studio所支持的各种语言中,越来越觉得Visual C++是后妈生的。”
陈良乔
比如:“ MSBuild不能很好地支持Visual C++项目;C++语言本身没有大的改进,新的标准没有出现;从Visual Studio .net 到Visual Studio 2008,很少有关于Visual C++的更新和改进;Visual C++的类图不能编辑,无法动态生成代码;可怜的Visual C++ Feature Pack居然要通过SP来发布,Visual Studio发布的时候都不等等它;IDE很多新的功能只能在Visual C#和Visual Basic中实现,例如Visual C++项目不支持“导出模板”等;MSDN中的示例代码很多都是Visual C#的,很少有Visual C++的示例代码。”他列举道。
曾经在编译器方面的改进
上面是从开发工具的使用层面而言,不过,从编译器角度而言,微软在C++方面还是做了很多的工作的。
当年微软推出的Visual Studio.net 2003 C++编译器已经能够和ISO C++标准保持98%的一致(这比以前任何一个版本都更加接近)和一体化的语言支持特性,如局部模板特定化;同时也包括了增强的缓冲区安全检查和改进的编译器诊断功能。
C++的开发者也能像使用C#和Visual Basic.NET的开发者一样,通过简单的拖放操作,就能生成稳健的Windows窗体应用程序,而且,这个编译器还对Intel Pentium 4和AMD Athlon处理器作了优化处理。
到了Visual C++ 2005,微软又加入了更多的改进。比如,有了一套新的语法,不但显得更“优雅”,而且更强大;它拥有新的优化技术,可使程序的速度***提高30%;同时新的编译模式,可保证在Microsoft .NET Framework之上生成完全遵从CLI(Common Language Infrastructure)的可验证代码;新的interop模式,可提供本地与托管代码的无缝融合。相对于前两个版本,新编译器还包括了一个增强版本的缓冲区安全检查选项,而且对C++程序普遍使用的库,也有新的注重安全的版本。Visual C++ 2005对基于Intel Itanium和AMD64的64位平台,提供了对OpenMP标准的支持,并且修正了一些混合DLL加载的问题,对Double P/Invoke的性能问题,提供了自动运行时消除。关于类似的增强和改进还有很多很多,正如一个C++架构师说的那样,“C++终于站在了它应该站的位置上”。
而今天,微软试图将Visual Studio 2010打造成跟Visual Studio 6一样的经典开发工具。所以,除了在语言层面开始支持***的C++标准外,在IDE以及MFC库等方面,微软也下了很大的力气。Visual C++不仅改善了IDE的效率,同时也引入了很多新的特性,期待这些IDE增强能够切实的提高程序员们的开发效率。
资料:Visual Studio 2010中的Visual C++增强:
改进的项目系统支持
在上一回我们提到过,在以往的Visual Studio版本中,MSBuild不能很好地支持Visual C++项目,微软转而提供了一个替代的专门解决办法:VCBuild。在Visual Studio 2010中,微软终于改进了这一点,将VCBuild的众多特有的功能集成到MSBuild中,并且使用MSBuild替代了VCBuild。虽然VCBuild有很多针对Visual C++项目的实用功能,但是,新的MSBuild不仅继承了这些功能,还提供了更多的新特性,吸引用户升级到这一新的构建平台上来:
诊断功能: MSBuild增强了它的诊断功能,以帮助用户更加容易地发现和调试构建错误。例如,MSBuild可以帮助你决定如何以特定的顺序编译某些源文件,因为MSBuild可以检测这些文件之间的依赖性。
可扩展性: 使用MSBuild,用户可以为某些特定的平台构建不同的解决方案。另外,也可以在构建过程中,使用不同版本的编译器。连接器等,使得我们的解决方案更具扩展性。
集成: 我们可以将我们的Visual C++项目添加到一个已经存在的MSBuild环境中。例如,我们可以将一个新的Visual C++项目集成到一个已经存在的MSBuild环境中,虽然这个MSBuild环境包含的是使用.NET Framework的Visual C#和Visual Basic项目。
Multi-Targeting曾经作为Visual Studio的一个重要特性,受到微软的大力推广。因为它使得“一次编码,多个平台运行”成为可能。这一特性给程序员们带来了极大的便利,再也不用为目标机器混乱的平台而头疼。但是在之前的Visual Studio中,Multi-Targeting特性只在托管语言中得到支持,可以针对不同的.NET Framework版本。现在在Visual Studio 2010中,随着MSBuild的应用,本地代码的Multi-Targeting也成为可能。
【编辑推荐】