盡管微軟和.NET社區(qū)一直都是經(jīng)常對立的,但是最近幾年都加入到了開源運(yùn)動(dòng)的陣營中來了。而且依靠開源,微軟社區(qū)中的開源開發(fā)工具日益發(fā)展壯大。本文將深入介紹六個(gè)在全球受到數(shù)百萬.NET開發(fā)者擁戴的開源項(xiàng)目。
AJAX 控件工具包
僅僅五年時(shí)間,自從AJAX的概念提出來以后,使用JAVASCRIPT,XML和異步通信去提升用戶的在線體驗(yàn)已經(jīng)從新穎的想法變?yōu)閷?shí)在的需要。因?yàn)锳JAX驅(qū)動(dòng)的要求已經(jīng)變得很普通,不久開發(fā)者們都投入到開發(fā)AJAX框架中去,這使得像日歷和客戶端表單驗(yàn)證這樣的功能變得很容易實(shí)現(xiàn)。
.NET開發(fā)者在處理AJAX方面有ASP.NET AJAX Control Toolkit工具包這個(gè)很好的解決方案。它由微軟公司和開發(fā)者社區(qū)聯(lián)合開發(fā),提供了多種功能強(qiáng)大的控件,如評分控件,模態(tài)彈出窗口,密碼強(qiáng)度驗(yàn)證器,可拖拉的面板。
可以查看ASP.NET主頁上該項(xiàng)目的主頁,上面有控件示例的清單和例子,除此之外,還有大量的導(dǎo)學(xué)文章,能指導(dǎo)如何充分利用工具包的很多特性。
Mono
2002年,.NET 1.0的出現(xiàn)是軟件開發(fā)領(lǐng)域中的一個(gè)分水嶺,在眾多特性中,它可以讓開發(fā)者使用任何支持.NET公共運(yùn)行時(shí)的語言去開發(fā)應(yīng)用。當(dāng)然,微軟將WINDOWS平臺作為.NET運(yùn)行的主要平臺,這對象LINUX等其他系統(tǒng)來說是個(gè)噩夢。然而因?yàn)?NET是基于一系列公開的標(biāo)準(zhǔn)的,一些企業(yè)組織的開發(fā)者開發(fā)了Mono項(xiàng)目,能讓.NET可以運(yùn)行在非微軟平臺上。
現(xiàn)在由于Novell公司的大力支持,Mono項(xiàng)目這些年發(fā)展得相當(dāng)迅速,它不但能讓.NET跑在非微軟的平臺上,也支持在LINUX上運(yùn)行Sliverlight技術(shù)(目前代號為Monnlight),甚至開始研究在使用C#語言去編寫iPhone上的應(yīng)用。
可以到Mono的主頁上去查看更多的相關(guān)信息,除此之外還可以去下載Mono專門為Visual Studio開發(fā)的插件工具。
NHibernate
盡管在軟件開發(fā)中,關(guān)系數(shù)據(jù)庫的應(yīng)用是很普遍了,但開發(fā)者和數(shù)據(jù)庫之間還是存在一些壁壘。問題關(guān)鍵在于如何高效地在應(yīng)用和數(shù)據(jù)庫之間以各自支持的格式轉(zhuǎn)換數(shù)據(jù)。開發(fā)者盡了很大的努力創(chuàng)造了很多方便轉(zhuǎn)換的工具,其中最著名的是象Hibernate這樣的對象關(guān)系映射框架(ORM)
.NET開發(fā)者在處理ORM方面有NHibernate這樣的工具,自從2005年它出現(xiàn)后,廣為受到開發(fā)者的歡迎。NHibernate能完成.NET開發(fā)者面對的大量枯燥的數(shù)據(jù)日常操作,不僅在映射應(yīng)用的模型到數(shù)據(jù)表上很有作用,而且能根據(jù)預(yù)先定義好的數(shù)據(jù)模型去產(chǎn)生表的模型定義。
NHibernate的網(wǎng)站上提供了大量的有用的資源,能幫助你去了解這個(gè)強(qiáng)大的ORM解決方案框架
ASP.NET MVC
MVC的架構(gòu)在現(xiàn)在的Web開發(fā)中起著重要的作用,象Ruby on Rails,Zend Framwork等框架都是使用MVC框架進(jìn)行開發(fā)的。多虧有了ASP.NET MVC框架,.NET開發(fā)者也能夠擁有一個(gè)功能強(qiáng)大的MVC框架了。ASP.NET MVC框架提供了MVC的良好分層,測試驅(qū)動(dòng)以及“約定優(yōu)先”的最佳實(shí)踐,為.NET開發(fā)者構(gòu)建復(fù)雜的網(wǎng)頁提供了強(qiáng)大的解決方案。因?yàn)槭腔?NET構(gòu)建的,開發(fā)者能充分利用ASP.NET的諸如數(shù)據(jù)緩存和表單驗(yàn)證等功能。你還可以發(fā)現(xiàn)不少其他項(xiàng)目也是基于ASP.NET MVC構(gòu)建,并且提升了其功能,象MvcContrib,它擴(kuò)展了ASP.NET MVC的功能,還包括象UI helper和模型綁定器等功能。
ASP.NET MVC框架的網(wǎng)站提供給新手一系列學(xué)習(xí)資源,包括了視頻系列導(dǎo)學(xué),它們通過示范搭建應(yīng)用程序的方法去指導(dǎo)讀者學(xué)習(xí)。
CruiseControl
現(xiàn)在軟件的復(fù)雜性使得軟件開發(fā)團(tuán)隊(duì)不得不重新考慮軟件開發(fā)的過程,這要引入既能縮短開發(fā)時(shí)間又能提高軟件質(zhì)量的方法。這使得出現(xiàn)了大量的軟件開發(fā)最佳實(shí)踐,它們越來越廣泛應(yīng)用在企業(yè)中,象測試驅(qū)動(dòng)和持續(xù)集成。其中持續(xù)集成在整個(gè)軟件開發(fā)過程中,通過有計(jì)劃和嚴(yán)格地整合工程的組件,并能盡可能減少在這方面付出的時(shí)間和精力。這使得開發(fā)者能盡早發(fā)現(xiàn)和解決在整合過程中的問題,而不是等問題變得越來越復(fù)雜再去解決。
更準(zhǔn)確來說,持續(xù)集成包含了軟件開發(fā)過程中的自動(dòng)化過程,包括定期運(yùn)行測試,在每次開發(fā)者向工程代碼庫提交代碼時(shí),重新編譯構(gòu)建項(xiàng)目。因?yàn)檫@個(gè)自動(dòng)化的階段包含了大量的象文件移動(dòng)等操作,近年來,很多能完成自動(dòng)持續(xù)化集成的解決方案出現(xiàn)了,其中包括開源項(xiàng)目CruiseControl,CruiseControl提供了自動(dòng)化構(gòu)建的工具,可以查看構(gòu)建的結(jié)果,并且生成報(bào)告。CruiseControl現(xiàn)在已變成一個(gè)十分流行的持續(xù)集成解決方案。在眾多的第三方持續(xù)集成工具中,可以找到象JCCTray這樣的工具,它是一個(gè)桌面運(yùn)行的應(yīng)用程序,可以直接了解你的構(gòu)建服務(wù)器的狀態(tài),并且BigVisibleCruise這個(gè)工具,使用可視化的提示顯示構(gòu)建服務(wù)器上所有受管理的工程的狀態(tài)。
DotNetNuke
隨著越來越多的公司正把它們的商務(wù)活動(dòng)遷移到在網(wǎng)上,這需要功能強(qiáng)大的網(wǎng)站內(nèi)容管理系統(tǒng),而不僅是簡單更新一下網(wǎng)頁內(nèi)容。實(shí)際上,現(xiàn)在的網(wǎng)站不僅是賣商品,同樣也管理銷售機(jī)會(huì)和其他合同等,也要維護(hù)文檔和提供如圖片和視頻等多媒體服務(wù)。最有效去管理這些大量的內(nèi)容的是采用集中的內(nèi)容管理系統(tǒng)。其中最著名的解決方案是DotNetNuke,它是一個(gè)功能強(qiáng)大的