我想弄清楚ASP.NET和ASP.NET MVC之間的區別。稱爲MVC的模式 - 視圖 - 控制器是一種開發模式/模式/編程模型,對嗎?這只是開發人員編寫代碼以完全控制代碼的一種方式。如果是這樣的話,那麼微軟發佈的MVC 1,MVC 2等和MVC模式的'特殊框架'是什麼?混淆ASP.Net MVC
回答
由於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的自由。
ASP.NET MVC是ASP.NET
的一個子集微軟已經開發了MVC一個Visual Studio插件,將幫助您輕鬆實現MVC模式。你看到的不同版本是插件的版本。
MVC背後的基本思想(不是新的模式,BTW)是關注的分離。 ASP.NET和ASP.NET MVC之間的主要區別在於ASP.NET使用「Web窗體」模型,每個頁面都是一個「控件」,它具有子控件,而控件又具有子控件 - 您可以獲得它,它是一個控制層次結構。但是,ASP.NET MVC沒有控件!如果你已經在控件,視圖狀態和回發(如我自己)的環境中生活過你的開發事業,那將是完全不同的世界。
只要做一些谷歌搜索 - 你會發現很多關於這個主題的信息,以及關於哪一個更好用的爭論。通過一個MVC教程。如果您習慣了ASP.NET Web窗體,那麼這是一種完全不同的,通常更簡潔的Web開發方式。
MVC在ASP.NET世界中是一件美麗的事情。它可以讓設計人員和開發人員更和平地生活在一起,我們團隊中的每個人似乎整體上都更具生產力。通過AJAX使用部分視圖也令人驚歎。 – jocull 2010-11-17 05:45:41
MVC模式過於抽象(原始),在現實世界的應用程序開箱即用。這就是ASP.NET MVC框架與ASP.NET Web表單相比看起來「低級」的原因。但是,它的好處在於它提供發佈的新模式 - 比我們用於微軟產品的典型3 - 5年週期快得多。他們開始聽取社區的意見。因此,我們希望我們可以在MVC 5版本的某個地方獲得健壯的框架。
你能解釋一下什麼是原始的嗎?如果有什麼,我覺得它遠不如傳統的網頁形式。 – 2010-11-17 05:52:11
有模型,視圖,控制器和規則描述它們是如何鏈接的,對嗎?好,讓我想起「一切都是對象」。那麼爲什麼人們總是問MVC如何與ASP.NET主頁面匹配,尋找MVVC(因爲MVC不適合他們的需求),在javascript/ajax場景中對視圖和模型有什麼看法? – UserControl 2010-11-17 06:30:45
有趣的是,「非積極」的答案在沒有評論的情況下在這裏被低估。 「MVC模式」是神牛嗎? SO是如此。 – UserControl 2010-11-17 13:00:08
- 1. ASP.NET MVC ActionResult方法混淆
- 2. ASP.NET MVC HttpPost和SignOn()混淆
- 3. HttpContext.Current.Session混淆在Asp.net MVC 3.0
- 4. ASP.NET MVC中的路由混淆
- 5. ASP.Net MVC 6 PartialView模型綁定混淆
- 6. MVC模型混淆
- 7. 綁定MVC混淆
- 8. Spring MVC RequestMapping混淆
- 9. Spring MVC @SessionAttributes混淆!
- 10. Asp.Net資源混淆
- 11. MVC模型綁定混淆
- 12. IIS和ASP.Net配置混淆
- 13. 與設計和建築ASP.Net MVC4混淆
- 14. SQLServer2008:混淆或混淆
- 15. 混淆.Net Dll
- 16. ASP.NET MVC 3 - WebGrid分頁問題和一般混淆
- 17. 混淆有關窗體身份驗證在ASP.NET MVC
- 18. 混淆從經典ASP移到ASP.Net
- 19. 混合asp.net webform和asp.net mvc
- 20. ASP.NET MVC,Webform混合
- 21. mvc 4 mef導入/導出混淆
- 22. MVC 3連接字符串混淆
- 23. 混淆異步等待在MVC
- 24. 混淆
- 25. Ninject UnitOfWork混淆
- 26. 異常混淆
- 27. 服務器端事件與ASP.NET混淆
- 28. 混淆行爲調用內部ASP.NET
- 29. 混淆HTML幫助中的ASP.NET
- 30. 與SQL事務和ROWLOCKS混淆ASP.net C#
我會反對webforms更容易從winforms中獲取。至少對我而言,我希望事情能夠發揮同樣的作用。他們讓它看起來非常相似,所以我對webforms中的事情做了很多假設。這些假設讓我陷入了困境。作爲我的第一個Web開發經驗,我將有更輕鬆的時間來進入MVC,因爲它非常不同,並且與HTTP協調而不是將其抽象出來。試圖讓網絡像winforms一樣工作只會讓我困惑。 – Chev 2010-11-17 07:24:03