艾伟: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。以上只是笔者的经验感受,又写的不对的地方,还请多多指正。

目录
相关文章
|
3月前
|
开发者 Windows Android开发
跨平台开发新选择:揭秘Uno Platform与.NET MAUI优劣对比,帮你找到最适合的框架,告别选择困难症!
【8月更文挑战第31天】本文对比了备受关注的跨平台开发框架Uno Platform与.NET MAUI的特点、优势及适用场景。Uno Platform基于WebAssembly和WebGL技术,支持Windows、iOS、Android及Web平台,而.NET MAUI由微软推出,旨在统一多种UI框架,支持Windows、iOS和Android。两者均采用C#和XAML进行开发,但在性能、平台支持及社区生态方面存在差异。Uno Platform在Web应用方面表现出色,但性能略逊于原生应用;.NET MAUI则接近原生性能,但不支持Web平台。开发者应根据具体需求选择合适的框架。
113 0
|
SQL 数据库连接 数据库
陈伟视频41---60集
陈伟视频41---60集
64 0
|
机器学习/深度学习 传感器 人工智能
AI从System 1迈向System 2重要一步,中科院自动化所探索物体动静态物理属性,入选AAAI和ICLR
AI从System 1迈向System 2重要一步,中科院自动化所探索物体动静态物理属性,入选AAAI和ICLR
143 0
|
存储 算法 UED
颠覆传统、大规模检索系统首次引入「热刷新」模型升级,腾讯ARC Lab论文入选ICLR 2022
颠覆传统、大规模检索系统首次引入「热刷新」模型升级,腾讯ARC Lab论文入选ICLR 2022
134 0
Science | COVID-19大流行期间,研究重点应放在高质量研究
Science | COVID-19大流行期间,研究重点应放在高质量研究
117 0
Science | COVID-19大流行期间,研究重点应放在高质量研究
|
存储 机器学习/深度学习 人工智能
Goya from Habana Labs --- 他山之石
前言 笔者从GPU行业转行,加入AI芯片软件团队正好一年时间。参与了Alibaba NPU(含光800)的架构,软件建模,芯片驱动,框架等多方面的工作。在一年到来之际,特别想针对自己过去一年的工作和学习写一些“思想总结”。正好我们在准备云栖大会的材料,学习了竞争对手的相关文档,萌生了利用一些夜深人静的晚上,写写一些体会。因为相关工作学习时间短,写的这些东西大都很浅显,对内
|
测试技术 Windows
艾伟:微软一家人---在云端运行的ServiceBus
TECHED2008大会已过去了快一个月了,在大会上所看到的关于 Azure的介绍至今还在头脑中不时出现。当然我本人不是什么云计算的狂热支持者,到如今我的观点也与蔡学镛先生的差不多,就是关注加观望(以免在云端一脚踏空摔下来)。
797 0
|
架构师 uml C++
我眼中的Visual Studio 2010架“.NET研究”构工具
  影响架构质量的是构建体系架构的思想、原则、实践与架构师的经验,绝不是工具。即使是最优秀的架构工具,也不可能像倚天宝剑一般——倚天一出,谁与争锋——似乎谁握住了这把利刃,就能够成为武林盟主。架构工具可以改善架构师的工作,却不能替换架构的过程。
1150 0
|
项目管理
艾伟也谈项目管理,杂谈项目中的那些事儿:计划与变化
  IT项目中,我们最恐惧什么?   项目中止?不是,因为对于尽心尽力的我们而言,“项目中止”很少是因为咱这些苦哈哈,也许是财务危机、也许是项目的必要性已不存在、也许仅仅是无限期的延迟。   所以,这里我们讨论的是:一个正在执行的还算正常的项目进程中的事情。
1416 0
|
Android开发 iOS开发 开发者
“.NET研究”移动开发者生态实录:在失败与成功的天平上
  移动开发者当然不是这两年才出现的角色,但是个人开发者和小型团队开发者通过开发应用程序盈利却是在最近两年移动互联网尘嚣日上之后才出现的。在靠卖License作为主要盈利模式的传统“大”软件行业,不管中小型开发者如何优秀,都不太可能在与微软、Sun、CA等大型软件公司的较量中赢得胜算。
1324 0
下一篇
无影云桌面