用ASP.NET部署三层架构

ASP.NET可以使用.NET平台快速方便的部署三层架构。ASP.NET革命性的变化是在网页中也使用基于事件的处理,可以指定处理的后台代码文件,可以使用C#,VB,J#作为后台代码的语言。.NET中可以方便的实现组件的装配,后台代码通过命名控件可以方便的使用自己定义的组件。显示层放在ASP页面中,数据库操作和逻辑层用组件来实现,这样就很方便的实现了三层架构。

                                 

下面分别就各层的实现举个制作留言簿的小例子。

我们首先在sqlserver数据库中建一个数据库GestDB,GestDB中建表:Guestbook,如下图:

                         

第一步:打开VS.NET,点击文件-》新建-》空白解决方案,在弹出的新建项目中选择Visal C#项目,模板选择ASP.NET Web应用程序.在位置处给本方案命名为geustbook.如下图所示。
                                    

第二步:建数据库访问控件。单击上图"确定"。在窗口右边的 "解决方案资源管理器"中右击"解决方案"guestbook""选择"添加"->"新建项目",弹出如下窗口,如图模板选择类库,填写名称,位置。注意该类库理论上与留言簿的工程是没有关系的,所以存储位置可以任意。
                                   

第三步:建立逻辑处理层。同第二步,建立另一个控件BusinessLayer。此控件用来调用数据库控件,封装留言簿所有的逻辑处理。如下图所示
                                 

第四步:关于引用。因为BUSINESSLAYER要用到系统的WEB控件和刚才建的DBLayer,所以必须把二者添加引用。右键点击BUSINESSLAYER"引用",选择.NET"System.web.dll"双击选中即可。
                               

           Web   
     
    
   Web   
层为客户端提供对应用程序的访问。这一层是作为   Duwamish.sln   解决方案文件中的   Web   项目实现的。Web   层由   ASP.NET   Web   窗体和代码隐藏文件组成。Web   窗体只是用   HTML   提供用户操作,而代码隐藏文件实现各种控件的事件处理。
     
    
  
业务外观层
     
    
  
业务外观层为   Web   层提供处理帐户、类别浏览和购书的界面。这一层是作为   Duwamish.sln   解决方案文件中的   BusinessFacade   项目实现的。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。除了低级系统和支持功能之外,对数据库服务器的所有调用都是通过此程序集进行的。
     
    
  
业务规则层
     
    
  
业务规则层是作为   Duwamish.sln   解决方案文件中的   BusinessRules   项目实现的,它包含各种业务规则和逻辑的实现。业务规则完成如客户帐户和书籍订单的验证这样的任务。
     
    
  
数据访问层
     
    
  
数据访问层为业务规则层提供数据服务。这一层是作为   Duwamish.sln   解决方案文件中的   DataAccess   项目实现的。
     
    
  
代码示例:
     
    
  
以下是两种不同处理路径的代码示例:
     
    
  
获取商品目录
     
    
  
表示层调用业务外观层:
     
    
  productSystem   =   new   ProductSystem();     
    
  categorySet   =   productSystem.GetCategories(categoryID);     
    
  
业务外观层直接调用数据层:
     
    
  public   CategoryData   GetCategories(int   categoryId)     
  {     
  if   (   dsCommand   ==   null   )     
  {     
  throw   new   System.ObjectDisposedException(   GetType().FullName   );     
  }     
  return   FillCategoryData("GetCategories",   "@CategoryId",   categoryId);     
  }     
    
  
添加定单
     
    
  
表示层调用业务外观层:
     
    
  public   void   AddOrder()     
  {     
  ApplicationAssert.CheckCondition(cartOrderData   !=   null,   "Order   requires   data",   ApplicationAssert.LineNumber);     
  ApplicationLog.WriteTrace("Duwamish7.Web.Cart.AddOrder:/r/nCustomerId:   "   +     
  cartOrderData.Tables[OrderData.CUSTOMER_TABLE].Rows[0][OrderData.PKID_FIELD].ToString());     
  cartOrderData   =   (new   OrderSystem()).AddOrder(cartOrderData);     
  }     
    
  
业务外观层调用业务规则层:
     
    
  public   OrderData   AddOrder(OrderData   order)     
  {     
  ApplicationAssert.CheckCondition(order   !=   null,   "Order   is   required",   ApplicationAssert.LineNumber);     
    
  (new   BusinessRules.Order()).InsertOrder(order);     
  return   order;     
  }     
    
  
业务规则层调用数据层:
     
    
  public   bool   InsertOrder(OrderData   order)     
  {     
  //
此处省略复杂的处理逻辑
     
  if   (   isValid   )     
  {     
  using   (DataAccess.Orders   ordersDataAccess   =   new   DataAccess.Orders())     
  {     
  return   (ordersDataAccess.InsertOrderDetail(order))   >   0;     
  }     
  }     
  else     
  return   false;     
  }     

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值