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。以上只是筆者的經驗感受,又寫的不對的地方,還請多多指正。
文章轉載自:http://it.dianping.com/framework_4_overview.htm