[你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望

时间:2022-04-13 22:52:56

发布日期:2009.05.22 作者:Anytao 
© 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处。

/// <summary>
/// 本文开始,将以《.NET 4.0深入》为主线,开始一段体验.NET 4.0的激动旅程。
/// </summary>

总体来说,这是一篇介绍性的文章,不会涉及过多技术细节和研究过程。但是,作为拉开序幕的第一页,本文以提纲挈领的方式展开对.NET 4.0的初次体验。从What’s new的角度,开始我对.NET 4.0新特性的探索之旅。既然是介绍,那么首先给出导航式的链接是必要而必须的,因为一篇小小的篇幅却是难以交代全面What’s new in details,所以看官尽情各取所需吧:

因为是[你必须知道的.NET]子系列,所以在此我只关注2010发布之后伴随.NET 4.0的新特性,总结起来主要包括以下几个方面:

  • CLR (Common Language Runtime)
  • DLR (Dynamic Language Runtime)
  • C# and VB .NET
  • Web and Networking
  • Basic class libraries(BCL)
  • Data
  • Client
  • Web
  • Communications

所以,对what’s new的解读,我将分为两个大的部分来诠释:

  • Hot Focus,热点解读。对新特性中值得期待和关注的技术点进行一点整理,因为太多太多了,所以学会抽丝拨茧才是正确之道,在Hot Focus中我们首先对亮点进行一番认知。同时,Hot Focus内容体系也将是为了《深入.NET 4.0》子系列探索的方向和大纲。
  • Full View,.NET 4.0全景图。把概念涉及到各个新增的方面,由此对.NET4.0有个全面和基本的了解。

Hot Focus

在我看来,值得Hot Focus的主要包括以下几个方面:

  • CLR & DLR
  • C#
  • Web
  • Cloud
  • Data
  • F#

下面进行一一分解。

CLR 4.0

是的,不用怀疑,CLR 4.0来了,从CLR 2.0一跃升级到CLR 4.0,我们对新建项目进行反编译,即可从Manifest中获取当前CLR的版本信息,例如:

[你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望

可见没有重量级的新成员,.NET产品组是不敢贸然为新生儿挂上如此响亮的封号。那么这个分量足够的新家伙到底是谁呢?

答案是:

  • DLR(Dynamic Language Runtime),动态语言运行时,提供了对动态语言在CLR级别的支持。
  • Parallel Computing,并行计算,在多核时代,并行计算已经不可避免。新的平台下,对于并行的支持也随之而来,我们不需要在直接对线程进行管理,Parallel和Task类,当然还有PLINQ(Parallel LINQ)都将闪亮登场。
  • GC,GC也有新变化,我们拭目以待。
  • Convariance and Contravariance,逆变与协变,解决了泛型继承的某些问题,算是一场迟来的完善。
  • Interoperability,互操作将不依赖于原有的RIAs,新的CLR确保了类型安全操作。
  • Lazy Initialization,在未来的日子,通过System.Lazy<T>来为你的实例提供延迟初始化成为可能,这将意味着你的类型可以在实际需要的时候才进行实例化操作、分配内存空间,对性能的控制达到了新的高度。
  • In-Process Side-by-Side Execution,In-Process Side-by-Side hosting解决了不同版本应用在CLR 4.0平台下运行的问题,我们以后详细讨论。

除此之外,还包括:

  • Security
  • ETW Events
  • Code Contracts
  • Profiling

所有的概念,我们都将随后品味。那是因为,所有的概念都是重量级的。

C# 4.0

C# 4.0主要引入了以下程序元素:

  • Office Programmability
  • Dynamic
  • Covariance and Contravariance
  • Type Equivalence

关于.NET 4.0和C# 4.0的若干概念,我在[[你必须知道的.NET]第三十回:.NET十年(下)]已经进行过介绍性的演示与探讨,大家不妨一睹为快。

ASP .NET 4.0

What's New in ASP.NET and Web Development

对于Web开发而言, ASP .NET 4.0从3.5开始就已经提供了很多未集成的新东西,其中包括了类似于MVC在内的很多了不起的改变。所以,对于.NET 4.0而言,我们对于Web开发的贡献,在于对过去的整理和再生,值得关注的内容主要包括:

  • MVC,虽然VS2010 Beta1还没有将MVC Framework整合在内,但是微软承诺在Beta2中我们就可以看到新的MVC身影。
  • Dynamic Data,对,早已领略了如何一分钟之内开发一个增删改查式的动态站点,在ASP .NET 4.0中实现数据驱动的Web开发更加Powerful了。
  • Web Form,在ASP .NET 4.0传统的Web Form开发被注入了更多的新特性,我们可以像MVC Application那样无缝的使用ASP .NET Routing,对于数据源提供了Filtering支持,更多的View state控制,还有好多好多。。。
  • EntityDataSource Control,支持基于Entity Framework的数据绑定控制。

还有很多,详见What's New in ASP.NET and Web Development

Data

What's New in ADO.NET

在数据方面主要还是ADO .NET Entity Framework的增强和Expression Tree的更多支持。EF主要体现在以下方面:

  • Persistence-Ignorant Objects,这个特性是令人欢欣鼓舞的,在新的EF框架下,EF实体类和非EF实体类都应用EF提供的数据支持,这将意味着原有的数据模型也可以畅享EF了。
  • Deferred Loading of Related Objects,如果你没有体会过原来EF处理延迟加载使用的方式时:
if (!user.RoleReference.IsLoaded)
{
user.RoleReference.Load();
}

是很难理解,这一新特性为代码优化给出了机会。

  • Functions in LINQ to Entities Queries,一切皆LINQ的时代,这点也不奇怪。
  • Customized Object Layer Code Generation,为EF数据设计器提供了自动生成代码的可配置向导,更加人性化的选择。
  • 还包括:Complex Type Support、Naming Service、Improved Model Brower Funcationality。

另外,对于Expression Tree,控制了几个新的类型支持,例如 LoopExpression 和TryExpression

BCL

基础类库的更新,是每次.NET版本更新的重要内容,.NET 4.0中基础类库的新增内容,同样惊为天人。在此我仅列举几个重要的更新,更多的内容参考MSDN。

  • Collections
    • BigInterger
    • SortedSet<T>
    • Tuples
  • I/O
    • File System Enumeration
    • Memory-Mapped Files
    • Isolated Storage
    • Compression
  • Exception
  • Reflection
  • 64-bit
  • Application Domain Resource Monitoring
  • Threading
  • Unified Model for Cancellation
  • Thread-Safe Collection
  • Synchronization Primitives
  • 。。。
  • 。。。
  • 很多很多,我们的策略显然是随用随取。

Cloud

云计算将不可避免的到来,在.NET 4.0平台下,Azure Service应用将眼花缭乱,但是可以肯定的是开发模式更加简化,大量的问题需要时间在以后,我们到时再来掂量一二。

F#

一个对我全新而又有足够吸引力的新语言,以后再说吧:-)

Full View

除了以上的重点内容,作为.NET 4.0大家族的一部分,还有很多很多令人兴奋的新东西加入进来,令我们叹息一切太多太快的同时,又带来一丝丝惊喜和心动。废话少说,对其进行一番简单的整理:

  • MEF
  • WPF
  • WCF 4.0
  • WF 4.0
  • Appliction Server(代号Dublin)

结论

.NET 4.0来了,在这个夏天。在蚊子和啤酒相伴的深夜,我将继续[你必须知道的.NET] 系列的完善,将自己对于.NET 4.0新特性的探索形成[深入.NET 4.0]这样一个子系列。同样是一如既往的将角度把握在语言和平台本质的探索,可能的角度上,最佳实践式的应用和国外最新论调的共享同样是这一新生力量关注的话题。好戏才刚开始,我们继续在路上。

注:你必须知道的.NET, .NET 4.0子系列以VS2010 Beta1和.NET 4.0 Beta1为基础,任何后续更新造成的可能不同,我将尽力完善。

参考文献