2010-11-17 125 views
4

我想弄清楚ASP.NET和ASP.NET MVC之間的區別。稱爲MVC的模式 - 視圖 - 控制器是一種開發模式/模式/編程模型,對嗎?這只是開發人員編寫代碼以完全控制代碼的一種方式。如果是這樣的話,那麼微軟發佈的MVC 1,MVC 2等和MVC模式的'特殊框架'是什麼?混淆ASP.Net MVC

回答

9

由於ASP.NET是一個平臺,因此您進行的比較稍微有些尷尬,而ASP.NET MVC是該平臺的定製/增強功能,以便根據既定的MVC範例和最佳實踐進行編程。這就是說,ASP.NET WebForms採用了一種特殊的方法來構建Web應用程序:單一頁面和通過(經常可怕的)ViewState對象模擬'狀態'。同時,ASP.NET MVC側重於關注問題(表示,業務和持久性邏輯)的分離,以及對路由(乾淨網址 - 沒有醜陋的.aspx)和模型綁定等「開箱即用」支持。

每個人都有自己的好處 - ASP.NET經典WebForms提供了大量可用的用戶控件來快速啓動和運行。如果您來自Windows窗體或WPF背景(因爲代碼隱藏和事件看起來非常相似),所以也可以更容易地選擇。

MVC版本(1,2和3)提供了項目模板,一些入門代碼以及其他好處,例如對其他渲染引擎(即Razor)的支持。您將不得不使用MVC使JavaScript變得更加骯髒,但是您可以完全控制生成的標記以及extend the framework however you see fit的自由。

+1

我會反對webforms更容易從winforms中獲取。至少對我而言,我希望事情能夠發揮同樣的作用。他們讓它看起來非常相似,所以我對webforms中的事情做了很多假設。這些假設讓我陷入了困境。作爲我的第一個Web開發經驗,我將有更輕鬆的時間來進入MVC,因爲它非常不同,並且與HTTP協調而不是將其抽象出來。試圖讓網絡像winforms一樣工作只會讓我困惑。 – Chev 2010-11-17 07:24:03

1

ASP.NET MVC是ASP.NET

的一個子集

微軟已經開發了MVC一個Visual Studio插件,將幫助您輕鬆實現MVC模式。你看到的不同版本是插件的版本。

2

MVC背後的基本思想(不是新的模式,BTW)是關注的分離。 ASP.NET和ASP.NET MVC之間的主要區別在於ASP.NET使用「Web窗體」模型,每個頁面都是一個「控件」,它具有子控件,而控件又具有子控件 - 您可以獲得它,它是一個控制層次結構。但是,ASP.NET MVC沒有控件!如果你已經在控件,視圖狀態和回發(如我自己)的環境中生活過你的開發事業,那將是完全不同的世界。

只要做一些谷歌搜索 - 你會發現很多關於這個主題的信息,以及關於哪一個更好用的爭論。通過一個MVC教程。如果您習慣了ASP.NET Web窗體,那麼這是一種完全不同的,通常更簡潔的Web開發方式。

+1

MVC在ASP.NET世界中是一件美麗的事情。它可以讓設計人員和開發人員更和平地生活在一起,我們團隊中的每個人似乎整體上都更具生產力。通過AJAX使用部分視圖也令人驚歎。 – jocull 2010-11-17 05:45:41

-4

MVC模式過於抽象(原始),在現實世界的應用程序開箱即用。這就是ASP.NET MVC框架與ASP.NET Web表單相比看起來「低級」的原因。但是,它的好處在於它提供發佈的新模式 - 比我們用於微軟產品的典型3 - 5年週期快得多。他們開始聽取社區的意見。因此,我們希望我們可以在MVC 5版本的某個地方獲得健壯的框架。

+2

你能解釋一下什麼是原始的嗎?如果有什麼,我覺得它遠不如傳統的網頁形式。 – 2010-11-17 05:52:11

+0

有模型,視圖,控制器和規則描述它們是如何鏈接的,對嗎?好,讓我想起「一切都是對象」。那麼爲什麼人們總是問MVC如何與ASP.NET主頁面匹配,尋找MVVC(因爲MVC不適合他們的需求),在javascript/ajax場景中對視圖和模型有什麼看法? – UserControl 2010-11-17 06:30:45

+0

有趣的是,「非積極」的答案在沒有評論的情況下在這裏被低估。 「MVC模式」是神牛嗎? SO是如此。 – UserControl 2010-11-17 13:00:08