2011-11-16 184 views

回答

8

在ASP.NET MVC請求從Web服務器進來,並通過控制器直接處理。控制器確定適當的視圖並用模型填充它。然後,Controller將這些實例釋放到將結果呈現給客戶端的底層系統。你可以看到控制器是第一次也是最後一次採取行動。

在MVVM中,UI(視圖)面向用戶並直接接受用戶輸入。在View中,ViewModel中的命令(它是View的DataContext)由這個活動觸發。控制流向ViewModel,ViewModel解釋View發送並準備其模型的內容。在控制流回到視圖後,它會根據模型中的更改自行更新。如果需要一個新的視圖,ViewModel會將其與NavigationService(或者您的應用程序使用的任何導航方法)進行通信,這是Window或Frame - UI組件的範圍。你可以看到ViewModel不是第一次也是最後一次採取行動; View在MVC中發揮的作用要大得多。

就選擇哪一個最好,我傾向於以工具支持爲指導。例如,如果您使用的是ASP.Net,則通過MVC項目模板進行大量的自動化操作,有助於在應用程序中設置和使用該模式。根據我對Silverlight/WPF的瞭解,MVVM有很多支持。幾年前,當我加速MVC/MVP時,我在電子商務應用程序的結帳過程中實現了MVP。這是一次非常棒的體驗,取得了令人滿意的成果,但是我手頭沒有任何工具支持和一點指導就能寫出所有內容。當我編寫Silverlight應用程序時,我肯定會因爲那裏的支持而轉向MVVM。

+0

如何從Web服務器請求進來? Web服務器的主要功能是處理來自Web瀏覽器的請求,並相應地給出響應。 –

2

大量的網絡覆蓋該上,但作爲首發this視頻內容了將幫助你

2

MVC是一種軟件體系結構模式,它允許您將領域邏輯,用戶界面,業務邏輯等進行獨立的分離,並允許對問題進行全面分離,並允許單獨開發獨立邏輯並單獨進行測試,以及輕鬆測試多個版本的實現,而不費吹灰之力。

模型是如果你喜歡描述你想要捕捉的所有事物的實體,包括它的行爲,雖然大多數人都是用數據庫表來考慮它,但它僅僅是一個存儲模型和模型。

View是,如果你喜歡,你有

交互控制器是推動查看製作或承擔模型發生變化之間的相互作用的一個用戶界面。

MVVM如果您喜歡與MVC相同,但它使用額外的視圖模型來幫助用戶界面,並且此視圖模型通過控制器與模型同步。

也encompases像倉庫模式的最佳實踐架構,國際奧委會等

快速例如都說一個人的模型

class Person 
{ 
    int id; 
    string type; 

} 

現在視圖模型將與UI幫助可以有一個下拉列表,以poplulate類型的人羣因此視圖模型爲同一型號可能是

Class PersonViewModel 

{ //Pseudo code 
    SelectList {mytype, yourtype} 

} 

相比,這可能是在視圖 使用//僞 DROPDOWNLIST(slectList)

希望這有助於

相關問題