打印本文 打印本文 关闭窗口 关闭窗口
ASP.NET 与 Design Pattern
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2625  更新时间:2009/4/23 10:50:28  文章录入:mintao  责任编辑:mintao
3、  易于授权

4、  易于审计

 

WAF采用 Mediator 和 Command 设计模式,实现了一种标准的可配置的控制组件,此种设计模式可使让.NET在MVC的软件系统结构下更好的工作。使用此设计模式后整个Web应用将呈现如下结构:

 

 

            其中

1、  Waf_ctrl.aspx是整个系统的唯一入口点

2、  Waf_ctrl.aspx 通过请求参数中的Cmd,确定处理请求的页面,并将请求转发给此页面。

3、  Cmd及执行Cmd的页面可以通过配置完成。

 

关键技术

1、 Command

WAF采用Command的方式达到中心控制、避免页面间相互连接的目的。

对于每个页面,其所需要了解的就是命令,每个页面可以

1、  接受并执行命令。

2、  在<a href=”…”>或<Form action>中指定处理用户请求的命令

3、  直接发送命令。

 

如一个用户Login页面login.aspx

 

1、  首先其接受并执行Login命令,显示Login页面,其中Form编码如下

<form action=”main.aspx?cmd=Login”>

2、  当用户不是注册用户,并点击Register注册时,login.aspx需要在页面中指定处理注册请求的命令,如

< a  href=”main.aspx?cmd=Register” >Login</a>

3、  当用户输入用户名和密码,并点击”Login”时,执行后台的LoginButton_Click,验证用户的合法性。

4、  当用户验证成功,需要向用户显示付款页面时(如在 Online-shopping 中),Login.aspx可以直接发送Checkout 命令:

 

waf.Mediator.ExcuteCommand(“Checkout”, …); // this class provide by waf

 

控制流将直接转移到相应的命令执行页面,将显示Checkout 页面。

 

对于Command 在Web Page中的标识和传递有多种方式,WAF采用了URL的方式。

 

2、 唯一入口点

WAF需要使用唯一入口点,来实施中心控制

配置唯一入口点有两种方式

1、  直接配置,如唯一入口点为main.aspx,在编写页面时,输入

<a href=”main.aspx?cmd=welcome&other_parameter=value”></a>

<form action = “main.aspx?cmd=login”>

采用这种方式,如果入口点改变将会带来极大的维护工作量。

 

2、  WAF方式,WAF提供了一套自定义控件,其隐藏了入口点的具体位置,并且保持了与HTML相应元素的语义:如

 

<waf:a href=”welcome?other_parameter=value”></waf:a>

<waf:from action=”login”> <waf:form>

 

这样入口点的位置与具体页面无关,并可随时改动。

 

3、 Command的配置与执行       

WAF的关键所在是Command的配置与执行,WAF提供了waf.Mediator.Mediator类,及与其对应的 waf.control.xml,在waf.control.xml中可以对Command 及其执行页面的配置

 

<?xml version="1.0" encoding="utf-8" ?>

<Control>

           <Default-page>web/Default.aspx</Default-page>

           <Error-page>web/Default.aspx</Error-page>

           <Command-Set>

                       <Command name="Welcome" Executor = "web/Default.aspx"></Command>

                       <Command name="Category" Executor = "web/Category.aspx"></Command>

           </Command-Set>

</Control>

 

     其中:

<Default-Page>指定了没有任何Cmd 命令时显示的页面。

     <Error-page>指定了Cmd错误时显示的页面

    

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口