三层经典架构PetShop3.0之表现层
二.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几乎一样。