1.Hello Visual Studio 2010
a. 安装 Windows 自动化 API 3.0 后,Visual Studio 2010 的运行速度更快
参考http://support.microsoft.com/kb/981741/zh-cn
b. ctrl+, Quick Search Navigate to功能,可以方便地跳转到该方法,支持大写字母匹配搜索,例如Page_Load可以输入PL(必须大写),就能搜索到
c. Intellisence中也支持大写字母匹配搜索,还支持中间匹配搜索(以前版本的VS只能匹配开头的字母)
d. View Call Hierarchy 右键某方法即可看到菜单,可以方便地找到某个方法的全部引用和定义,也可以高亮方法名在VS里会自动高亮该方法所有引用到的地方(速度不快,需要一定的等待时间)
e.One-Click Web Deployment 现在有个Publish bar集成了MSDeploy
f.Extension Manager 在Tools菜单里,可以方便地加载和卸载VS2010的插件,推荐PowerCommand(http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99) http://visualstudiogallery.msdn.microsoft.com/可以下载到大量的插件
2.System.Threading.Barrier
这个新增的类挺有意思的,就是一个关卡的意思,所有参与的多线程当执行到关卡时就开始等待,等所有参与的多线程都执行到关卡后才开始后续操作,在构造函数的参数里可以指定参与关卡的线程数,SignalAndWait方法就是用来通知到达关卡的方法,可以传一个System.Threading.CancellationToken(可以由CancellationTokenSource获取)作为参数,用来触发OperationCanceledException,从而取消关卡。
3.Code Contracts
从http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx 下载Code Contracts库
.NET4.0里只是自带了System.Diagnostics.Contracts命名空间下面的类,但是没有包含Code Contracts库,所以要使用这个特性,还是需要下载安装,这样做的目的是可以经常更新这些工具,也就是这个东西其实还会经常改动
安装之后需要在Project的Property的Code Contracts选项卡(安装了库之后才会有)的Contract Reference Assembly的选择框中选择Build才会有效
这个库的目的是对方法进行预处理(也就是检查参数合法性)(Contract.Requires),后处理(也就是返回值校验)(Contract.Ensures),变量合法性检查(Contract.Invariant)(要使用一个单独的private方法,并且该方法使用ContractInvariantMethodAttribute)等,还能生成文档。在编译时如果参数合法性检测失败就会给出Warning,在执行时如果检测失败则会抛出ContractException
这个东西CLR v4和Silverlight 4里是自带了Contract类,在早期版本里其实也可以使用Code Contracts的,需要引用%PROGRAMFILES%/Microsoft/Contracts/PublicAssemblies下的Microsoft .Contracts. dll
4.System.Threading.CountdownEvent
别看这个类名字里有Event,其实和Event无关,这个类其实有点把Barrier类封装了一下的感觉,Barrier是需要一个个的SignalAndWait,而CountdownEvent是一个个Signal然后一起Wait。Barrier要求参与的线程数目是固定的,而CountdownEvent参与的线程数可以是随时改变的。
5.LanguagesTenInOne
C#部分
a.Optional Parameters和Named Parameters
b.Office interop
c.IronPython interop(还是需要单独下载 (http://ironpython.codeplex.com/)这东西好几年了,感觉还是没有定型,慎用!)
VB.NET部分(这个因为用不到,所以没看)
6.AdventureWorks using AJAX
个人倾向于RIA取代ASP.NET,所以ASP.NET已经基本不关注了
7.Office and SharePoint
没有实际需求,不关注
8.WCF Data Services 1.5
这个以前叫做ADO.NET Data Services,VS2010里带的依然属于技术预览,把数据作为服务发布在网上有多大的价值,值得思考,暂不关注
9.dynamic
ExpandoObject和DynamicObject这是两个有意思的类,前者可以动态扩充任意属性和方法,或者可以动态加入属性内容。
似乎依然无法支持C#脚本,仍然需要动态编译执行,这点比较失望的,既然可以有IronPython,为什么不能有IronCSharp,哪怕是精简过的C#也好。
反射的写法简化了很多。
10.MEF
这是个好东西
11.Parallel
PLINQ .AsParallel().WithDegreeOfParallelism(ProcessorsToUse.Value) 在双核处理器上PLINQ比LINQ快将近1倍,这个很赞啊。。。
Parallel.For 用来并行for循环,但是这个是并行处理的,所以不是顺序处理,这点要注意,不是什么for循环都能替换掉的
VS2010TrainingKit\Demos\ParallelTask这个Demo里说ThreadPool No *EASY* way to measure,其实不然,.NET 4已经加强过了ThreadPool,可以参看http://blogs.msdn.com/pfxteam/archive/2010/04/13/9995622.aspx
12. Windows Azure
AppFabric
云平台这东西要花钱购买,我是不会去关注的,因为想不出究竟对我有什么实际用途