好学IT学院:IT信息技术分享交流平台
标签:.NET  来源:互联网  作者:宋巍巍  发布时间:2007-01-18  ★★★加入收藏〗〖手机版
摘要:前面从架构方面介绍了petshop怎样通过工厂模式可以轻松替换持久层实现。这次简单说一说petshop的表现层实现。…

二.petshop的表现层实现简介

1.App_Code目录

App_Code下包含了用户自定义的服务器组件,用于流程控制的业务逻辑类,和Utils类,另外还有页面Page和应用Application的配置类。

Default.aspx.cs 是一个System.Web.UI.Page,主要注册了load事件处理器,this.Load += new System.EventHandler(this.Page_Load);好像没有使用,不太清楚。

Global.asax.cs 是一个HttpApplication,主要重写了应用出错方法,protected void Application_Error(object sender, EventArgs e),将错误信息记入windows日至。同时通过重载GetVaryByCustomStritom属性。

controls目录下包含两个自定义服务器控件,SimplePager和ViewStatePager,它们都是用于分页的。SimplePager继承自Repeater,ViewStatePager又继承自SimplePager,所以他们都是模版可迭代控件。它们通过装饰模式为Repeater中的模版添加了分页按钮,并提供事件接口,用户可以注册onpageindexchanged事件处理器,该处理器主要用于绑定数据源。分页控件和我们emed3.0的分页标签不同,它绑定了所有的数据,但只显示特定也的数据。ViewStatePager通过viewstate维护分页状态,可以在一个页面中同时存在多个分页控件。

ProcessFlow目录下的类用于控制业务流程。AccountController.cs导航和用户帐户有关的事件。通过业务逻辑层(BLL)处理用户登录登出,获取用户信息,更新用户信息等逻辑。CartController.cs通过业务逻辑层(BLL)处理购物车相关信息的逻辑,比如创建,购买,添加购物,获取或存储订单地址信息等逻辑。

WebComponents下包含CleanString.cs Utils类,处理传入的字符串数据,保证不会超过maxLength长度,如果传入的是空(null或trim后是“”),返回“”,其他换码,并将单引号去掉,替换为空格。

2.Controls目录

Controls目录下存放了用户控件。

addressui.ascx 封装了用户地址信息的一个table,用于收集和显示地址信息。

Banner.ascx 横幅,封装了页脚。

navbar.ascx 导航条,其中包含页眉,页眉下的登录,登出,帐户信息和查询栏还有帮助链接。最下面是一个导航菜单,分别导航到不同种类的动物。

preferences.ascx 封装了用户的喜好特性的信息页面组件。

其他控件作用相似,都是封装了某一个相对独立的UI界面的一部分。

3.Images目录 

当然是包括了web页面用到的图片。

4.根目录

根目录下的其他文件是aspx页面和web.config配置文件和Styles.css样式文件。

Default.aspx是主页面(index),使用了页的顶部使用navbarnomenu控件和Banner控件。,中间是一个表,表左边是连接导航,中间是地图导航。点链接后会导航到Category.aspx。

Category.aspx 用于显示某一类别的动物的信息。使用了SimplePager服务器控件。

其他还有SignIn.aspx用户登录,MyAccount.aspx用于查看和编辑个人账户信息,Search.aspx用于搜索,ShoppingCart.aspx显示购物车中的信息等。

三.petshop的页面布局

petshop的布局比较简单,是通过组合用户控件实现的。对于Default.aspx页的顶部使用navbarnomenu控件,中间通过表table布局,页脚使用Banner控件。对于Category.aspx页顶部使用navbar控件,主体使用SimplePager自定义服务器控件。对于Search.asp和其他页面与Category.aspx几乎一样。

关于Asp.Net技术最优秀的开源CMS系统盘点
  随着网络技术的发展,目前国内CMS的开发商越来越多,各自都有其独特的优势,大家在选择的时候觉得眼花缭乱,不知道选择哪个比较好,我个…
  • 好学考试H5触屏版开放内测
  • 好学触屏公众号虎力全开、杨帆起航!