zoukankan      html  css  js  c++  java
  • .NET Petshop详解(四):petshop三层结构之PresentationTier

    在前面的文章中,我们已经就.NET Petshop的数据层和中间的业务逻辑层作了说明,接下来的文章中,我们将就数据展示层作探究。与前面的两层有着很大的差别的是,.NET Petshop的展示层用了很多Microsoft最新的web Forms技术即Asp.NET。因此,在解说展示层之前,我想就Asp.NET.NET Petshop的开发中使用到的非常重要的特性做一些说明,以示区别:

    (1)       Asp.NET代码不再是解释型代码,可以经由JIT编译器编译后运行,并且引入了很好的页面缓冲机制。

    (2)       ASP.Net的配置模型引入了基于XML文件的零安装配置模型。零安装的含义是只需将配置文件Web.config,应用程序拷贝到系统指定的目录下即可,需要更改时直接在文件里更改并保存。

    (3)       安全管理 ASP.Net提供了比传统ASP更强大可靠的安全管理。Asp.NET提供了三种验证方式以及两种类型的授权服务。

    (4)       支持代码和页面内容的分离。回想以前编写Asp程序的时候的问题:代码逻辑混乱,难于管理。

    (5)       提供了更好的状态管理,包括会话状态的管理和视图状态的管理。

    (6)       大量的ASP.NET服务器端控件和对用户控件的开发的支持。

    .NET Petshop充分的使用了服务器控件技术和会话状态管理。展示层的交互界面均采用aspx页面,后端有分离的逻辑代码。.NET Petshop共有19aspx页面和代码逻辑。在这里一一里列出,并说明设置参数和其作用。

     

    ASP.NET Web页面

    EnableSessionState

    EnableViewState

    备注说明

    Cart.aspx

    true

    true

    购物清单

    Category.aspx

    True

    false

    产品分类的列表

    CheckOut.aspx

    Readonly

    false

    订单确认

    CreateNewAccount.aspx

    False

    true

    创建新帐号

    Default.aspx

    False

    false

    系统首页面

    EditAccount.aspx

    False

    true

    账号编辑

    Error.aspx

    False

    false

    错误处理

    Help.aspx

    False

    false

    帮助

    OrderAddressConfirm.aspx

    readonly

    false

    订单地址确认

    OrderBilling.aspx

    True

    true

    订单信息

    OrderProcess.aspx

    readonly

    false

    下订单

    OrderShipping.aspx

    True

    true

    订单地址和姓名

    Product.aspx

    False

    false

    产品列表

    ProductDetails.aspx

    false

    false

    产品详细信息

    Search.aspx

    false

    false

    搜索

    SignIn.aspx

    false

    false

    帐号登陆

    SignOut.aspx

    true

    false

    帐号退出

    ValidateAccount.aspx

    false

    false

    帐号创建确认

    VerifySignIn.aspx

    false

    false

    账号登陆确认

     

    .NET Petshop使用了很多用户控件,这些控件位于web/Inc目录下面。表格2对用户控件作出说明:

     

    User Controls

    EnableViewState

    备注说明

    ControlAddress

    true

    详细地址列表

    ControlBanner

    false

    页面底部的banner

    ControlCart

    true

    购物清单

    ControlFavList

    false

    个人Favorites列表

    ControlHeader

    false

    页面顶部的菜单和链接

    ControlStaticAddress

    false

    不能编辑的地址信息

    下面列出一段代码,说明这些参数的设置和用户控件的引用:

    /*  摘自Cart.aspx   */

    <%@ Register TagPrefix="PetShop" TagName="Cart" Src="Inc/ControlCart.ascx" %>

    <%@ Register TagPrefix="PetShop" TagName="Header" Src="Inc/ControlHeader.ascx" %>

    <%@ Page language="c#" Codebehind="CheckOut.aspx.cs" AutoEventWireup="false" Inherits="PetShop.Web.CheckOut" EnableSessionState="readonly" enableViewState="False"%>

     

    开始的两个Registe指令用于引用ControlCartControlHeader的用户控件,Page指令定义 ASP.NET 页分析器和编译器使用的页特定的属性。

    在控件的排放位置使用下面的代码既可以显示该控件了:

    <PetShop:Cart id="ctlCart" runat="server" allowedit="false" />

    在上面的代码中allowedit一项是向实例化的ctlCart传递参数。我个人认为用户控件是一个很好的东西,可以简化web页面的开发模型又可以达到代码复用的目的,而且其开发非常简单,与aspx的开发基本是一样的。图1说明了设计模式下和运行时的用户控件。

     

     

    1:设计模式和运行时的ctlCart用户控件

     

    接下来的文章我们将就系统配置和安全管理作进一步的说明。

     

  • 相关阅读:
    1.4redis小结--队列在抢购活动的实现思路
    1.3redis小结--配置php reids拓展
    redis小结 1-2
    redis小结 1-1
    pandas学习小记
    Python简单算法的实现
    python编码
    ThinkPHP中的__initialize()和类的构造函数__construct()
    js正则常用方法
    总结了下PHPExcel官方读取的几个例子
  • 原文地址:https://www.cnblogs.com/xoray007/p/1741793.html
Copyright © 2011-2022 走看看