Spring.NET在.NET新時(shí)代的尷尬
業(yè)界普遍接受的觀點(diǎn)是:開(kāi)發(fā)思想是重要的,相對(duì)而言用什么平臺(tái)實(shí)現(xiàn)是次要的。從這個(gè)意義上看Spring.NET(或者說(shuō)Spring)在構(gòu)思框架的核心價(jià)值的時(shí),著重面向的領(lǐng)域是“依賴注入”和AOP兩個(gè)方面,但“分布式調(diào)用”以及“基于整個(gè)調(diào)用棧后動(dòng)態(tài)對(duì)象生成”這兩個(gè)概念對(duì)于Spring而言只是方面(Aspect)而已,但對(duì)于開(kāi)發(fā)人員而言他倆確實(shí)是天天都要面對(duì)的問(wèn)題。
向上,他不像WCF可以獲得微軟服務(wù)器產(chǎn)品家族的支持,更遠(yuǎn)遠(yuǎn)遜色于類(lèi)似COM+的待遇,但規(guī)模比較大的.NET項(xiàng)目又往往需要集成BizTalk、ISA、SMS、Exchange、SQL Server等一系列產(chǎn)品。如果使用Spring.NET(或者加上NHibernate)也就意味著雖然運(yùn)行著較高版本的服務(wù)器產(chǎn)品只能屈就于有限功能集的使用。另外,在Spring.NET的設(shè)計(jì)中似乎對(duì)于運(yùn)維能力以及性能指標(biāo)的采集總是基于日志系統(tǒng)的,但如果什么內(nèi)容都寫(xiě)到日志,這本身就是很大的性能損失;尤其在以WMI為標(biāo)準(zhǔn)的.NET企業(yè)環(huán)境中,Spring.NET在運(yùn)維能力設(shè)計(jì)上存在不小的缺陷;
向下,Spring.NET 1.1在試圖彌合其與ASP.NET的差異,不過(guò)似乎又慢了一步,因?yàn)锳SP.NET自己的框架也在隨著.NET 3.5的發(fā)布發(fā)生變化。與此同時(shí),ADO.NET的異步處理能力、LINQ的動(dòng)態(tài)對(duì)象映射能力處處都直指Spring.NET的最佳排檔—— NHibernate,如果準(zhǔn)備啟用新.NET 3.5開(kāi)發(fā)的團(tuán)隊(duì)那么就需要做一個(gè)選擇,繼續(xù)跟著3rd開(kāi)源的衣缽還是跟著.NET自己的技術(shù)走。
在EntLib 4發(fā)布前夕,P&P團(tuán)隊(duì)已經(jīng)在codeplex上公布了相關(guān)Unity的計(jì)劃及其CTP版本,其他的Application Block也陸續(xù)遷移到Unity之上。雖然EntLib只是整個(gè).NET開(kāi)源的滄海一粟,但其風(fēng)向標(biāo)意義明顯,其企業(yè)級(jí)特性支持可以直接用于.NET Native的WCF,而對(duì)對(duì)象的管理則全部交給Unity完成,這個(gè)組合不僅可以向上貫通微軟一系列服務(wù)器產(chǎn)品,也可以與Office System、WMI集成在一起。并且隨著微軟相關(guān)技術(shù)平臺(tái)的升級(jí),WCF和Unity也會(huì)逐步更新,而且會(huì)與微軟的服務(wù)器產(chǎn)品、Office System產(chǎn)品、開(kāi)發(fā)工具以及監(jiān)控產(chǎn)品結(jié)合在一起。對(duì)于.NET團(tuán)隊(duì),尤其是實(shí)施較大規(guī)模.NET項(xiàng)目(包括產(chǎn)品集成)的團(tuán)隊(duì)而言,這是一個(gè)新的選擇。
【編輯推薦】





















