- 相關(guān)推薦
ASP.Net中程序構(gòu)架與程序代碼的分離
一年前,當(dāng)本人拿到一個名叫TWIG的PHP程序時,立即被作者OOP編程思想所折服,很難想像TWIG中所有的功能(行事歷、郵件、個性化)均在一個PHP文件(index.php3)中執(zhí)行完成,這就得益于作者采用了程序代碼與頁面構(gòu)架分離的思想,但是我也看到盡管作者做了很大的努力,但由于PHP的局限性,程序并沒有真正做到代碼與構(gòu)架的分離,index.php3這個主文件由于要執(zhí)行的功能太多,所以其require的模塊文件相當(dāng)之多,至使整個文件依然顯得十分零亂,本人愚昧,當(dāng)時花了半個月的時間,才真正明白程序的構(gòu)架,分析代碼之苦,無人能知啊(黯然淚下......)。
TWIG程序?qū)ξ掖撕蟮木幊逃兄艽蟮挠绊,但是即使這樣的作品,依然沒有擺脫程序代碼與HTML代碼混雜的局面。
程序代碼與頁面構(gòu)架的分離是WEB程序員多年的夢想。在ASP.Net出現(xiàn)之前,無論是ASP、PHP還是JSP,程序代碼與HTML代碼都是混雜在一起的,這種做法,雖然在WEB技術(shù)初期受到贊揚(yáng),但是隨著時間的的推移,它的弊端是越來越明顯,當(dāng)程序代碼很長時,HTML代碼與其混雜,程序的可讀性變得很差,讓人無法分清程序真正要表示的頁面構(gòu)架。
而新技術(shù)ASP.Net則通過Codebehind、用戶控件(User Control)以及自定義控件(Custom Control)等方法真正做到了代碼的分離。這是一個了不起的進(jìn)步,大家可以在本文中看到分離代碼后的ASP.Net程序的結(jié)構(gòu)是多么的清晰。
為了便于理解,這里設(shè)計(jì)的頁面比較簡單,頁面分為三個主要的部分,頭部包含一個AdRotator控件(用于顯示廣告)與一個Label控件(用于顯示當(dāng)前廣告鏈接地址);中部是一個登陸頁面,包括兩個TextBox控件(分別用于輸入用戶名與密碼)、一個Label控件(顯示登陸是否成功)與一個Button控件(作為提交按鈕);底部包含兩個Label控件(分別顯示當(dāng)前用戶名與用戶權(quán)限)。
熟悉ASP.Net的朋友,馬上就會意識到頭部由于使用了AdRotator控件,所以必定存在OnAdCreated事件以便在Label控件顯示相應(yīng)鏈接;而中部由于使用Button控件做為提交按鈕,所以必定有一個onClick事件處理。
1 CodeBehind
首先我們就看看如何使用CodeBehind方法來實(shí)現(xiàn)代碼與頁面構(gòu)架的分離,下面給出的源程序是主ASP.Net程序--Example1.aspx:
當(dāng)前廣告鏈接:
登陸窗口
用戶名:
密碼:
用戶名:
權(quán)限:
例程中,大家可以清楚地看到程序中不包含任何C#、VB、javascript來處理OnAdCreated與onClick事件,但是執(zhí)行本程序,程序能夠正常使用(如圖2-1與圖2-2)。這便是使用CodeBehinde的結(jié)果,事件處理已經(jīng)被轉(zhuǎn)移到其它程序中定義執(zhí)行。請大家注意本例中第一行的信息:
一般在ASP.Net程序中,Page指令都在設(shè)定本程序應(yīng)當(dāng)使用什么語言(使用Language屬性),而本例中沒有出現(xiàn)Language屬性,而是出現(xiàn)了兩
[1] [2] [3] [4] [5]
【ASP.Net中程序構(gòu)架與程序代碼的分離】相關(guān)文章:
項(xiàng)目教學(xué)法與項(xiàng)目化實(shí)訓(xùn)在《ASP.NET程序設(shè)計(jì)》教學(xué)中的應(yīng)用05-02
素質(zhì)教育中教師素質(zhì)的構(gòu)架05-01
構(gòu)件式GIS軟件開發(fā)中的構(gòu)件構(gòu)架技術(shù)04-28
項(xiàng)目案例教學(xué)法在ASP.NET課程中的應(yīng)用05-01
Visual FoxPro構(gòu)架系統(tǒng)在教學(xué)實(shí)踐中的應(yīng)用淺析05-01
柏拉圖認(rèn)識論中的分離問題04-29
巖石樣品中鉿的無載體分離04-28