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