我有一個解決方案,我的業務邏輯存儲在一個項目中,我的UI存儲在另一個項目中。我正在使用MVVM設計模式來創建一個接口,我想,將所有視圖模型放在另一個項目中是否合理和安全?
實際上,我將有3個程序集,其中UI是將數據上下文控制到View-Model類的可執行文件,該類依次綁定到Model類。MVVM解決方案架構
請讓我知道
湯姆
我有一個解決方案,我的業務邏輯存儲在一個項目中,我的UI存儲在另一個項目中。我正在使用MVVM設計模式來創建一個接口,我想,將所有視圖模型放在另一個項目中是否合理和安全?
實際上,我將有3個程序集,其中UI是將數據上下文控制到View-Model類的可執行文件,該類依次綁定到Model類。MVVM解決方案架構
請讓我知道
湯姆
開始寫了一份詳盡的答案,然後才意識到,我不認爲這真的很重要;
只要您保持良好的問題分離,無論是在同一個項目中使用不同的程序集或不同的文件夾,它都無關緊要。
重要的唯一場景是如果你想交換視圖而不交換視圖模型。
即使如此,如果您的視圖和視圖模型在同一個程序集中正確分離,那麼將它重構出來就足夠簡單了。
程序集是一個版本控制單元。
所以,如果你想混合和匹配模型,視圖模型和視圖的不同版本,讓它們在單獨的程序集中可能是一種簡單的方法。
將您的ViewModels
放置在新項目中很有意義。我不會說這是明顯的事情,但是在大型項目中,它絕對是一個有效的選擇。我個人喜歡在主項目中保留MainWindow ViewModel
,然後將組件保存在單獨的項目中。雖然,我通常在MEF周圍設計我的程序,並將ViewModel和View自動加載爲插件。