.Net 開源框架
1.開源框架選擇:
數(shù)據(jù)持久層Nhibernate和IbatisNet這兩個都是非常優(yōu)秀的數(shù)據(jù)持久層,Nhibernate是優(yōu)秀的Hibernate的dotNet移植版本,在開源社區(qū)具有非常高的人氣,IbatisNet是Data Mapper框架,也是JAVA版的Ibatis的移植版本,在dotnet的開源社區(qū)一樣是非常受歡迎的一個工具。Nhibernate用于支持非常好的面向對象的設計的模型,IbatisNet用于支持應用程序的移植(已經(jīng)存在數(shù)據(jù)庫,處于生產(chǎn)狀態(tài)),這兩個框架對開發(fā)人員的要求。這樣就具有更大的彈性。IOC容器Spring.Net和Castle,這是兩個dotnet非常優(yōu)秀的IOC容器。Spring.Net同樣是Java的Spring 的移植版本,目前的版本是0.6,Castle則是dotnet下出現(xiàn)新的IOC容器,它的功能,成熟度方面比Spring.Net好得多,框架中準備采用Castle.最后的平臺的技術架構就是:
Nhibernate/IbatisNet + Castle + ASP.NET
Nhibernate/IbatisNet + Castle + ASP.NET
2.架構整合:
Web層的Asp.net負責數(shù)據(jù)輸入輸出, 響應用戶事件,及輸入校驗的工作,Web層上如何得到Nhibernate的Session和IbatisNet的SqlMapper?本架構中的DAO,Service以及 Nhibernate的Session和IbatisNet的SqlMapper都是通過Castle進行管理,Web層如何得到Castle IOC容器的實例呢,參照文章在asp.net頁面上得到Castle容器的實例 。Asp.net頁面通過Service處理業(yè)務邏輯,Service負責use case邏輯, domain相關的邏輯委托給domain model去實現(xiàn). Service通過DAO完成對domain model的持久化工作. Service負責數(shù)據(jù)庫事務和NHibernate Session/IbatisNet SqlMapper的管理。Domain model負責表示問題域的數(shù)據(jù),DAO使用Nhibernate/IbatisNet持久化數(shù)據(jù)以及查詢. 在實現(xiàn)DAO時, 我們使用了Castle的Nhibernate/IbatisNet DAO Support,極大地簡化了代碼, 很多方法都只用簡單的一行完成。這樣的架構優(yōu)點很明顯, 層次清晰, 各層的職責也明確, 便于分層設計與開發(fā), 結合mock和Castle的IOC, unit test也是非常容易的. 而且后臺(Service, domain model and DAO)的代碼不依賴于Asp.net框架,同樣的代碼可以在Web App也可以在WinForm上面使用,只需更換UI層。
使用的框架工具的鏈接
posted on 2007-09-30 23:22 lbq1221119 閱讀(2593) 評論(1) 收藏 舉報
浙公網(wǎng)安備 33010602011771號