项目改进原因:

目前的项目,大家每做一个页面,都需要获取人员相关信息,重复了大量工作,并且在此处如果尽兴相关修改,任务极其繁重,基本上涉及了所有页面的修改

不利于程序的维护

 

代码
    protected void Page_Load(object sender, EventArgs e)
    {
        Ajax.Utility.RegisterTypeForAjax(
typeof(mzdz));
        
if (!IsPostBack)
        {
            
if (Comm.getCookies().ry_id != null && !Comm.getCookies().ry_id.ToString().Equals(""))    //cookies不为空
              {
                ...               
            }
            
else
            {
                Comm.Timeout(
this);    //弹出提示,跳转到登陆页面
              }
        }
    }

 

所以对项目改进如下,在App文件夹中,新建一个类,取名为webPage,将大量相同的操作的都放在这个类里面来写,同时,该类里面,还获取了相关人员的全部信息,及出错后的解决方法等等

 

代码
    /// <summary>
    
/// 获取人员信息
     
/// </summary>
    
/// <returns></returns>
    public Person GetPerson()
    {
        Person person 
= new Person();

        
if (HttpContext.Current.Request.Cookies["dw_zfssdy"!= null)
        {
            person.RYID 
= Utilities.Decrypto(HttpContext.Current.Request.Cookies["dw_zfssdy"].Values["ID"].ToString());
            person.RYMC 
= Utilities.Decrypto(HttpContext.Current.Request.Cookies["dw_zfssdy"].Values["MC"].ToString());
        }

        
return person;
    }

    
public webPage()
    {
        person 
= GetPerson();

        
if (String.IsNullOrEmpty(person.RYID))
        {
            AlertMSG.TimeOut(
this);
        }
    }

    
protected void Page_Error(object sender, EventArgs e)
    {
        Exception objErr 
= Server.GetLastError().GetBaseException();

        ...

        Server.ClearError();
    }

 

 

这样,在日后的开发中,只会要将

 

public partial class qxgl_js_id : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {

    }
}

 

 

改进为继承自我们自己的webPage

 

public partial class qxgl_js_id : webPage
{
    
protected void Page_Load(object sender, EventArgs e)
    {

    }
}
 

 

这样,大量重复判断cookies的方法就不用其他程序员去关心了,当Cookies不存在的时候,在页面加载到我们自己的webPage的时候,就已经被处理了。

同时,在该页面,还可以方便的获取人员相关信息

 

代码
public partial class qxgl_js_id : webPage
{
    
protected void Page_Load(object sender, EventArgs e)
    {
        
string m_ryid = this.person.RYID;
        
string m_rymc = this.person.RYMC;
        ...
    }
}

 

灵活的运用继承,会给程序开发带来很大的方便。

比如日后我们所有的类都继承自一个可序列化的自定义类,这样,所有的类都可以被序列化以方便操作

[Serializable]
public class BaseClass
{
    
public BaseClass()
    {
        
    }
}

 

 

/// <summary>
/// Person 的摘要说明
/// </summary>
public class Person : BaseClass
{
    
public Person()
    {
        ...
    }
}

 

 

先写这么多,陆续还会有更多的改进。

posted on 2010-01-22 11:18  C.Gavin  阅读(137)  评论(0编辑  收藏  举报