生活随笔
收集整理的這篇文章主要介紹了
DotNet软件开发框架
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這是我4月份發在donews博客上的文章,現在都轉到博客園來,風滿袖希望進一步闡述你的架構,我就將這篇文章轉移到博客園。原文:http://blog.donews.com/shanyou/archive/2005/04/23/347792.aspx
???? 以我個人的能力,沒有足夠的時間和資源自行開發一套完整的平臺。在已有的眾多開源項目中選擇若干優秀的項目進行整合。“站在巨人肩膀上”是牛頓有一句名言.,同樣適合我們的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.NET 2、 架構整合: Web層的Asp.net負責數據輸入輸出, 響應用戶事件,及輸入校驗的工作,Web層上如何得到Nhibernate的Session和IbatisNet的SqlMapper?本架構中的DAO,Service以及 Nhibernate的Session和IbatisNet的SqlMapper都是通過Castle進行管理,Web層如何得到Castle IOC容器的實例呢,參照文章在asp.net頁面上得到Castle容器的實例 。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/HomePage http://nhibernate.sourceforge.net/
http://sourceforge.net/projects/ibatisnet/ 另外這里有一篇精彩文章應用系統架構設計
轉載于:https://www.cnblogs.com/shanyou/archive/2005/09/23/242680.html
總結
以上是生活随笔為你收集整理的DotNet软件开发框架的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。