Duwamish 7 初探——資料流程 (轉)
Duwamish 7是的一個基於的分散式應用範例。
由於工作上的原因,本人不得不對其研究一二。有所心得,不敢獨樂,故於此與眾位分享之。一併探討,萬望眾位達人不吝賜教,。
btw 在MSDN.NET中有其結構與流程詳解,本人在此基礎上總結心得,並對其中不甚明瞭之處做一補充,若有疑問可查閱之。
Duwamish的若干個核心:
SystemApplicationAssert.cs // 驗證資料合法性
SystemFrameworkApplicationConfiguration.cs // 定義讀寫的
CommonDuwamishConfiguration.cs // 讀寫配置(透過ApplicationConfiguration)
以上是整個應用程式的框架核心,還有一個ApplicationLog.cs,作用和Configuration類似。
web.config // 應用程式配置檔案
WebPageBase.cs // Web窗體頁基類,供派生,其中定義了需要頁面間共享的資料(如、訂單資訊,用屬性定義)
WebModuleBase.cs // Web基類,供Module*.ascx派生,其中定義了所有模組所需要的應用程式路徑和其他共享資訊(用屬性定義)
Duwamish 7是一個很小的應用(相對於更多的商業應用),但是微軟仍然將它的結構、框架、層次定義得十分複雜,使人不得不對其產生由衷的敬仰: P
複雜麼?說起來也並非難以掌握。
使用者介面——Web
業務外觀——Businesacade
業務規則——BusinessRules
資料訪問——DataAccess
如此而已,一個嚴謹、清晰、易於維護的Web應用大都如此。我們以一個使用者登入過程為例探究其資料流程。
WebSecurelogon.aspx接受使用者登入表單提交,觸發Logon.LogonButton_Click事件(WebSecurelogon.aspx.cs中204行)
WebSecurelogon.aspx.cs中243行:
custData = (new CustomerSystem()).GetCustomerByE(LogonTextBox.Text, LogonPassTextBox.Text);
BusinessFacade中CustomerSystem類(BusinessFacadeCustomerSystem.cs)實現“使用者賬號存取介面”邏輯
其中BusinessFacade.GetCustomerByEmail()(BusinessFacadeCustomerSystem.cs中45行)定義“透過Email讀取使用者資訊”介面
BusinessFacadeCustomerSystem.cs中58行:
using (DataAccess.Customers customersDataAccess = new DataAccess.Customers())
{
dataSet = customersDataAccess.LoadCustomerByEmail(emailAddress);
}
DataAccess中Customers類(DataAccessCustomers.cs)實現“使用者賬號資料訪問”邏輯
其中Customers.LoadCustomerByEmail()(DataAccessCustomers.cs中217行)定義“透過Email讀取使用者資訊”介面——透過訪問 SERVER過程“GetCustomerByEmail”
DataAccessCustomers.cs中227行:
dmmand.Command = GetLoadCommand();
DataAccess.Customers.GetLoadCommand()初始化儲存過程及引數並返回其介面(DataAccessCustomers.cs中112行)
DataAccessCustomers.cs中119行:
loadCommand = new SqlCommand("GetCustomerByEmail",new SqlConnection (DuwamishConfiguration.ConnectionString));
初始化儲存過程。其連線由Common.DuwamishConfiguration中ConnectionString屬性獲得。
Common中DuwamishConfiguration類(CommonDuwamishConfiguration.cs)定義了應用程式配置資訊的訪問介面(透過訪問類的屬性)
其中DuwamishConfiguration.ConnetionString屬性提供“資料庫連線字串訪問”介面
CommonDuwamishConfiguration.cs中151行:
public static String ConnectionString
{
get
{
return ConnectionString;
}
}CommonDuwamishConfiguration.cs中107行由預設值常量設定“資料庫連線字串”:
dbConnectionString = DATAACCESS_CONNECTIONSTRING_DEFAULT;
CommonDuwamishConfiguration.cs中107行由讀取“應用程式配置檔案”中相應設定“資料庫連線字串”:
dbConnectionString = ApplicationConfiguration.ReadSetting(settings, DATAACCESS_CONNECTIONSTRING, DATAACCESS_CONNECTIONSTRING_DEFAULT);
SystemFramework中ApplicaitionConfiguration類定義了配置讀寫介面(SystemFrameworkApplicationConfiguration.cs)
其中ApplicationConfiguration.ReadSetting定義“讀取配置”介面
SystemFrameworkApplicationConfiguration.cs中190行:
public static String ReadSetting(NameValueCollection settings, String key, String defaultValue)
{
try
{
setting = settings[key];
return (setting == null) ? defaultValue : (String)setting;
}
catch
{
return defaultValue;
}
}
至此,一條從介面到資料庫的通道就被順利開通了。使用者賬戶資料被一層一層地返回給介面,並由介面定義的邏輯去處理。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992068/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我對duwamish7的一些理解(一) (轉)
- duwamish7的一些程式碼分析總結 (轉)
- 資料包的轉發流程
- 資料結構(一)-初探資料結構
- NAS資料遷移初探
- 資料結構 - 樹,初探資料結構
- mysql 5.7 sys資料庫初探MySql資料庫
- 非完整資料聚類初探聚類
- 圖資料庫奧祕初探資料庫
- ncbi下載資料sra和轉換fastq流程AST
- 《大資料: ZooKeeper 資料同步流程》大資料
- 初探oceanbase和newsql資料庫SQL資料庫
- Android資料庫框架——GreenDao初探Android資料庫框架
- 資料結構 - 雜湊表,初探資料結構
- 流程工業ERP面臨的問題與解決方案初探(轉)
- Java初探Oracle(轉)JavaOracle
- 敏捷大資料流程敏捷大資料
- 資料讀寫流程
- ios7新特性nsurlsession初探iOSSession
- Oracle資料庫資料遷移流程Oracle資料庫
- 轉型大資料及操作流程大資料
- C# 資料操作系列 - 13 SugarSql初探C#SQL
- 大資料測試之hadoop初探大資料Hadoop
- 藉助Radamsa變異資料(初探)
- 資料分析中的降維方法初探
- 【轉】IDA Pro 初探
- IT市場要素初探(轉)
- redis原始碼學習之工作流程初探Redis原始碼
- 海量資料遷移之資料抽取流程
- 建立資料mysql庫流程MySql
- 資料庫優化流程資料庫優化
- 轉載-企業PLM流程零部件資料方案
- 資料庫7資料庫
- RDF 和 SPARQL 初探:以維基資料為例
- 初探MySQL資料備份及備份原理MySql
- MonetDB列存資料庫架構初探資料庫架構
- AndroidSqlite資料庫版本升級管理初探AndroidSQLite資料庫
- 流程企業資源計劃(轉)