duwamish 7
是微軟的乙個基於
asp.net
的分布式應用程式範例。
duwamish
的若干個核心檔案:
驗證資料合法性
定義讀寫配置的框架
common/duwamishconfiguration.cs //
讀寫配置(通過
)以上是整個應用程式的框架核心,還有乙個
,作用和
configuration
類似。web/web.config //
應用程式配置檔案
web/pagebase.cs // web
窗體頁基類,供
aspx
派生,其中定義了需要頁面間共享的資料(如使用者、訂單資訊,用屬性定義)
web/modulebase.cs // web
控制項基類,供
module/*.ascx
派生,其中定義了所有模組所需要的應用程式路徑和其他共享資訊(用屬性定義)
duwamish 7
是乙個商業應用應用縮影,
其中的結構、框架、層次定義得十分複雜,
管中窺豹
,可見一斑
.使用者介面
——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
行)定義「通過
讀取使用者資訊」介面
business/facade/customersystem.cs中58
行:using (dataaccess.customers customersdataaccess = new dataaccess.customers())
dataaccess
中customers
類(dataaccess/customers.cs
)實現「
使用者賬號資料訪問」邏輯
其中customers.loadcustomerbyemail()
(dataaccess/customers.cs
中217
行)定義「通過
讀取使用者資訊」介面
——通過訪問
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
行由讀取
「應用程式配置檔案
」中相應設定
「資料庫連線字串」:
中類定義了配置讀寫介面()其中
定義「讀取配置」介面
中190
行: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的分布式應用程式範例。由於工作上的原因,本人不得不對其研究一二。有所心得,不敢獨樂,故於此與眾位分享之。一併 asp.net,萬望眾位達人不吝賜教,btw?在msdn.net中有其結構與流程詳解,本人在此基礎上總結心得,並對其中不甚明了之處做一補充,...
Duwamish7學習筆記(五)
businessfacade專案 業務外觀層封裝了3個類customersystem,ordersystem,productsystem,類中直接呼叫資料訪問層和業務邏輯層類的方法與屬性提供對web層的介面。有意思是的每個類結尾均以system命名。客戶系統?訂單系統?產品系統?業務外觀層中3個類均...