艾伟:F4何去何从 --- 大视野观察Framework 4.0

简介: Framework 4.0 CTP版发布一个多月了,在此期间稍有闲暇就打开来试试,尝试一下这个新东东。总体感觉微软现在技术大爆炸,一下子往F4里塞了好多东西,有的确实不错, 不过有的还是感觉有点粗糙,还经不起实战考验。

Framework 4.0 CTP版发布一个多月了,在此期间稍有闲暇就打开来试试,尝试一下这个新东东。总体感觉微软现在技术大爆炸,一下子往F4里塞了好多东西,有的确实不错, 不过有的还是感觉有点粗糙,还经不起实战考验。那以下我会简单和大家过一遍这个新的框架,一起来聊聊F4的前景。

简单回顾下历史,F1.1其实是个试验品,.Net Framework真正走向成熟其实从F2开始的,之后的F3,F3.5其实都是基于F2的扩充,我个人感觉应该定义为F2.1,F2.2。没想到微软喜欢搞大跃进,随便加点东西就变个新版本。

F3+F3SP1除了修正了一些F2的bug之外,主要的扩展是加了3W框架,分别是WPF,WCF,WWF。
F3.5和F3类似,在修正之前的Bug之外,主要的扩展是:LINQ,WF,WCF,Add-in(今后会被MEF替代)
F3.5SP1,又添了几个新东东:MVC,Dynamic Data,Entity Framework,Data Services等

当然这里面我们也不能忽略了F3在语言上进行的改进,例如Linq,Lambda,扩展函数,var类型的使用等等。

不过说实在的,真正在实际项目中。。除了C#,除了WCF有使用过以外,其他的W组件几乎都和我无缘。即使是曾经有段时间对Linq-to-Sql 很感兴趣的时候,结果突然一声噩耗,ADO.NET开发组不打算开发了。。让我心理顿时又凉了半截。所以F3,F3.5在我眼里。。其实就是加了一大坨没 啥实际用处的东东。。

那我们看看F4又给我们带来了什么?让我们来看看微软给F4规划的新蓝图:

对比了一下F3.5的蓝图,我们可以发现4.0新加的东西: Velocity,Dynamic Language,MEF,Parallel Extensions。

Velocity:

这是微软提供的分布式缓存解决方案,已经有CTP版了。之前看过Terry Lee兄对Velocity的介绍,总的感觉就是用起来好麻烦。因为之前这块我一直是使用memcached的,而且memcached是经过像 facebook这样的大网站考验的,而且还兼容各种平台。所以微软想靠Velocity搞定memcached,我感觉还是要走很长一段路的。

不过有个不错的地方,就是我发现Velocity有个tag功能,这个对实现key的批量清理是很有用的,算的上Velocity的一个亮点。当然 memcached的批量清理,如果对客户端做下封装也是可以实现的,具体可以参考我的随笔中关于memcached部分的介绍,嘿嘿,打个小广告。

Dynamic Language:

如果追溯微软之前最风靡的动态语言应该算是ASP了,不过后来出来.Net之后微软又走上了老路。。搞得每次更新,都要重新编译dll上传。。好麻 烦。传统式语言对并发、扩展本身支持不够好,对程序员素质要求高,开发效率低等诸多因素,迫使一部分人重新审视其他编程范 式,Erlang,Python,Ruby这些语言得到了关注。F4里面新加入了F#,IronPython,IronRuby等新的动态语言,应该是 F4跨出的很重要的一步。从感情上,我最支持的是IronPython,毕竟之前用Python用的太爽了,哈哈,如果能在.Net上也用上 Python,是件多完美的事情啊。不过我估计微软还是比较指望F#的,作为DL的主打产品。简单的了解了一下,感觉他在语言的简洁,封装,易用性方面都 是有很不错的表现。不过毕竟是新的语言,就像当年C#一样,也是需要漫长的时间考验,希望F#一路走好。

MEF:

说实在的,我不知道MEF的定位是什么。如果定位是DI/IOC容器,那企业库或者castle照理说都有实现了,又何必再搞一个呢? 后来仔细翻了一些文档,了解到MEF有个新特性,就是通过Contract实现DI操作,从某种程度上进一步进行了解耦。估计MEF会从这方面作为一个突 破口,在将来的版本中有更好的表现。一句话,别再拿个DI/IOC容器来忽悠我们了。

