程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 項目常用算法之Nhibernate三層結構

項目常用算法之Nhibernate三層結構

編輯:關於.NET

本文簡單比較了動軟三層結構和“Nhibernate三層結構”。

(1)動軟三層架構

剛開發ASP.Net應用時,使用動軟自動生成的三層架構,用起來方便。就是改動起來麻煩。比如要加一 個查詢數據的方法,先在DAL層添加接口方法,再到SQLServerDAL層添加實現代碼,再到BLL層添加一個包 裝方法。向某個表裡添加一個字段,就得重新生成一遍,要不然就自己一層一層改。

IDAL層,可以由OracleDAL或DB2DAL來實現,目的是屏蔽數據操作的細節。BLL層是有必要的,封裝業 務處理邏輯。上圖展示了數據訪問層和業務邏輯層,表示層就是aspx頁面了,調用BLL取得數據,然後展 示給用戶,很多時候會用GridView顯示數據。

在開發時,發現BLL層的兩個功能:處理業務邏輯和顯示數據,可以分離開來。動軟給數據庫中的每個 表都生成一個BLL層的類,而有的表並不對應具體的業務邏輯(比如公司信息表,個人信息表),有的表 需要混合其他表來完成業務邏輯(比如處理網站登陸的表Admin,需要結合用戶表,角色表等)。這是可 以改進的。對那些只需要提供數據、並不要處理業務邏輯的類(如用戶表等),統一交給一個的類來管理 ,給一個表名(最後用視圖封裝)和查詢條件,那個類就返回相應的數據,這是容易實現的。而把業務邏 輯的類抽象出來。請看下面的”Nhibernate三層結構”。

(2)Nhibernate三層結構

Nhibernate作為一種對象關系映射框架,以面向對象的方式來操作數據庫,簡單方便。以下是項目中 使用的“Nhibernate三層結構”:

有NHibernate支持,每個Model層的實體類可以封裝數據操作方法(如Save,Update等),BLL層可以方 便調用。事實上,BLL大多涉及到單個對象的操作(新增或更新、刪除),這個NHibernate的強項,而且 能以面向對象的方式很好地配合業務邏輯的實現。

DataViewer是從原來動軟三層架構裡的BLL層分離出來的,負責給前台頁面提供數據。應該歸到表示層 。這樣,層次就清晰多了。BLL只負責處理業務邏輯,不提供前台展示的數據。或者說BLL層負責修改後台 的數據庫,而DataViewer不會修改數據庫,只負責讀數據庫,向前台輸出組合查詢、分頁後的數據。

DataViewer不使用NHibernate的HQL,原因是HQL可能會導致效率的低下,使用原來的SQL查詢方式,不 用學習新的東西,還能做一些查詢優化。DataViewer最好是操作視圖,不操作具體的表,方便修改。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved