Asp.net-Mvc
MVC 和 MVVM 之間有什麼區別和相似之處?
可能重複:
我是 Asp.Net MVC 模式的新手。我只有幾個與 MVC 和 MVVM 相關的問題
- 這些模式解決了哪些問題?
- 它們有何相似之處?
- 它們有何不同?
在 ASP.NET MVC 中,請求來自 Web 伺服器並由控制器直接處理。控制器確定適當的視圖並用模型填充它。然後控制器將這些實例釋放到底層系統,底層系統將結果呈現給客戶端。您可以看到 Controller 是第一個也是最後一個採取行動的人。
在 MVVM 中,UI(視圖)面向使用者並直接接受使用者輸入。在視圖中,視圖模型(即視圖的 DataContext)中的命令由該活動觸發。控制流向 ViewModel,它解釋 View 發送給它的內容並準備其模型。在控制流回視圖後,它會根據模型的變化進行自我更新。如果需要一個新視圖,ViewModel 會與 NavigationService(或您的應用程序使用的任何導航方法)進行通信,這是 Window 或 Frame–UI 組件的權限。你可以看到 ViewModel 不是第一個也不是最後一個。View 比在 MVC 中扮演的角色要大得多。
至於選擇哪個最好,我傾向於以工具支持為指導。例如,如果您使用的是 ASP.Net,那麼通過 MVC 項目模板可以實現大量自動化,這有助於在應用程序中設置樣板並使用該模式。根據我對 Silverlight/WPF 的了解,MVVM 周圍有很多支持。幾年前,當我開始加快 MVC/MVP 的速度時,我在電子商務應用程序的結賬過程中實現了 MVP。這是一次令人滿意的體驗,但我是在沒有工具支持和指導的情況下手工編寫所有內容。當我編寫 Silverlight 應用程序時,由於那裡的支持,我肯定會轉向 MVVM。