回答
耶。有很多的框架來構建應用程序MVVM:
MVVM Light
和Caliburn.Micro
。它們相對簡單輕便。這不需要很長時間就可以開始運行。Prism
是真的很酷的框架。然而,與上述框架相比,學習需要更多時間。但是,您可以構建一個真正的模塊化應用程序。Catel
不僅僅是一個MVVM工具包。因爲它還包括用戶控件和大量企業庫類。
更新:
我的看法是,這不是他們的處理這些框架強調ViewModel First
或View First
的方法,當你使用ViewModel First
或View First
方法這些框架不會造成任何麻煩。即使您選擇了ViewModel First
方法,並且您想要將此方法更改爲View First
方法,也不會有麻煩。
在我看來,這些框架旨在實現這些目標:
避免執行
INotifyPropertyChanged
(只需使用內置的實現(ViewModelBase
在MVVMLight和BindableBase
在棱鏡))簡化模塊之間的視圖更改(在棱鏡是
IRegion.RequestNavigate(...);
)viewModels
(IEventAggregator
在棱鏡MessengerInstance.Send(payload, token);
在MVVMLight和)之間的通信。你不必寫你的代碼。在這些框架中已經爲您創建了測試代碼。依賴注入。您可以通過接口將
Views
的實現與它們的ViewModels
分離。
和上面的清單是不完整
但他們哪一個最先強調虛擬機? –
- 1. 如何使用Moq.MockRepository.Of()方法
- 2. 如何使用heightForRowAtIndexPath方法?
- 3. 如何使用方法showMessage()?
- 4. 如何使用onItemSelected方法?
- 5. 如何使用setResultCallback方法?
- 6. 如何使用XDocument.CreateWriter方法?
- 7. 如何使用prepareForReuse方法
- 8. 如何使用Socket方法?
- 9. 如何使用readline方法?
- 10. 如何使用HttpClient.GetStreamAsync()方法?
- 11. 如何使用GetHBITMAP方法?
- 12. 如何使用DataTable.Merge方法
- 13. 如何使用CanvasBitmap.SaveAsync方法?
- 14. 如何使用類方法
- 15. 如何使用replace()方法?
- 16. 如何使用onActivityResult方法
- 17. 如何使用getChangedCells方法?
- 18. 如何使用`authenticate_or_request_with_http_token`方法
- 19. 如何使用方法?
- 20. 如何使用「is」方法
- 21. 如何使用此方法
- 22. 如何使用POST方法
- 23. 如何使用方法
- 24. 如何使用window.open方法
- 25. 如何使用readAttributes方法?
- 26. 如何使用compareToIgnoreCase方法?
- 27. 如何使用findBy方法
- 28. 如何使用RailsAdmin.authorize_with方法?
- 29. 如何使用Enumerable方法
- 30. 如何使用方法'drawAtPoint:withFont:'
卡利微行之有效的VM第一。我對其他人不夠了解。 –
爲什麼你需要一個視圖模型優先的方法?模型優先的方法(即域驅動設計)我可以理解,並且實際上我一直使用MVVM Lite。但是viewmodel優先?當您發現它與您的業務層和DAL不匹配時,這只是要求您找出問題所在。 –
@MarkFeldman - 這不是關於模型設計,而是關於(GUI)的組合。 –