2010-06-09 36 views
1

我很努力去理解爲什麼MVVM真的是一個很好的模式來實現的對我來說,除了麻煩它,它只是添加另一個層,我有編碼。我知道我可以改變用戶界面,但我真的不需要。相反,我將無法使用riaservices,datagrid,dataform等開箱即用功能所有控件都需要一些實現。爲什麼不能簡單?爲什麼我應該使用MVVM,當它打破建立在riaservices功能

真的沒有辦法讓MVVM自動設置「IsBusy」和所有的數據表單編輯功能。這就像重新發明了我的輪子,似乎我能夠使用riaservices更快地編寫代碼。

回答

1

有些人會問:「爲什麼我應該在打破MVVM時使用RIA服務?」 :-)我不夠RIA服務專家來回答關於IsBusy的精確問題,並保留MVVM的簡單編輯功能,但請記住,MVVM和RIA服務現在在炒作過山車上都很高,而且幾乎任何博客或開發網站都會試圖說服你,爲什麼自切片面包以來它們是最好的東西。如果您沒有看到對技術或模式的需求,請不要使用它。這就是說:在我看來,RIA服務的真正意義在於讓你在頁面上打一個DataGrid,讓你用它來查看一個數據庫。這就是爲什麼幾乎所有的樣本都是這樣做的,而且大多數樣本都不會打擾MVVM,因爲它阻礙了光滑的嚮導和拖放式開發,這正是RIA真正閃耀的地方。如果這就是你所做的,沒有MVVM的RIA可能比反過來更有意義。

+1

@Jakob它的真正意義在於爲您正在構建的應用程序以及您希望在幾年內的位置做些什麼。如果你正在設計一個能夠很好地演示的CRUD應用程序,那麼RIA服務就是要走的路。但是,如果您長期看待並希望一個可測試的應用程序,並且因此可以維護,則可以使用帶有或不帶有RIA的MVVM。你需要了解爲什麼這些技術是有用的,它的所有關於正確工作的正確工具。 – Agies 2010-06-11 02:21:24

1

MVVM不會中斷RIAServices。它總是關於你如何實現這個模式。請記住,MVVM是Model-View-ViewModel。 ViewModel完成繁重的工作,視圖綁定到模型上。

使用RIA + MVVM,ViewModel只需處理RIA服務調用。它仍然可以使用RIA服務提供的模型,並將它們與視圖綁定。 IsBusy毫無問題,這通常是您可以提出的視圖狀態。

爲什麼一起使用這兩個?正因爲你不知道可能會發生什麼變化以及測試和靈活性。我不知道你,我寧願測試我的視圖模型和邏輯,而不依賴於可用的服務和數據庫。使用MVVM,View Model可以做到這一點 - 我可以爲一個「假」層存根,爲我提供模型來測試。這也意味着我可以構建代碼,並讓設計人員設計,即使我還沒有制定出服務或尚未構建該部分。

一旦準備就緒,那麼在生產版本中,我會在「真正的」RIA模型中進行連線並從那裏開始。

相關問題