Duwamish 7 初探——数据流程

转载 2004年08月14日 09:52:00

Duwamish 7是微软的一个基于ASP.NET的分布式应用程序范例。
    
Duwamish的若干个核心文件:
  SystemFramework/ApplicationAssert.cs //
验证数据合法性
  SystemFramework/ApplicationConfiguration.cs //
定义读写配置的框架
  Common/DuwamishConfiguration.cs //
读写配置(通过ApplicationConfiguration
  
以上是整个应用程序的框架核心,还有一个ApplicationLog.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.cs204行)
  
  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.cs45行)定义通过Email读取用户信息接口
  
  Business/Facade/CustomerSystem.cs
58行:
  
  using (DataAccess.Customers customersDataAccess = new DataAccess.Customers())
  {
   dataSet = customersDataAccess.LoadCustomerByEmail(emailAddress);
  }
  
  DataAccess
Customers类(DataAccess/Customers.cs)实现用户账号数据访问逻辑
  
  
其中Customers.LoadCustomerByEmail()DataAccess/Customers.cs217行)定义通过Email读取用户信息接口——通过访问SQL Server存储过程“GetCustomerByEmail”
  
  DataAccess/Customers.cs
227行:
  
  dsCommand.SelectCommand = GetLoadCommand();
  
  DataAccess.Customers.GetLoadCommand()
初始化存储过程及参数并返回其接口(DataAccess/Customers.cs112行)
  
  DataAccess/Customers.cs
119行:
  
  loadCommand = new SqlCommand("GetCustomerByEmail",new SqlConnection (DuwamishConfiguration.ConnectionString));
  
  
初始化存储过程。其数据库连接由Common.DuwamishConfigurationConnectionString属性获得。
  
  Common
DuwamishConfiguration类(Common/DuwamishConfiguration.cs)定义了应用程序配置信息的访问接口(通过访问类的属性)
  
  
其中DuwamishConfiguration.ConnetionString属性提供数据库连接字符串访问接口
  
  Common/DuwamishConfiguration.cs
151行:
  
  public static String ConnectionString
  {
   get
   {
   return dbConnectionString;
   }
  }
  
  Common/DuwamishConfiguration.cs
107行由默认值常量设置数据库连接字符串
  
  dbConnectionString = DATAACCESS_CONNECTIONSTRING_DEFAULT;
  
  Common/DuwamishConfiguration.cs
107行由读取应用程序配置文件中相应设置数据库连接字符串
  
  dbConnectionString = ApplicationConfiguration.ReadSetting(settings, DATAACCESS_CONNECTIONSTRING, DATAACCESS_CONNECTIONSTRING_DEFAULT);
  
  SystemFramework
ApplicaitionConfiguration类定义了配置读写接口(SystemFramework/ApplicationConfiguration.cs
  
  
其中ApplicationConfiguration.ReadSetting定义读取配置接口
  
  SystemFramework/ApplicationConfiguration.cs
190行:
  
  public static String ReadSetting(NameValueCollection settings, String key, String defaultValue)
  {
   try
   {
   Object setting = settings[key];
  
   return (setting == null) ? defaultValue : (String)setting;
   }
   catch
   {
   return defaultValue;
   }
  }
  
  
至此,一条从界面到数据库的通道就被顺利开通了。用户账户数据被一层一层地返回给界面,并由界面定义的逻辑去处理。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

python-网络:原始套接字和流量嗅探

一:包嗅探嗅探工具的主要目标是基于UDP发现目标网络中存活的主机。绝大部分操作系统在处理UDP闭合端口时,存在一种共性行为,可以利用这种特性确定某IP上是否有主机存活,UDP对整个子网发送信息。 当...
  • cj1112
  • cj1112
  • 2016年05月03日 11:15
  • 3118

7天从入门到运用机器学习 (一) -- 数据探索与预处理

前言这个系列主要是面向做工程的同事做一些分享,旨在让大家都可以应用机器学习来解决问题,而不仅仅是看看理论浅尝辄止。机器学习是一门包含多方面知识的学科,想要几天掌握是不太可能的。但是如果把它当做一个工具...
  • thriving_fcl
  • thriving_fcl
  • 2016年10月14日 16:46
  • 1554

中科爱讯WiFi探针在客流分析统计的应用

基于WiFi探针的特性,可以在顾客无感知的情况下采集到手机的MAC地址,用于线下商业统计人流量、客流量。 在客流统计应用方面,WiFi探针可以作为一个独立的产品存在,同时也可以配合视频客流作为视频...
  • isentech
  • isentech
  • 2017年06月15日 12:05
  • 1547

产品研发过程管理专题——基于产品的测试管理(用友软件测试流程初探)

目前,用友软件的三大主流ERP产品是U8、NC、U9,分别面向不同需求的客户群。U9更是用友软件经过4年的潜心研发,在2008年初面市的,国内第一款完全基于SOA架构的ERP管理软件。是该公司下一步战...
  • liubing8609
  • liubing8609
  • 2013年07月08日 23:17
  • 773

minidlna源码初探(二)—— SSDP设备发现的大致流程

SSDP设备发现的大致流程
  • Sakaue
  • Sakaue
  • 2014年05月29日 09:39
  • 3273

7.odoo入门——初探odoo后台启动过程(一)

“投资理财”项目——设计需求文档 导师要求用Xmind设计需求文档——不过我们今天并没有整这个东西,因为需求不明确 同组师兄要求我学习jQuery,我就去看jQuery教程: htt...
  • qq_33826977
  • qq_33826977
  • 2017年07月25日 10:14
  • 87

Duwamish7示例源代码

  • 2009年11月04日 14:10
  • 3.76MB
  • 下载

Duwamish7大剖析

  • 2009年12月28日 09:48
  • 4.8MB
  • 下载

.net Duwamish7 框架分析+源代码

  • 2009年08月07日 22:57
  • 3.02MB
  • 下载

Duwamish7-VB源码

  • 2008年01月04日 22:33
  • 2.83MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Duwamish 7 初探——数据流程
举报原因:
原因补充:

(最多只允许输入30个字)