程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC和代碼隱藏文件

ASP.NET MVC和代碼隱藏文件

編輯:關於ASP.NET

ASP.NET MVC社區討論了在使用WebFormsViewEngine時,是否仍然需要代碼隱 藏文件,以及這是一個優點還是缺點或甚至是一個問題。

ASP.NET MVC默認仍然使用WebFormsViewEngine。當使用Visual Studio向 ASP.NET MVC應用程序增加一個WebForms視圖時會自動增加一個代碼隱藏文件和一 個設計器文件。許多人認為代碼隱藏文件已經被廢棄了,它們的用法頗令人困惑 ,因為開發人員傾向於使用像傳統的合而為一的ASP.NET Web窗體那樣的視圖。

Steve Smith更進一步的表明ASP.NET MVC Codebehind文件的壞處,因為他們 引誘開發人員將邏輯添加到視圖上,視圖在設計上應當保持“啞的” :

代碼隱藏文件是一個誘惑。對於不熟悉ASP.NET MVC (ASP.NET MVC還不到一年 時間而且還沒有發布)但是有Web窗體開發背景(大多數)的開發人員,他們始終 有一個將代碼寫入隱藏代碼文件傾向。這會使得在視圖裡的邏輯難以測試,最壞 的可能是甚至在代碼隱藏文件中包含的邏輯直接調用數據庫或者是web service, 以致完全繞過模型同視圖的分離。

Steve解釋了在某種情況下代碼隱藏文件是一個不好但卻必不可少的東西,例 如你想在一個強類型的視圖通過強類型方式引用模型(Model)。有寫人認為隱藏 代碼頁也可用來存儲一些視圖邏輯,而其他方式可能會弄亂ASPX文件。最後但並 不是最不重要的一點是他們為了在ASPX文件上獲得智能提示技術的支持。至於第 一個問題,Tim Barcz演示了如何使用沒有代碼隱藏使用強類型的ViewData,通過 合並泛型的CLR表示法來取代C#或者VB的表示法:

Inherits="System.Web.Mvc.ViewPage`1 [[ABCCompany.MVC.Web.Models.LoginData, ABCCompany.MVC.Web]]"

CLR表示法在單引號後面指定了泛型參數的數量,後面跟參數和包含參數類型 的程序集。

Luis Abreu不同意Steve的用法並在貼子做出了回應。他說“不能確定刪 除隱藏代碼文件就可以彌補一個‘不合格’程序員的不足”,因 為邏輯仍然可以放在ASPX文件的腳本塊裡。Luis也不同意“啞”視圖 的一般觀點。他認為視圖可能混合了“展現的相關代碼”,並且這些 代碼應該被放在隱藏代碼文件中而不是在控制器中或者直接寫在ASPX文件裡,這 樣會破壞標記和代碼之間的清晰分離。

查看英文原文:http://www.infoq.com/news/2008/09/aspnet-mvc- codebehind

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved