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

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

  • Visual Studio 2010 in MSDN
  • What's New in Visual Studio 2010
  • What's New in the .NET Framework 4
  • .NET Framework 4 Beta 1
  • Visual Studio 2010 Samples
  • Visual Studio 2010 and .NET Framework 4 Training Kit
  • Visual Studio 2010 Videos
  • .NET Framework 4 Videos
  • Visual Studio 2010 Beta 1 Walkthroughs

因为是[你必须知道的.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的版本信息,例如:

anytao-insidenet-31-01

可见没有重量级的新成员,.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为基础,任何后续更新造成的可能不同,我将尽力完善。 

 

参考文献

  • Visual Studio 2010 in MSDN
  • What's New in Visual Studio 2010
  • What's New in the .NET Framework 4
  • .NET Framework 4 Beta 1
  • Visual Studio 2010 Samples
  • Visual Studio 2010 and .NET Framework 4 Training Kit
  • Visual Studio 2010 Videos
  • .NET Framework 4 Videos
  • Visual Studio 2010 Beta 1 Walkthroughs

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果计算机磁盘格式,Mac怎么将ntfs格式的磁盘格式化

1. 首先下载NTFS For Mac。下载之后就可以读取NTFS磁盘。2. 插入要格式化的NTFS磁盘。您可以在Mac OS X下通过命令行格式化NTFS磁盘。按照以下步骤进行操作&#xff1a;启动命令行&#xff1a;应用程序 》 工具 》 终端; 输入diskutil获取帮助。格式化命令图&#xff1a;使用di…

[你必须知道的.NET]第三十二回,,深入.NET 4.0之,Tuple一二

Tuple&#xff0c;是函数式编程的概念之一&#xff0c;早见于Elang、F#等动态语言。不过&#xff0c;我第一次听说Tuple还早在2005年园子的Ninputer大牛提出在.NET 2.0实现Tuple的基本想法&#xff0c;我们可以通过以下地址仰慕当时的历史片段&#xff1a; 探讨.NET 2.0中Tuple…

支持商用吗_可商用的插画素材 | 美翻了

好素材在手&#xff0c;天下我有啊...哈哈哈喽大家周末好&#xff0c;那上周公子做的那份工作型插画模板呢&#xff0c;很多小伙伴都来问我素材是哪里找的&#xff0c;自己画的吗当然不是了&#xff01;其实我在文章中已经提到了&#xff0c;那有的人可能之前用过或可以自己找到…

永恒边境白羊座服务器维护,永恒边境升级攻略 速升50级技巧

永恒边境怎么升级快&#xff1f;分享永恒边境升级攻略&#xff0c;下面我们就一起来看看永恒边境速刷主线支线任务技巧&#xff0c;希望对大家有所帮助。20-30级篇在这个阶段&#xff0c;我们就主线任务和支线任务大家都不要错过了&#xff0c;都要好好抓住&#xff0c;我还可以…

格式化css文件,css文件格式化脚本的方法

这次给大家带来css文件格式化脚本的方法&#xff0c;css文件格式化脚本的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。#!/usr/bin/python# -*- coding: UTF-8 -*-import sys,osdef format(ddt):ddt ddt.replace(\n,)#去除换行ddtddt.replace(;},}).…

[你必须知道的.NET]第三十四回,object成员,不见了!

在.NET世界了&#xff0c;object是公认的造物主&#xff0c;其麾下的7大成员&#xff0c;个顶个的横行在任何系统的任何代码角落。 public class Object {public Object();public virtual bool Equals(object obj);public static bool Equals(object objA, object objB);publi…

直接请求接口_http类型的post和get接口测试

我们做接口测试时候&#xff0c;会发现通常需要测试的接口类型有好几种&#xff0c;比较多的是http类型的接口&#xff0c;其他还有webservice接口&#xff0c;rpc接口等等&#xff0c;本次主要说下http类型的接口我们该怎么测试&#xff0c;还有该测试哪些东西。HTTP接口概念:…

css3加载中动画效果,CSS3实现加载中的动画效果

Loading 的菊花图形组合的不太好&#xff0c;基本上实现这个功能了动画解析这个动画用到的 CSS3 特性:transform 主要使用 transform 属性的 rotate&#xff0c;将线条组合成 Loading 图形 (也就是常见的菊花图形)animation 实现将线条颜色由浅到深&#xff0c;再由深到浅来回变…

[你必须知道的.NET]第三十五回,判断dll是debug还是release,这是个问题

问题的提出 晚上翻着群里的聊天&#xff0c;发现一个有趣的问题&#xff1a;如何通过编码方式来判断一个dll或者exe为debug build还是release build&#xff1f;由于没有太多的讨论&#xff0c;所以我只好自己找点儿办法&#xff0c;试图解决这个问题&#xff0c;为夜生活带点…

执行本地sql_实用!5个在线 SQL 数据库环境

文章目录SQL FiddleDB Fiddledb<>fiddleSQL OnlineOracle Live SQL总结大今天给大家分享几个在线的免费 SQL 运行环境&#xff0c;也就是在线数据库。这些网站可以帮助我们快速运行一些 SQL 语句的测试或者验证&#xff0c;同时还可以在网络上进行分享&#xff0c;关键不…

ocp证书怎么考_没有基础怎么考初级会计证书?

初级会计证书这些年来越发火热&#xff0c;报考门槛也较低。多数报考初级会计证的考生都是没有基础的&#xff0c;那么怎么复习呢?今天会计网将给大家带来没有基础怎么考初级会计证书?1、制定一份适合自己的学习计划&#xff0c;分阶段学习对于没有基础的考生而言&#xff0c…

与gps优缺点_长缨在手,敢缚苍龙,中国北斗三号圆满收官,相比美国GPS怎样?...

2020年6月23日&#xff0c;北斗三号最后一颗全球组网卫星发射成功&#xff0c;完美收官。我们都知道信息化时代定位导航的重要性&#xff0c;那么中国北斗和美国GPS相对比怎么样呢&#xff1f;首先来了解一下北斗。中国的北斗导航系统是分三步建设的。卫星导航系统第一步在1994…

11单件模式(Singleton Pattern)

创建型模式---单件模式(Singleton Pattern)动机&#xff08;Motivation): 在软件系统中&#xff0c;经常有这样一些特殊的类&#xff0c;必须保证它们在系统中只存在一个实例&#xff0c;才能确保它们的逻辑正确性、以及良好的效率。 如何绕过常规的构造器&#xff0c;…

查找字符位置_如何使用find函数和search函数精确查找字符

精确查找指定字符在一个字符串中的位置是Excel函数运用中的一项重要的技巧&#xff0c;尤其是在截取字符串、替换字符串等文本处理过程中&#xff0c;精确定位技术更是必不可少。查找字符的主要函数是find函数和search函数&#xff0c;两者的语法完全相同。find(find_text,with…

12抽象工厂(Abstract Factory)

常规的对象创建方法&#xff1a; //创建一个Road对象 Road road new Road(); new 的问题&#xff1a; 实现依赖&#xff0c;不能应对“具体实例化类型”的变化。解决思路&#xff1a; 封装变化点-----哪里变化&#xff0c;封装哪里 潜台词&#xff1a; 如果没有变…

13建造者模式(Builder)

Builder模式的缘起&#xff1a; 假设创建游戏中的一个房屋House设施&#xff0c;该房屋的构建由几部分组成&#xff0c;且各个部分富于变化。如果使用最直观的设计方法&#xff0c;每一个房屋部分的变化&#xff0c;都将导致房屋构建的重新修正.....动机&#xff08;Motiva…

15原型模式(Prototype)

依赖关系倒置&#xff1a; 动机(Motivate): 在软件系统中&#xff0c;经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化&#xff0c;这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。 如何应对这种变化&#xff1f;如何向“客户…

14工厂方法模式(Factory Method)

耦合关系&#xff1a; 动机(Motivation): 在软件系统中&#xff0c;由于需求的变化&#xff0c;"这个对象的具体实现"经常面临着剧烈的变化&#xff0c;但它却有比较稳定的接口。 如何应对这种变化呢&#xff1f;提供一种封装机制来隔离出"这个易…

mysql 更新错误1062_mysql 出现1062错误怎么办

mysql 出现1062错误的解决办法&#xff1a;首先打开mysql的配置文件【my.cnf】&#xff1b;然后在client和mysqld下面加上相关代码&#xff1b;最后存关闭后重启mysql即可。mysql 出现1062错误的解决办法&#xff1a;两个instance的版本接近&#xff0c;猜测不是版本问题。执行…

21适配器模式(Adapter Pattern)

适配&#xff08;转换&#xff09;的概念无处不在...... 适配&#xff0c;即在不改变原有实现的基础上&#xff0c;将原先不兼容的接口转换为兼容的接口。 例如&#xff1a;二转换为三箱插头&#xff0c;将高电压转换为低电压等。 动机(Motivate): 在软件系统中&#…