| 在前面的文章中,我们已经就.NET 
              Petshop的数据层和中间的业务逻辑层作了说明,接下来的文章中,我们将就数据展示层作探究。与前面的两层有着很大的差别的是,.NET 
              Petshop的展示层用了很多Microsoft最新的web 
              Forms技术即Asp.NET。因此,在解说展示层之前,我想就Asp.NET在.NET 
              Petshop的开发中使用到的非常重要的特性做一些说明,以示区别:<?xml:namespace 
              prefix = o ns = "urn:schemas-microsoft-com:office:office" 
              />   (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共有19个aspx页面和代码逻辑。在这里一一里列出,并说明设置参数和其作用。 
                 
                    
             
              
                 
                  | 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指令用于引用ControlCart和ControlHeader的用户控件,Page指令定义 
              ASP.NET 页分析器和编译器使用的页特定的属性。 
                在控件的排放位置使用下面的代码既可以显示该控件了: 
                <PetShop:Cart 
              id="ctlCart" runat="server" allowedit="false" 
              />   在上面的代码中allowedit一项是向实例化的ctlCart传递参数。我个人认为用户控件是一个很好的东西,可以简化web页面的开发模型又可以达到代码复用的目的,而且其开发非常简单,与aspx的开发基本是一样的。图1说明了设计模式下和运行时的用户控件。 
                 
                 <?xml:namespace 
              prefix = v ns = "urn:schemas-microsoft-com:vml" />    
                                                
                图1:设计模式和运行时的ctlCart用户控件 
                 
                 接下来的文章我们将就系统配置和安全管理作进一步的说明。 
                  
                 |