duwamish 7是微软的一个基于asp.net的分布式应用程序范例。
由于工作上的原因,本人不得不对其研究一二。有所心得,不敢独乐,故于此与众位分享之。一并探讨asp.net,万望众位达人不吝赐教,。
btw 在msdn.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是一个很小的应用(相对于更多的商业应用),但是微软仍然将它的结构、框架、层次定义得十分复杂,使人不得不对其产生由衷的敬仰: p
复杂么?说起来也并非难以掌握。
用户界面——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行)定义“通过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.cs中217行)定义“通过email读取用户信息”接口——通过访问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
{
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;
}
}
至此,一条从界面到数据库的通道就被顺利开通了。用户账户数据被一层一层地返回给界面,并由界面定义的逻辑去处理。
Duwamish 7 初探——数据流程-.NET教程,评论及其它
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Duwamish 7 初探——数据流程-.NET教程,评论及其它
相关推荐
-      VS2010的aspx文件中的html代码的格式化方法
-      .net 反序题目的详细解答第1/2页
-      asp.net创建html文本文件实例
-      比较完整的 asp.net 学习流程
-      官网 Ext direct包中.NET版的问题
-      C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页
-      c# 连接字符串数据库服务器端口号 .net状态服务器端口号
-      asp.net教程:简单的C#图片上传代码或C#文件上传代码