當前位置:學問君>學習教育>畢業論文>

ASP.Net中程序構架與程序代碼的分離 2

學問君 人氣:8.57K
一年前,當本人拿到一個名叫TWIG的PHP程序時,立即被作者OOP編程思想所折服,很難想像TWIG中所有的功能(行事曆、郵件、個性化)均在一個PHP檔案(3)中執行完成,這就得益於作者採用了程序代碼與頁面構架分離的思想,但是我也看到儘管作者做了很大的努力,但由於PHP的侷限性,程序並沒有真正做到代碼與構架的分離,3這個主檔案由於要執行的功能太多,所以其require的模組檔案相當之多,至使整個檔案依然顯得十分零亂,本人愚昧,當時花了半個月的時間,才真正明白程序的構架,分析代碼之苦,無人能知啊(黯然淚下......)。

TWIG程序對我此後的編程有着很大的影響,但是即使這樣的作品,依然沒有擺脫程序代碼與HTML代碼混雜的局面。

ASP.Net中程序構架與程序代碼的分離 2

程序代碼與頁面構架的分離是WEB程序員多年的'夢想。在出現之前,無論是ASP、PHP還是JSP,程序代碼與HTML代碼都是混雜在一起的,這種做法,雖然在WEB技術初期受到讚揚,但是隨着時間的的推移,它的弊端是越來越明顯,當程序代碼很長時,HTML代碼與其混雜,程序的可讀性變得很差,讓人無法分清程序真正要表示的頁面構架。

而新技術則透過Codebehind、用戶控件(UserControl)以及自訂控件(CustomControl)等方法真正做到了代碼的分離。這是一個了不起的進步,大家可以在本文中看到分離代碼後的程序的結構是多麼的清晰。

爲了便於理解,這裏設計的頁面比較簡單,頁面分爲三個主要的部分,頭部包含一個AdRotator控件(用於顯示廣告)與一個Label控件(用於顯示當前廣告連結地址);中部是一個登陸頁面,包括兩個TextBox控件(分別用於輸入用戶名與密碼)、一個Label控件(顯示登陸是否成功)與一個Button控件(作爲提交按鈕);底部包含兩個Label控件(分別顯示當前用戶名與用戶權限)。

熟悉的朋友,馬上就會意識到頭部由於使用了AdRotator控件,所以必定存在OnAdCreated事件以便在Label控件顯示相應連結;而中部由於使用Button控件做爲提交按鈕,所以必定有一個OnClick事件處理。

1CodeBehind


首先我們就看看如何使用CodeBehind方法來實現代碼與頁面構架的分離,下面給出的源程序是主程序: