Asp.net 我的页面继承应用总结
大家好,初次见面请多关照,一直以来我都从事的.NET的网站开发,觉得工作不是很有意思(网站开发来开发去还是那样子,公司小没办法都是小网站),当然啦我也从事开发WEB系统的应用不过也不是很大,不过觉得比做网站有意思多了(注明:我对程序设计超级感兴趣)。
今天写的是一个个人技术总结而已,(到目前为止我还在为某些问题困扰,这个以后在说了),由于长久以来都是按照超级原始开发,建立页面,拖放控件,然后双击形成方法,开始往里面写一些处理逻辑,个人觉得应该不是那么如此而已,而且还套用三层架构这个东东,不过我还在为这个纠结呢问题很多啦。这次做的这个项目我想利用一些其他的方法处理,首先我先说几个需要解决的问题:
- 系统是需要做身份判定来确认执行什么功能
- 每个aspx.cs页面都需要创建BLL层的类对象,然后执行方法
- 显示层由于你激活了大量的事件,然后会在aspx.cs形成很多的方法,这些方法一点聚合都感觉不到,例如departmentAdd.aspx,departmentManage.aspx,departmentEdit.aspx总体说来就是将一个部门信息处理的类又分成了添加、管理、编辑类,我晕不知道微软是为了方便还是保持内聚(结果在页面级别全都拆开了,难怪人家.NET MVC出来了)。
基本就是以上几个需要解决的问题
以下是我解决的方法其实到目前我也不认为是最好的方法
- 我将页面的aspx.cs文件里面的类都不在继承System.UI.Web.Page而是继承了一个自己定义的类这个类来继承System.UI.Web.Page。这样子我就可以将系统身份判定所有页面执行的公共方法全部聚合起来,继承的页面只需要调用就OK了,个人认为这个是个不错的方法。
- 第二个问题我也在困扰了,我不想向过去那样子不停的创建BLL层的类实例感觉这就是在重复的劳动劳动,每个页面的事件方法里面都要不停的创建一个或者几个BLL实例来解决问题。我目前是将子页面继承一个父页面,父页面继承System.UI.Web.Page,我在父页面实现了事件方法,例如过去在子页面都是双击一个按钮会形成一个事件方法,我是这样子实现的
父页面:
public class DepartmentCtrl : System.Web.UI.Page
{
protected virtual void Page_Load(object sender, EventArgs e)
{
Response.Write("aaaa");
}
protected override void OnInit(EventArgs e)
{
this.Initialization();
base.OnInit(e);
}
private void Initialization()
{
}
protected virtual void Add(object sender, EventArgs e)
{
}
}
子页面:
public partial class DepartmentAdd : Pain.BLL.DepartmentCtrl
{
protected new void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ }
}
protected override void OnInit(EventArgs e)
{
this.Initialization();
base.OnInit(e);
}
private void Initialization()
{
this.btnSave.Click += new EventHandler(this. Add);
//this.btnSave.Click += new EventHandler(this.BtnSave_Click);
}
/* 过去需要载入这个事件
protected void BtnSave_Click(object sender, EventArgs e)
{
}
*/
}
我感觉这样子实现比较好不是为了好看呀,而是降低了UI的逻辑处理能力那么在UI部分知识绑定事件而已,剩下的都交给父类来控制方法,父类在构造的时候就创建了对应的事物类的实例再也不用在各个aspx.cs页面去创建实例了。(其实我认为这样子才是聚合页面部分的功能)