Duwamish学习

来源:互联网 发布:网络舆情传播特点 编辑:程序博客网 时间:2024/05/17 06:11
Duwamish作为Vs.NET自带的例子,一定代表着MS想向开发人员传递的思想和开发技巧,记得以前学习PB时没有查看PB的例子程序,等走过很多弯路再看到PB的例程时发现,原来好的冥思苦想的方法、技巧,就在自已机器上安静的躺着呢!
 一直想较仔细一点的学习研究一下Duwamish,但总是没有机会,现在系统上线,总算轻松一点而有点时间来和她来个亲密接触了:)
 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()方法返回指定的某个配置信息。