Parallel Extensions:

好东西啊~这块一直是我梦寐以求的东西,特别是现在机器都是多核的,如果写个程序,不能充分发挥多核的性能,那真是暴殓天物,白买了那么多cpu了。不过现在CTP版本还是一些比较简单的并行操作,在数据同步方面还是需要加强,希望之后的版本会给我们带来更大的惊喜。

当然除了新加入的东西之外,F4还对很多组件做了改进,像MVC,Entity Framework,Linq-to-Sql(虽然蓝图是吧LtS列进去了,但最终能不能F4的18人大名单,还要观察观察),ASP.NET AJAX,Dynamic Data,WPF等等。多得眼睛都看花了。。但里面有多少是真正好的,还有待考察。。

总体感觉,F4带来的新东西还是惊喜大于失望。不过也提醒大家,不是所有的东西都是好的,有的东西看上去很美,其实并不咋的,所以我们还是需要带着批判的眼光来观察F4。以上只是笔者的经验感受,又写的不对的地方,还请多多指正。

目录
相关文章
WRF模式案例运行初体验--飓风示例全过程记录
本文主要记录一下首次学习WRF并运行官网案例的全过程。
WRF模式案例运行初体验--飓风示例全过程记录
|
5月前
|
开发者 Java
Play Framework深度解析:依赖注入的神秘力量,如何助力Web应用架构优化?答案即将揭晓!
【8月更文挑战第31天】依赖注入(DI)是现代软件开发的关键技术,用于分离对象创建与依赖关系,提升代码的可维护性和可测试性。Play Framework是一款高性能Java Web框架,内置了基于Google Guice的DI支持。本文探讨Play Framework中DI的最佳实践,包括定义组件、构造函数注入、字段注入以及作用域控制和自定义绑定等高级特性,帮助开发者轻松构建结构清晰、可维护性高的Web应用。
66 0
28个案例问题分析---22---原型图的面向对象--xiaopiu
28个案例问题分析---22---原型图的面向对象--xiaopiu
85 0
28个案例问题分析---08---让软件的使用者成为软件的设计者--思想
28个案例问题分析---08---让软件的使用者成为软件的设计者--思想
76 0
|
测试技术 BI
【Power平台】Power Apps项目规划阶段(4):识别活动
【Power平台】Power Apps项目规划阶段(4):识别活动
|
存储 测试技术 BI
【Power平台】Power Apps项目规划阶段(1),识别业务问题
【Power平台】Power Apps项目规划阶段(1),识别业务问题
|
编解码 Shell
在集群上使用ERA5数据驱动WRF模式---一层嵌套记录
在集群上使用ERA5数据驱动WRF模式---一层嵌套记录
在集群上使用ERA5数据驱动WRF模式---一层嵌套记录
|
Java 大数据 API
大数据学习记录---JAVA篇---后续知识
一些面向对象之后的知识的学习,包括下面知识:1、包装类 2、正则表达式 3、Array类 4、Lambda表达式 5、collection集合 --List系列和Set系列 6、 map集合--重点hashmap 7、泛型修饰 8、可变参数 其实一种常见API的知识,也不太需要死记硬背,要学会查api文档去看里面具体每个方法是怎么用的,在后续使用中去学去熟悉。
158 0
大数据学习记录---JAVA篇---后续知识
|
算法 Java Go
慢聊Go之Go垃圾回收演进中的给力算法之三色标记
慢聊Go之Go垃圾回收演进中的给力算法之三色标记
268 0
慢聊Go之Go垃圾回收演进中的给力算法之三色标记
|
前端开发 .NET C#
一起谈.NET技术,WCF+WF双剑合璧构建微软的SOA系列(一):从一个简单的Demo开始
  本系列文章将从实例出发,以实例结尾。由浅入深讲解在我们项目中如何使用WCF和WF。我们会发现使用WCF+WF将造就出其他技术无法达到的高度。最后我会将程序架到云端。   微软.net的3W(WPF、WCF、WF)战略如下图。
1249 0