Asp.net 我的頁面繼承應用總結

iDotNetSpace發表於2010-10-26
大家好,初次見面請多關照,一直以來我都從事的.NET的網站開發,覺得工作不是很有意思(網站開發來開發去還是那樣子,公司小沒辦法都是小網站),當然啦我也從事開發WEB系統的應用不過也不是很大,不過覺得比做網站有意思多了(註明:我對程式設計超級感興趣)。

  今天寫的是一個個人技術總結而已,(到目前為止我還在為某些問題困擾,這個以後在說了),由於長久以來都是按照超級原始開發,建立頁面,拖放控制元件,然後雙擊形成方法,開始往裡面寫一些處理邏輯,個人覺得應該不是那麼如此而已,而且還套用三層架構這個東東,不過我還在為這個糾結呢問題很多啦。這次做的這個專案我想利用一些其他的方法處理,首先我先說幾個需要解決的問題:

  1. 系統是需要做身份判定來確認執行什麼功能
  2. 每個aspx.cs頁面都需要建立BLL層的類物件,然後執行方法
  3. 顯示層由於你啟用了大量的事件,然後會在aspx.cs形成很多的方法,這些方法一點聚合都感覺不到,例如departmentAdd.aspx,departmentManage.aspx,departmentEdit.aspx總體說來就是將一個部門資訊處理的類又分成了新增、管理、編輯類,我暈不知道微軟是為了方便還是保持內聚(結果在頁面級別全都拆開了,難怪人家.NET MVC出來了)。

基本就是以上幾個需要解決的問題

以下是我解決的方法其實到目前我也不認為是最好的方法

  1. 我將頁面的aspx.cs檔案裡面的類都不在繼承System.UI.Web.Page而是繼承了一個自己定義的類這個類來繼承System.UI.Web.Page。這樣子我就可以將系統身份判定所有頁面執行的公共方法全部聚合起來,繼承的頁面只需要呼叫就OK了,個人認為這個是個不錯的方法。
  2. 第二個問題我也在困擾了,我不想向過去那樣子不停的建立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頁面去建立例項了。(其實我認為這樣子才是聚合頁面部分的功能)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-676734/,如需轉載,請註明出處,否則將追究法律責任。

相關文章