ASP.NET 常見參考項目的 UI、BLL 、Model 、 DAL 分析

來源:互聯網
上載者:User
應用/項目名稱 UI層實現 Business Model & Logic Layer 實現 Data Access Layer 實現
Personal Web Site Starter Kit 在ASP.NET頁面上直接利用 ObjectDataSource 來綁定 PhotoManager 中的方法來擷取資料、更新資料 兩個資料實體類(Album、Photo),一個管理類(PhotoManager)
自行解決資料庫連接、使用 SqlCommand 來調用預存程序來完成
Club Web Site Starter Kit 在ASP.NET頁面上直接利用 SqlDataSource 來擷取資料、更新資料 只有一些簡單的 Helper/Utility類,商務邏輯大多在頁面上實現 有一個DataSet,提取 Member表的資料,在自己的資料庫中擴充了 SqlMembershipProvider的欄位
Classifieds Site Starter Kit 在ASP.NET頁面上,增/刪/改主要是利用FormView調用BLL中的ModelDB來實現,資料列表主要利用ModelCache的List和ModelDB返回的ModelDataTable來綁定 1) BLL中實現了 ModelDB的類,調用DAL中的DataSet來進行資料更新,如果是查詢資料(GetModelList),則得到 ModelDataComponent.ModelDataTable,這是資料集自動產生代碼中的一個類

2) 在 App_Code 的Web目錄中,主要實現了部分實體在 HTTP Context中的Cache功能,建立了 CachedModel(資料實體類)及其管理對象 ModelCache,後者主要是將BLL層的ModelDB的Retrive結果DataTable轉成 List

全是ASP.NET 2.0 中的DataSet,實現了所有表資料的擷取與更新,它是調用預存程序來實現的
Commerce Starter Kit 在ASP.NET頁面上,有一些是直接調用 ModelManager對象來完成使用者互動,有一些則是利用 ObjectDataSource 綁定 ModelManager 來達到同樣功能

對於某些操作,如果沒有對應的 ModelManager 則直接使用 SqlDataSource

1) 在Objects目錄下,定義了資料實體類,包含所有屬性的Get/Set方法的定義,沒有執行個體化方法,而是使用 void Load(IDataReader)來初始化,其中有一個對象(ShoppingCartItems),則繼承至DataTable,利用 BuildDataTable()來進行初始化

2) 利用數個 ModelProvider 將與資料庫的主要互動功能封裝起來,提供了實體層次的CRUD

3) 在 BLL 目錄下,有數個 ModelManager,提供從業務層面對 Model 的操作,其中主要是調用 ModelProvider來完成具體的操作

在 ModelProvider項目中中,先定義ModelProvider抽象類別,再由 SqlModelProvider 來繼承,後者中利用 SqlHelper 來完成資料訪問,主要是調用預存程序
Duwamish 7.1
(.NET 1.1)
調用BusinessFacade中的 OrderSystem 和 ProductSystem 中的方法完成使用者互動,這主要是調用DAL層的相關對象來完成的 1) ModelData,繼承自System.Data.DataSet,在建構函式裡調用BuildDataTables()來初始化一個DataTable用來儲存Model資料

2) 在BusinessFacade和BusinessRule中,實現了與商務邏輯有關的內容,調用資料層的 Models 來完成資料訪問

實現了數個 Models對象,提供了對於 ModelData的CRUD方法,它也是調用 SqlHelper 來完成與資料庫的互動
Jobs Site Starter Kit 利用 ObjectDataSource 綁定 Model 類,Command 主要是調用 Model 的 CRUD方法 在 Model 對象中定義了所有屬性和CRUD方法,實現時調用了 DAL 的 DBAccess 對象,也使用了諸如 SqlParameter 等對象 只有一個類 DBAccess ,屬於工具類,類似於 SqlHelper,它是利用 System.Data.SqlClient 來實現的,如果向其他資料庫移植,代碼量不大
Timer Tracker Starter Kit 利用 ObjectDataSource 綁定 Model 類,Command 主要是調用 Model 的 CRUD方法 在 Model 對象中定義了所有屬性和CRUD方法 DataAccess:抽象類別,定義了DAL層需要實現所有 Model 的 CRUD 對應的資料存取方法

