ASP.Net中程式構架與程式程式碼的分離

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

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

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

而新技術則通過Codebehind、使用者控制元件(User Control)以及自定義控制元件(Custom Control)等方法真正做到了程式碼的分離。這是一個了不起的進步,大家可以在本文中看到分離程式碼後的程式的結構是多麼的清晰。

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

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

1 CodeBehind


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