前不久,在美国洛杉矶召开的Professional Developer Conference(PDC)上有一个讲座,介绍了有关.NET框架4.0中在CLR(公共语言运行时)方面的新功能。这里做一个简单的总结:
.NET 4.0让不同组件之间工作的更好
1. 兼容性一直是个令人很头疼的问题,在.NET 4.0中,在同一个进程中,不同运行时上的组件可以同时运行,我们称之为In process Side by Side。
2. 对于很多同时包含COM组件和托管代码的应用程序,Primary Interop Assembly (PIA) 一直程序在部署方面令人很头疼的问题。现在,.NET 4.0中加入了称为NO-PIA的新功能,使得Interop的版本类型匹配仅通过简单的属性(TypeIdentifierAttribute)和GUID就能实现,免去了繁杂的PIA部署,也减少了应用程序的部署大小。
3. P/Invoke Interop Assistant,是一个能帮助使用Interop的开发人员快速转换C语言与.NET语言方法签名的工具,在http://www.codeplex.com/clrinterop 的网站上可以免费下载到。
4. 此外,.NET 4.0也为引入动态语言与功能性语言做了相应的改进。包括一些新类型,如BigIntegers,Tuples,并对Tail recursion 的情况作了优化。
.NET 4.0在性能上做了进一步的提高
1. .NET 4.0提高了并行计算的线程性能。
2. .NET 4.0中加入了后台垃圾回收功能(Background GC),使得垃圾回收时发生的延迟现象明显减少。
3. 此外,对于Profiler,.NET 4.0中的Profiler提供更好的CPU采样功能,实时的堆分析和对象引用图表。
.NET 4.0帮助开发人员减少程序中的bug
1. .NET 4.0支持dump debugging,可以提供重现crash的信息,使开发人员对crash的情况的调试更有效。
2. .NET 4.0支持64位的混合模式调试,使得托管代码和非托管代码之间的调试更方便。
3. .NET 4.0提供Code Contracts,可以通过编程方式制定代码规则。
4. .NET 4.0对一些常见异常,如除零计算、Access Violation等,作了一些特别处理,使得这些问题在新的运行时中更难出现。
除了CLR相关的改进,.NET 4.0在Data,WCF,Windows Client等等方面都有很多新的功能。
【编辑推荐】