VS2010近乎完美 并行编程进展突出

我个人一向认为微软的Visual Studio系列在.Net框架应用开发上首屈一指,在基于Windows主机C与C++的IDE中也极富竞争力。我对Visual Studio 2008的评价已经颇高,但也在几个方面抱怨了它的一些缺陷,尤其是在稍后发布的Silverlight2.0中,我认为后加入Visual Studio的Silverlight工具包中的XAML设计器只有预览面板,因此不能算是一个完全成熟的设计器。

显然微软对Visual Studio 2010的期望极大,因此如果听见任何的抱怨一定感到难受。但我还是一定会有些抱怨的,这没办法,我总是从实际应用来考虑问题,虽然VS2010是近乎完美的作品。让我们从它的优点开始吧。(51CTO编辑推荐:Visual Studio 2010 Beta1试用手记)

改进的用户界面

Visual Studio 2010对用户界面(UI)做了很大改进,看起来比以前的Visual Studio 版本更干净,使用Windows Presentation Foundation(WPF)布局而不再使用Windows Forms(Windows窗体)布局。我喜欢这种方式,当然我的电脑拥有大容量的内存和一个非常好的显卡。我对用户界面的改进竖起大拇指。据说现在的用户界面还支持多台监视器,但我并没有亲自测试。

毫不奇怪,WPF设计器会比以前更顺畅。此外,你现在能够生成数据绑定的WPF控件,从DataSources窗口将项目直接拖动到设计器。更好的是,Silverlight的XAML设计器与WPF设计器实现了水平相当,因此在进行XAML设计时,你不再需要麻烦的从Visual Studio 切换到ExpressionBlend了。(51CTO编辑推荐:VS 2010 Beta1和Silverlight不得不说的事)

新的代码浏览功能是另一项成功。你不仅可以使用Ctrl与鼠标滚动来放大和缩小屏幕,还拥有了NavigateTo快捷方式(Ctrl加逗号)和CallHierarchy导航等新功能,使你的项目开发更为方便。

调试和TDD

VS2010在线程调试上得到了很大改善,得到了更多的多线程支持和并行处理能力,这是非常必要的。Toolboxes工具箱和IntelliSense智能感应现在可以对你的目标项目敏感,这样你就不必等到编译或运行时才会发现你使用的功能不被支持。

Visual Studio 从很早以前就开始支持测试驱动开发,但它在实际应用编写新的stub和同步IntelliSense时经常碰到问题。现在,你可以切换到consume-first模式,确保IntelliSense正常运行并且从中生成stub。

.Net语言

Visual Basic和C#语言都得到了很好的发展,二者现在几乎实现了功能均等。现在VisualBasic中已具有lambda表达式和隐性linecontinuation,C#中简化了COM调用和动态语言支持。二者都拥有了一个新功能叫做typeequivalence,简化了不同版本中项目的封装,这在使用微软OfficeAPI编程时特别有用。

F#是一个基于ML和OCAML的功能性编程语言,它使用.Net框架并能够与其它.Net语言交互使用。F#从一个研究项目发展而来,很高兴看到它成为Visual Studio 2010的一部分。51CTO之前介绍过Visual Studio 2010中F#的一些资源,对于尝试最新版的F#有很大帮助。

在Visual Studio 2008中我经常受到半生不熟的JavaScript解析和IntelliSense的烦恼。已经数不清多少次VS2008用多余的步骤来“帮助”我完成代码。微软称VS2010“大大提高”了JavaScript解析速度“2至5倍”。考虑到以前的表现,实际上这并不能说有多么好,但有改善当然是值得欢迎的,而且事实上VS2010对JavaScript的支持很不错。

以前在从事大型VisualC++项目时,我经常不敢改变核心头文件。而现在VS2010在后台解析文件时显然比以前聪明得多了。

VS2010的C++编译器现在支持lambda表达式、右值引用(rvaluereferences)、编译时断言(compile-timeassertions)、表达式类型发现(expressiontypediscovery)和C++0X标准的自动类型deduction。另一条好消息是,VS2010的C++编译器有一种模式可以向后兼容Visual Studio 2008的工具和类库。这会给开发者的个人升级提供很大的方便,即使团队中有其他人还不想切换到VS2010。
网络部署和并行编程

网络部署从历史上就不算Visual Studio 的巨大优势。在Visual Studio 2008中我就常常发现自己会切换到FTP客户端做部署,而不是使用VS的部署工具。VS2010的一键发布功能很可能会改变这种状况,虽然我还没有勇气用它来发布站点。

对于我来说,VS2010最大的新特点是并行编程的进展。我曾经写过一本书有一部分专门讲并行编程,而我也一直在各种语言、框架以及类库中找寻并行编程的兴趣,包括JoeDuffy在微软的工作。我不敢说已经完全掌握了VS2010中的新的.Net框架的能力和本地C++对于任务和数据并行的支持,但已经看到的这些已经令我印象深刻。在CodePlex最近已经张贴了很多有趣的并行程序设计样例,我认为它们值得好好研究。

Beta版的bug和遗漏

虽然是beta版,我还是要挑出一些Visual Studio 2010的缺陷,虽然这显得有点不公平。我想让你在开始下载和测试前知道有什么可以期待,有什么无法期待。

首先,不要浪费时间寻找本地的MSDN库了。beta版没有任何本地的MSDN,它完全在线上。但我并不太在乎,因为如果我的网断了,实际上我也做不了什么了。

ASP.Net MVC目前还不支持,不论是智能设备还是.NetMicro框架。你可以下载Azure、Silverlight、IronRuby和IronPython的支持。有关.NET MVC未被包含在Beta版中的原因,.NET开发团队在Beta版发布后做出了解答,详见51CTO之前这篇报导。

如果你像我一样安装的是Windows7,那么Visual Studio 安装程序中内置的SQLServer安装程序将无法正常运行。当然你可以下载并分开安装SQL Server 2008 SP1,你可以正常的安装数据库的Express和Developer版本。有关SQL Server 2008的更多信息,可参考51CTO的SQL Server 2008深度应用专题。

在我个人对beta1的测试中,只遇到了一个漏洞,还没有得到解决。不知什么原因,在我安装了Silverlight2.0运行时和SDK之后,我无法调试Silverlight项目。我不确定这是64位的问题还是安装的问题,我希望这个问题将会在某个时候消失,也许是再安装了更新版本的Silverlight工具之后。

无论如何,我期待着Visual Studio 2010中能够具有更多的add-on,我期待着下一个测试版。现在的Visual Studio 2010已经做得很好,我希望将来它的正式发布能够收获巨大的成功。