当大家把目光聚焦在即将到来的.NET 4.5 的同时,微软继续对.NET 4.0 进行了一番小的增强。新版本.NET 4.0.3 包含了垃圾回收、Windows Workflow 以及其他方面的改动。由于新版本默认不处于启用状态,因此如果想要使用其中的新特性,开发人员需要为项目中的目标Framework 选项明确指定“.NET Framework 4.0.3”或“.NET Framework 4.0.3 Client Profile”。
垃圾回收
.NET 允许开发人员改变垃圾回收器的滞后时间模式。对于高吞吐的应用程序,滞后时间模式通常会设置为Batch 模式,以容忍完整垃圾回收周期中产生的短暂中断。网站是使用这种模式的一个例子,其中GC 导致的中断没有正常网络延迟明显。而对于具有用户界面的应用程序,一般会设置为Interactive 模式。这种模式相比Batch 模式要慢一些,但它在运行过程中不会降低用户界面的响应能力。
还有一些应用程序需要高吞吐和低延迟的组合。在.NET 2.0 SP 1 中,这些应用程序可以在短暂的时间周期内切换到LowLatency 模式。虽然该模式几乎消除了GC 中断,但是除非不断手工去触发一个完整的GC 周期,否则它只能在短暂的时间里不用担心内存不足的异常。
新的SustainedLowLatency 模式在LowLatency 和Interactive 模式之间进行了折衷。它在高度调优避免GC 中断的同时,可以阻止完整垃圾回收的发生。这样的做法绝对是用必要的。新的模式行为使得应用程序可以长时间安全停留在当前模式,但尽管如此,仍需告诫开发人员避免在低滞后时间模式中进行不必要的内存分配。
Windows Workflow Foundation
Windows Workflow Foundation 的核心引擎现在可以运行在部分信任的环境中。除 SqlWorkflowInstanceStore 和 Visual Basic 表达式外,大部分特性都受支持。而前者只能在完全信任的环境中才能继续使用。
可移植类库
可移植类库现在包含了 System.Xml.Linq 和 System.ComponentModel.DataAnnotations。
SQL Server - 关联连接 ID(Correlated Connection ID)
微软 SQL Server 2012 添加了客户端和服务器间的关联连接 ID 功能。借助这次更新,SqlClient 将发送连接 ID 信息在服务端进行注册。此外,SqlClient 中还添加了以下功能以取回客户端可用的连接 ID:
- SqlConnection 提供 ConnectionId 属性
- SqlException 提供 ConnectionId 属性
- SqlException.ToString 结果将包含连接 ID
评论