引言
"我们的目标,不仅仅是做出几个新功能,而是要回答一个问题:'如何让现在的开发人员生活更容易一些'"---Scott Guthrie, ASP.NET 之父, 微软副总裁。
因为学习WF4的缘故,早在去年,我很不情愿得在我的笔记本上安装了Visual Studio 2010 beta1, 一个字,慢,是无法忍受的慢,还没怎么用就已经卸载。beta 2版本有了很多很大的改进,但仍旧非常不好用。那时记得和VS2010 测试组的朋友打羽毛球的时候,我半开玩笑的问他们,这么大的bug 你们都没测出来,还打不打算让我们用VS2010!还记得一件事,我遇到一个WF4 设计器的bug, 于是在讨论组上发了一封邮件,居然有一个项目经理直接打电话过来帮助解决
问题,至今记忆深刻。 VS 2010 到了RC阶段已经非常不错,VS2010正式版出来后,我同时也把VS2008卸载了。这一系列的改进也让我想起微软开发软件的一个原则, 先把功能做出来再说,优化是以后的事。正如敏捷开发讲的,一开始就全面考虑有时反而无法让事情成功的继续下去。
基于WPF
Visual Studio 2010 是基于WPF 的,基于WPF 同时也意味着两件事: 1.需要稍微好一点的显卡 (支持DirectX9.0. 目前很多集成显卡都支持DX9) 2.更加漂亮,强大的界面。曾经有人质疑(包括我),这次VS2010全面用WPF根本就是瞎折腾,如果你也这么认为,看完这篇文章后你的想法或许会和我 一样发生转变。
C#代码编辑器
VS2010 的代码编辑器是我放弃VS2008 的第一个重要原因:
1.可独立拖放的窗口
你应该遇到过这样的情形,一边看着文档,一边写代码。在Windows7里我们可以把两个窗口贴到左右边框,就像这样:
代码编辑区就变的很小. 但是在VS2010里我们可以把代码窗口拖出来:
这样一来,可编辑窗口顿时多出了不少,如果你有多个显示器,还可以一个屏幕放一个代码编辑器。这样的功能在VS2008里是做不到的。
2. 代码高亮
代码高亮功能在读代码的时候特别有用,看这张截图:
也就是说,当你点击某个对象的引用的时候,指向同一个对象的其他引用也同时会显示出来。
3. 代码批量修改
写程序的时候经常会遇到批量改变量名的情形,如果变量已经存在于代码的各个角落里,然后再去手动一个一个改过来那是一件非常非常痛苦的事 情,而且很容易出错!,在VS2010里我们可以点击一个变量名让其高亮,然后直接修改变量名,在提示框里点击"Rename 'bookmarkName' to 'bkName'" 即可.
4. 代码块选取
这个功能用到的不多,但是在某些场景下确非常实用,比如,拷贝一段带行号的代码的时候,这个功能就发挥作用了。在下面这个场景中,我们只 要按住Alt 键,然后拖动鼠标就可选取行号,然后delete 删除:
5. 代码提示和自动注释
这两个功能在VS2008 里就有,但感觉在VS2010 里速度更快一些。很多时候你会忘记了某个类名的拼写,这个时候你只要按住Alt+ ->(右方向键) 就可以弹出提示框。在方法(Method)前面输入/// , 编辑器就会自动生成注释:
6. 矢量字体
因为WPF 界面是基于矢量的,因此VS2010 的代码字体也拥有了矢量特性。矢量字体意味着你的代码字体不管放大多少倍都不会出现颗粒化或者锯齿。
这个功能在做演示的时候特别有用,当然编程的时候代码看起来也更加舒服。
WF4 工作流设计器
这篇文章说的是VS2010 为什么说到WF4 去呢?因为WF4 的设计器在VS2010 里才有,VS2008 里没有。Windows Workflow Foundation 4 - WF4 是.NET4的一大精华,其设计器也是VS2010 的一大亮点。
微软在技术上有一个战略:用WF工作流来处理逻辑,WCF 处理通讯,WPF/Silverlight 和ASP.NET 处理表现层,画一张图的话应该是这样的:
也因为WF工作流在现代软件开发中的重要作用,微软甚至放弃了对WF3(WF3.5) 进行升级,转而重新设计一套工作流框架-WF4. 这不能不说是冒了很大的风险的。但是,到底是什么原因促使微软做出这样的决定呢?WF3的推广已经不错,很多人花了很多精力和时间去学习WF3。现在却要 重新学习WF4,难道不怕用户倒戈?就我个人而言,我一开始是非常排斥WF4的,因为好不容易学会这么复杂的WF3,现在又要学一套新的东西,太折磨人 了。但是经过"折磨"之后,我还是认为WF4 非常的棒,值得一学。现在让我来思考这件事的话,我认为应该是以下三个原因推动了微软作出这样大胆的决定:
1. WF3 太慢,WF3真的挺慢的,每次的状态转换都要把整个活动进行序列化,我们知道,序列化是非常消耗资源的。
2. WF3 的设计器是基于Win Form 的,没有WPF那么容易自定义作出漂亮的界面。
3. WF3 的标记语言使用的是XOML 而不是现在微软正在努力推广的XAML。
而WF4 恰恰是在这三点上有了巨大的提升,不仅更容易学习,运行的速度也更加快。目前WF4 支持三种工作流,分别是:
顺序工作流(Sequence Workflow):
图表工作流(Flowchart)
以及最新推出的WF4 状态机工作流(WF4 State Machine, 目前还处于CTP1阶段 ):
伴随.NET Framework4 和VS2010 而来的WF4 不是一篇文章能讲的完的,有兴趣的朋友可以在MSDN上找到更多资料。
开始支持UML
长久一来,微软都不大喜欢UML, 在以前版本的VS里也只提供类设计器,却没有 UML设计器。但作为业界标准的UML的确比类设计器的要强大。在表示不同类,接口之间关系的时候也更加的清晰。说实话,VS2010 的UML的设计功能让我兴奋不已。VS2010 的UML设计器不仅支持设计而且还支持逆向工程.。好吧,让我们来动手体验一下:
1. 创建UML工程
点击File->New Project, 然后如下图所示做出选择:
然后加入一个UML 类设计图(UML ClassDiagram):
我想,这次,做.NET 开发的朋友们该有动力去学习UML了。除了用这种方式创建UML 图意外你也可以通过点击Architecture 菜单下的New Diagram… 往某个工程里添加UML图。
2. 逆向工程
VS2010 的UML还支持逆向工程,同样是在Architecture菜单下面
比如我目前有一个工程,生成的图如下:
当你点击展开的时候,还会有动画效果,如果是在视频里我相信能展现更多的特性。
3. 根据代码生成时序图
任意打开一段代码,比如说下面这段异步发送Http 请求的代码:
然后在Run() 方法上点击右键,选 Generate Sequence Diagram
然后会弹出一个选项对话框,点确定,于是,很神奇的,一张时序图就生成了:
总结以及更多资源
Visual Studio 2010包含了太多的功能,一篇文章无法全部介绍完,如果你平常使用的是C++,你可以看这篇文章:
如果你对VS2010 的性能分析感兴趣,请看这篇文章:
如果你对 Entity Framework 4.0 和WCF Data Services 4.0 感兴趣, 请看这篇文章:
更多的关于SharePoint, Office 开发相关,请看这篇文章:
文章开头Scott Guthrie 的引言来自这里:
本文转自 xhinkerx 51CTO博客,原文链接:http://blog.51cto.com/xhinker/313055,如需转载请自行联系原作者