[轉載]DotNet軟體開發架構

來源:互聯網
上載者:User
著作權 如有轉載請註明出處。

         以我個人的能力,沒有足夠的時間和資源自行開發一套完整的平台。在已有的眾多開源項目中選擇若干優秀的項目進行整合。“站在巨人肩膀上”是牛頓有一句名言.,同樣適合我們的IT行業。我對平台的技術架構的構想,是採用開源的ORM架構做資料持久層, Asp.net沒有合適的Web層架構,就採用Asp.net的Code-behind方式編寫代碼,資料持久層同Web表現層之間的串連採用IOC的容器。1、 開源架構選擇:資料持久層Nhibernate和IbatisNet這兩個都是非常優秀的資料持久層,Nhibernate是優秀的Hibernate的dotNet移植版本,在開源社區具有非常高的人氣,IbatisNet是Data Mapper架構,也是JAVA版的Ibatis的移植版本,在dotnet的開源社區一樣是非常受歡迎的一個工具。Nhibernate用於支援非常好的物件導向的設計的模型,IbatisNet用於支援應用程式的移植(已經存在資料庫,處於生產狀態),這兩個架構對開發人員的要求。這樣就具有更大的彈性。IOC容器Spring.Net和Castle,這是兩個dotnet非常優秀的IOC容器。Spring.Net同樣是Java的Spring 的移植版本,目前的版本是0.6,Castle則是dotnet下出現新的IOC容器,它的功能,成熟度等級方面比Spring.Net好得多,架構中準備採用Castle.最後的平台的技術架構就是Nhibernate/IbatisNet + Castle + ASP.NET2、 架構整合:Web層的Asp.net負責資料輸入輸出, 響應使用者事件,及輸入校正的工作,Web層上如何得到Nhibernate的Session和IbatisNet的SqlMapper?本架構中的DAO,Service以及 Nhibernate的Session和IbatisNet的SqlMapper都是通過Castle進行管理,Web層如何得到Castle IOC容器的執行個體呢,這裡採用HttpModule來處理之,使用用HttpContext.Current.Items來儲存容器執行個體,參看http://www.tobinharris.com/nhibernateasp.aspx。Asp.net頁面通過Service處理商務邏輯,Service負責use case邏輯, domain相關的邏輯委託給domain model去實現. Service通過DAO完成對domain model的持久化工作. Service負責資料庫事務和NHibernate Session/IbatisNet SqlMapper的管理。Domain model負責表示問題域的資料,DAO使用Nhibernate/IbatisNet持久化資料以及查詢. 在實現DAO時, 我們使用了Castle的Nhibernate/IbatisNet DAO Support,極大地簡化了代碼, 很多方法都只用簡單的一行完成。這樣的架構優點很明顯, 層次清晰, 各層的職責也明確, 便於分層設計與開發, 結合mock和Castle的IOC, unit test也是非常容易的. 而且後台(Service, domain model and DAO)的代碼不依賴於Asp.net架構,同樣的代碼可以在Web App也可以在WinForm上面使用,只需更換UI層。 使用的架構工具的連結http://www.castleproject.org/castle/show/HomePagehttp://nhibernate.sourceforge.net/ http://sourceforge.net/projects/ibatisnet/ 另外這裡有一篇精彩文章應用系統架構設計

Trackback: http://tb.donews.net/TrackBack.aspx?PostId=347792

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.