Duwamish 7 初探 資料流程

2021-04-09 02:58:52 字數 2511 閱讀 2531

duwamish 7是微軟的乙個基於asp.net的分布式應用程式範例。

由於工作上的原因,本人不得不對其研究一二。有所心得,不敢獨樂,故於此與眾位分享之。一併**asp.net,萬望眾位達人不吝賜教,。

btw 在msdn.net中有其結構與流程詳解,本人在此基礎上總結心得,並對其中不甚明了之處做一補充,若有疑問可查閱之。

duwamish的若干個核心檔案:

web/web.config // 應用程式配置檔案

web/pagebase.cs // web窗體頁基類,供aspx派生,其中定義了需要頁面間共享的資料(如使用者、訂單資訊,用屬性定義)

web/modulebase.cs // web控制項基類,供module/*.ascx派生,其中定義了所有模組所需要的應用程式路徑和其他共享資訊(用屬性定義)

duwamish 7是乙個很小的應用(相對於更多的商業應用),但是微軟仍然將它的結構、框架、層次定義得十分複雜,使人不得不對其產生由衷的敬仰: p

複雜麼?說起來也並非難以掌握。

使用者介面——web

業務外觀——businessfacade

業務規則——businessrules

資料訪問——dataaccess

如此而已,乙個嚴謹、清晰、易於維護的web應用大都如此。我們以乙個使用者登入過程為例**其資料流程。

web/secure/logon.aspx接受使用者登入表單提交,觸發logon.logonbutton_click事件(web/secure/logon.aspx.cs中204行)

web/secure/logon.aspx.cs中243行:

custdata = (new customersystem()).getcustomerbyemail(logonemailtextbox.text, logonpasswordtextbox.text);

businessfacade中customersystem類(business/facade/customersystem.cs)實現「使用者賬號訪問介面」邏輯

其中businessfacade.getcustomerbyemail()(business/facade/customersystem.cs中45行)定義「通過email讀取使用者資訊」介面

business/facade/customersystem.cs中58行:

using (dataaccess.customers customersdataaccess = new dataaccess.customers())

dataaccess中customers類(dataaccess/customers.cs)實現「使用者賬號資料訪問」邏輯

其中customers.loadcustomerbyemail()(dataaccess/customers.cs中217行)定義「通過email讀取使用者資訊」介面——通過訪問sql server儲存過程「getcustomerbyemail」

dataaccess/customers.cs中227行:

dscommand.selectcommand = getloadcommand();

dataaccess.customers.getloadcommand()初始化儲存過程及引數並返回其介面(dataaccess/customers.cs中112行)

dataaccess/customers.cs中119行:

loadcommand = new sqlcommand("getcustomerbyemail",new sqlconnection (duwamishconfiguration.connectionstring));

初始化儲存過程。其資料庫連線由common.duwamishconfiguration中connectionstring屬性獲得。

common中duwamishconfiguration類(common/duwamishconfiguration.cs)定義了應用程式配置資訊的訪問介面(通過訪問類的屬性)

其中duwamishconfiguration.connetionstring屬性提供「資料庫連線字串訪問」介面

common/duwamishconfiguration.cs中151行:

public static string connectionstring }

common/duwamishconfiguration.cs中107行由預設值常量設定「資料庫連線字串」:

dbconnectionstring = dataaccess_connectionstring_default;

common/duwamishconfiguration.cs中107行由讀取「應用程式配置檔案」中相應設定「資料庫連線字串」:

public static string readsetting(namevaluecollection settings, string key, string defaultvalue)

catch }

至此,一條從介面到資料庫的通道就被順利開通了。使用者賬戶資料被一層一層地返回給介面,並由介面定義的邏輯去處理。 

Duwamish 7 初探 資料流程

duwamish?7是微軟的乙個基於asp.net的分布式應用程式範例。由於工作上的原因,本人不得不對其研究一二。有所心得,不敢獨樂,故於此與眾位分享之。一併 asp.net,萬望眾位達人不吝賜教,btw?在msdn.net中有其結構與流程詳解,本人在此基礎上總結心得,並對其中不甚明了之處做一補充,...

Duwamish 7 初探 資料流程

duwamish 7 是微軟的乙個基於 asp.net 的分布式應用程式範例。duwamish 的若干個核心檔案 驗證資料合法性 定義讀寫配置的框架 common duwamishconfiguration.cs 讀寫配置 通過 以上是整個應用程式的框架核心,還有乙個 作用和 configurati...

Duwamish7學習筆記(五)

businessfacade專案 業務外觀層封裝了3個類customersystem,ordersystem,productsystem,類中直接呼叫資料訪問層和業務邏輯層類的方法與屬性提供對web層的介面。有意思是的每個類結尾均以system命名。客戶系統?訂單系統?產品系統?業務外觀層中3個類均...