DataAccessHelper:工廠類,利用配置建立相應的 DataAccess 對象

SqlDataAccess:DataAccess 的 SQL Server 實現,其中也包含一些類似於SqlHelper 的通用方法以簡化代碼

.Text 0.95
(.NET 1.1)
大多數是調用 Model有直接調用 SqlDataProvider 來擷取資料、更新資料 在Dottext.Framework 的 Component 中定義了業務實體 Model 和 ModelCollection,在在Dottext.Framework定義了 Models 類,主要用提供 Model 的 CRUD 方法,其中的 R 返回 ModelCollection 在Dottext.Framework 的 Data 中定義了 IDbProvider和 IDTOProvider 介面,然後提供了 DataDTOProvider 和 SqlDbProvider 的實現,其中調用了 SqlHelper 類
Community Server 2.1 SDK
(.NET 1.1 & 2.0)
直接調用 Models 的方法來擷取資料、更新資料等 在 CommunityServerComponents 項目的 Components 中定義 Model 類,其中僅包含屬性定義及建構函式,另外定義了 Models 類,其中實現了 Model 的 CRUD 方法,它是調用 Provider 下的 CommonDataProvider 來完成資料訪問的 在 CommunityServerComponents 項目的 Proivder 中,利用抽象類別CommonDataProvider 定義了所有 BLL & Model 層需要的資料存取方法,然後在 SqlDataProvider 中項目中使用 SqlDataProvider 繼承此類,完成與 SQL Server 資料庫的互動
.Pet Shop 4.0 在 ASP.NET 的頁面上,大多是利用代碼來調用 BLL 層的 Model 對象來擷取資料、更新資料 Model 項目 中定義了所有的業務實體 ModelInfo
BLL 項目中定義業務實體 Model ,其中包含業務視角的 CRUD 方法,它們是調用 IDAL 中的 IModel 的 CRUD 方法來實現的
IDAL 項目中有多個介面定義 IModel,其中定義了需要實現的 Model 的 CRUD 方法
SqlServerDAL 和 OracleDAL 分別在兩種資料庫上實現了 IDAL
DALFactory 為工廠類,負責根據配置返回相應的 IDAL 的 IModel 實作類別
DBUtility 是 SQL Server 和 Oracle 資料庫操作的工具類,主要是 SQLHelper 和 OracleHelper

簡單評價:
①Personal Web Site Starter Kit:     簡單,供初學者參考之用
②Club Web Site Starter Kit:       對標準 MemberShip 的擴儲值得一看
③Classifieds Site Starter Kit:       結構較為清晰,利用 DataSet 簡化了大量 SQL 代碼的編寫
④Commerce Starter Kit:         利用了 Provider 模型,有些小瑕疵,如界UI層有 SqlDataSource,Model 中有 DataTable
⑤Duwamish 7.1:             架構比較清晰,但Model 繼承自 DataSet ,因此其 BuildDataTables 和 Models 中的CURD 方法較為麻煩,代碼量較大
⑥Jobs Site Starter Kit:          簡單實用,有些缺點,如 Model 的 CRUD 方法的 SqlParameter 造成 BLL 和 DAL 無法完全隔離
⑦Timer Tracker Starter Kit:       一種架構清晰、較好的實現模式,只是代碼量稍大
⑧.Text 0.95:               基於 .NET 1.1 ,因此 BLL 層稍顯複雜,DAL 層代碼量也較大
⑨Community Server 2.1:         它同時相容 .NET 1.1 和 .NET 2.0 ,因此沒有利用 .NET 2.0 的許多特性,但其 Provider 的模式較為清晰
⑩.Pet Shop 4.0:             架構清晰

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.