分享
 
 
 

.NET Petshop详解(四):petshop三层结构之PresentationTier

王朝c#·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

.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共有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说明了设计模式下和运行时的用户控件。

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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有