Duwamish7學習筆記1
2024-07-21 02:16:07
供稿:網友
 
duwamish7學習筆記(-) 
 
  duwamish解決方案總共有6個項目,結構上分為5層:業務外觀層(businessfacade)、業務規則層(businessrules)、業務實體層(common)、數據訪問層(dataaccess)、業務展示層(web).另外一項目為systemframework,顧名思意,主要是用來進行整個系統構架的一些配置、跟蹤、日志等.
  common項目
  1.讓我們來看一看duwamish7的數據結構,圖1
    
    2.對數據庫中book,category,customer,order四個最主要的對象進行了業務實體封裝,四個類均繼承自dataset,但類加入兩個屬性:    [system.componentmodel.designercategory("code")]、[serializableattribute],前一個屬性的意思是指定當前類設計器屬于某一類別。后一個屬性標記當前類為可序列化類,使之可遠程調用。
  
 類中對數據庫中表和表中字段進行了映射,部份類中還定義了相關的錯誤信息如
public const string email_field_not_unique     = "email not unique";
  3.在默認的構造函數中調用builddatatables()方法創建表結構并添加到dataset中。bookdata、categorydata、customerdata類中均只保存一個表,而orderdata類中保存有與訂單相關的6個表信息。
  dataset中的表與數據庫中物理表有的是一一對映,有的是一個物理表對應dataset中多個表,而有的多個物理表對應dataset中一個表.
  4.common項目中還有一個duwamishconfiguration類,用來獲取web.config文件中對duwamish配置項,繼承自iconfigurationsectionhandler接口。該接口定義如下協定:所有配置節處理程序必須在實現后才能參與配置設置的解析。該接口只有一個create()方法,duwamishconfiguration類中實現create()方法,通過namevaluesessionhander實例basehandler.create()方法填充namevaluecollection setting,再調用
applicationconfiguration.readsetting()方法返回指定的某個配置信息。
疑問:
  1.4個業務實體類均有一個支持序列化的構造函數如bookdata類的
    private bookdata(serializationinfo info, streamingcontext context) : base(info, context) {}
不是很明白,此4個類序列化沒有特別的的引用對象,應該只要進行“基本序列化”即簡單的在類前加serializable 屬性對它進行標記即可,為什么還要定義一個支持序列化的構造函數呢?是不是因為繼承dataset的原因??
  2.系統什么時候,怎么樣調用duwamishconfiguration類的create()方法取得web.config文件中的相關配置信息?
  
msdn幫助:
 1.system.configuration 命名空間
    ms-help://ms.msdnqtr.2003feb.2052/cpref/html/frlrfsystemconfiguration.htm