有關ASP.NET代碼分離的一些討論
關于ASP.NET代碼分離(code-behind)的討論的由來:
Visual Studio .NET(VS.NET)為Visual Basic的開發人員提供了一個非常直觀的Web開發環境。VB的開發人員已經有很多年都習慣于把他們的可視化接口拖放到設計接口上,然后在需要編寫代碼控制某個元素的時候雙擊這個元素。我認為,VS.NET的最高成就在于:它已經采納了Windows的軟件設計和信息回圈模型(message loop paradigm),并把它們映射到了像Web這樣的無狀態環境里。一旦你開始編寫需要交付使用的應用程序,你就會發現這個映射并不完美,但是VS.NET能夠把Windows的程序員迅速帶入到Web開發的能力絕對是值得肯定的。
當然有很多Web程序員會使用Visual Interdev、Visual Notepad或者其他Web開發的工具編寫動態服務器頁面(Active Server Page)。這些程序員中的許多人在變動到VS.NET世界的時候有過一段艱難的時期。他們原來習慣于將其應用程序分割成一系列ASP的頁面,這些頁面會同時封裝可視化接口以及這個接口的行為。
如果你看一下許多.NET還在beta版時期由ASP開發人員使用Framework SDK(在VS.NET正式上市以前)編寫的代碼示例,你能夠看到的主要是行內(inline)代碼示例。這是因為他們還是按照ASP開發時的習慣編寫代碼。事實上,開發人員能夠最先得到的主要ASP.NET應用程序之一是iBuySpy Portal和Store。這些應用程序在發表的時候就是以代碼分離的形式呈現給VB.NET和C#開發人員的,并且還是的單頁ASP.NET實現。很多還是偏好單個文件ASP.NET應用程序的開發人員把iBuySpy的作為繼續編寫行內代碼的過渡。
ASP.NET代碼分離有什么好處?
使用ASP.NET進行開發的每個.NET開發機構一定會碰到一些問題:我們是把C#還是VB.NET作為我們的核心開發語言?我們是不是要把行內ASP.NET的開發進行標準化,或是我們要嚴格地強制使用代碼分離的文件?第一個問題的答案最后要看原有開發人員的經驗和習慣,因為使用熟悉的語言會把你培訓和適應語言的費用降到最低。但是,關于代碼分離的爭論還不是很明確。盡管有一些參考資料堅持認為代碼分離是開發ASP.NET應用程序的正確道路,但是我還沒有在微軟出版的資料上看到任何關于這一點的建議。所以你該如何決定呢?
ASP.NET代碼分離之關于結構的爭論
從結構的角度來講,代碼分離的文件允許更加簡潔的系統實現。代碼分離的文件允許開發人員把用戶界面(UI)的顯示從UI的處理分離出來。ASPX文件里只允許存在的代碼是專門用來服務顯示的代碼。在代碼分離的文件里重新使用代碼比在帶有行內代碼的單個文件里要簡單一些(盡管仍然不簡單)。把設計和開發功能分離開來也是有可能的,只需要允許設計人員使用ASPX的文件和編碼器進行代碼分離的開發就行了。使用行內代碼實現這一點要困難得多。
ASP.NET代碼分離之關于環境的爭論
盡管VS.NET允許你使用行內代碼創建應用程序,但是其使用代碼分離文件將UI處理低層進行抽象化的模型卻直觀得多。在你使用代碼分離而不是編寫行內代碼的時候,其編譯器還能夠進行類型檢查和允許完全的IntelliSense。對行內代碼有錯誤的應用程序進行也是可能的,而這在以前只會在最終代碼被執行的時候才能進行。當你編譯這個應用程序的時候,放置在代碼分離文件里含有錯誤的相同代碼會被截獲。
ASP.NET代碼分離之行內代碼有沒有其他的正確用途?
我已經在前面列出了兩個關于使用代碼分離文件的主要爭論,我想在下面指出的是可能要使用逐行代碼的兩種情況,這樣才公平。
ASP.NET代碼分離的相關談論內容就向你介紹到這里,希望對你了解ASP.NET代碼分離技術有所幫助。
【編輯推薦】