如果说对C++新标准的支持为Visual C++的发展奠定了坚实的基础,那么,她在IDE方面的增强,则会让她更加光彩照人。
很多Visual C++程序员都爱吃西红柿(Visual Assist)。为什么?因为它可以补偿VC(Visual C++)。虽然Visual C++在C++库,编译器,MFC等方面非常强大,但是她的IDE一直受到C++程序员的诟病。特别是进入 Visual Studio 2000之后,Visual C++的IDE并没有大的改变,但是效率却越来越低下,使得程序员们不得不多吃“西红柿”,补充点VC。
微软试图将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也成为可能。
在Visual Studio 2010中,我们可以选择使用Visual Studio 2010的工具集还是Visual Studio 2008的工具集。当我们因为一些兼容性或者是其他方面的原因不愿过早地升级到Visual Studio 2010时,我们可以利于Multi-Targeting特性,选择使用Visual Studio 2008的Visual C++程序库和编译器,而同时使用Visual Studio 2010的IDE。这样就实现了“鱼与熊掌兼得”。当我们最终决定升级到Visual Studio 2010的程序库和编译器时,只需要在MSBuild或是项目属性中做一个简单的设置就可以了。下图展示了不同工具集设置下项目的编译记录。
Multi-Targeting:目标工具集为V90
Multi-Targeting:目标工具集为V100