Asp.net-Mvc

ASP.NET MVC 適合複雜的 Web 應用程序嗎?

  • July 28, 2014

上週,我的老闆要求我的團隊為下一個項目評估 ASP.NET MVC。我們所有人從 .NET 1.1 開始使用 webform,我們之前沒有 MVC 經驗,但是我所有的同事都對 ASP.NET MVC 感興趣,但是沒有運氣,我們最終的答案是否定的。

因為:

  1. 我們相信,儘管您是 ASP.NET 大師,但您可以在短時間內建構複雜的應用程序。但是如果你改用 ASP.NET MVC,開發時間會更長,每件事都需要使用 html helper,沒有 web 控制項,還有很多問題,一直打開 Firefox Tab with ASP.NET forum 問 How-To 問題。
  2. 我們已經看到很多人說MVC提供了更好的項目管理,但是如果是一個複雜的網站,我可以想像一個頁面有數百個<%=%>標籤,並且保持打開控制器查看返回什麼,並保持打開模型看邏輯。

我可以說,MVC 還不錯,但 Webform 足以勝任這項工作。

轉變為新技術或“思維方式”需要數週時間。

使用 MVC,您必須擺脫舊的 ASP.NET Forms 思維方式“複雜的 Web 應用程序”,即“我們有多少頁面,超過 300 個頁面!那將是巨大的!”。您更改整個應用程序的視圖。您從“接下來需要創建什麼頁面”的舊思維轉變為“我們接下來需要實現什麼功能”的 MVC 思維方式。

例如,我自己控制了一個項目,該項目僅在“web”項目中就有 3300 多個文件(加上 11 個支持程序集)。我正在建構的一件事是 MVC 如何將物理文件的數量大幅減少到大約 310 個左右。如何?因為我正在遠離“這是一頁。這是另一頁”。以“這是我要實現的功能”的思維方式。

通過將頁面視為您嘗試完成的功能,您開始將該頁面的各個部分抽象為通用功能。

MVC 可以通過這種思維方式極大地擴展,因為現在您有了一個您想要的外觀模板,您只需要實現另一個“功能”來更改您想要呈現的視圖 (html) 的外觀。沒有第 2 頁,沒有其他控制項等。

現在,至於你提到的“沒有網路控制”:再次,這需要一種不同的思維方式。有用於基本渲染和編碼的 HtmlHelper。我對一個名為 MyProjectHelper 的抽像類使用相同的概念,它將我的“函式”呈現到頁面上(函式 = 程式碼)。

例如,我過去總是為我的 DisplayNames 創建一個伺服器控制項。這讓我可以控制 DisplayName 的顯示方式,尤其是在切換到 Facebook Connect 和其他東西時。使用 MVC,我不再使用“伺服器控制項”,而是使用 ViewModel 上的“函式”來呈現該文本:CollegeProjectViewModel.RenderDisplayName()。由於這只是 UI 層的一部分,因此它將根據需要使用我希望的任何選項來渲染 Anchor(當然,摘要由接受“基本”文本渲染的 CollegeProjectViewModel 繼承)。

MVC 的強大之處在於不再需要“網頁”,而是需要“功能”或您想要對您的站點執行的方法。通過改變這種思維方式,您真的可以使用在控制器上創建的盡可能多的方法進行擴展。它確實在大規模 IMO 上加快了速度。

引用自:https://stackoverflow.com/questions/722501