网站公告列表     学友堂,成就你我!  [admin  2006年11月29日]        
加入收藏
设为首页
联系站长
您现在的位置: 学友堂 >> 电脑网络 >> 编程 >> 文章正文
  三层Web体系结构里的两种数据绑定模式           
三层Web体系结构里的两种数据绑定模式
文章来源:不详 更新时间:2008-12-15 10:59:16 本站:学友堂  网址:www.3i3i.cn
学友堂 www.3i3i.cn

本文我将介绍在三层Web体系开发中的两种数据绑定模式,然后在不超过你已经会用的控件知识的情况下,来介绍能够极大减少这种数据绑定模式的替代品--XLib库文件。具体的说,本文开始我们介绍在三层体系结构里常规的数据绑定方法,然后介绍XLib是如何提高这种绑定效率的。

  1、数据绑定流程

  在三层Web体系结构里,通常有四步来完成数据绑定任务:

  1)从数据库里加载数据到业务逻辑对象

  2)在Web窗体上放置Web控件并使用业务逻辑对象进行填充数据。

  3)将Web控件的值拷贝到业务逻辑对象的属性里

  4)保存业务逻辑对象的属性值到数据库。

  以具体的Customer为例,在三层应用程序里最简单的数据绑定模式的步骤如下:

  1)从数据库Customer表里加载合适的顾客记录

  2)将顾客记录绑定到Customer业务对象上

  3)将Customer业务对象绑定到Web控件上

  4)用户在窗体里输入数据并单击Submit进行提交数据

  5)将Web控件的更新事件绑定到Customer对象上

  6)把Customer上的信息保存到表里

  7)将表里的信息保存到Customer上

  有多种方式执行这个流程,我概括起来有三种:

  1、显示生成数据绑定方式--使用大家都熟悉的前台方式

  2、Microsoft的方式--使用类型化的DataSet和FormView

  3、 XLib方式--使用反射技术和其他的.NET特性来分析绑定--在运行时获取对象

  1.2 代码--业务逻辑对象和Web 页面

  为了具体说明这三种方式的使用方法,我将使用Customer类和EditCustomer页面作为演示。下面是一些代码,它将说明具体在什么地方进行数据绑定。

  通常,Customer类看起来类似如下:

public class Customer
{
 file://list all properties
 file://CRUD methods
 public void Load()
 {
  file://Binding #1
  file://Copy database record values into properties
 }
 public void Save()
 {
  file://Binding #4
  file://Copy properties values into database record
 }

 public void Delete() ;
 file://Other methods specific to customer
 public string GetCustomerFullName()..
}
  编辑顾客页面的代码类似如下:

file://页面的一些指令
file://与Form窗体有关的一些顾客属性
file://提交和取消按钮
  编辑用户信息的后台代码类似如下:

public partial class EditCustomer
{
 protected void Page_Load(object sender, EventArgs e)
 {
  if (!IsPostBack){
   file://Check if adding new customer or updating
   if (_isUpdateMode)
    LoadData();
  }
 }

 protected void btnSubmit_Click(object sender, EventArgs e)
 {
  if (!Page.IsValid)
   return;
  SaveData();

  file://Go Back
 }

 private void LoadData()
 {
  Customer customer=new Customer();
  customerID=_customerID;
  customer.Load();

  file://Binding #2
  file://Copy customer properties into control values
 }

 private void SaveData()
 {
  Customer customer=new Customer();

  If (_isUpdateMode)
  {
   customer.ID=_customerID;
   customer.Load();
  }

  file://Binding #3
  file://Copy control values into customer proper

此文章共有3页 1 2 3

参考资料

http://www.997328.com/jc/2008/10-2/201859.html

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    iPhone WeFIT输入法 卸载
    PowerBox系列智能PDU
    Web标准实践——豆瓣的首
    基于标准的web项目开发模
    关于web标准的思考
    web标准常见问题集合
    如何开始WEB标准之路
    PB nTier/Web开发系列视
    怎样给PowerPooint演示文
    PowerBox
     
    版权所有 2004-2012  学友堂 [3i3i.cn] 最佳分辨率 1024×768
    Copyright www.3i3i.cn All rights reserved.