Duwamish 7 初探 資料流程

2021-09-30 02:09:12 字數 2770 閱讀 3241

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個類均...