我是新來的.Net和試圖學習的東西。我試圖建立一個PRISM4 WPF應用程序與棱鏡4 WPF應用程序 - MVVM,知識庫和工作模式實施模式的解決方案架構
- 的Visual Studio 2010 CSHARP速成版,
- 棱鏡V4,
- 統一爲國際奧委會,
- 的SQL Server CE作爲數據存儲。
我已經研究了很多(?)和this和this等怕得罪人,並決定實施MVVM,庫和的UnitOfWork模式。此應用程序將與(我:-)
所以,我創建了一個解決方案具有以下項目的單個用戶的桌面應用程序:
- 殼牌(應用程序佈局和啓動邏輯)
- 通用(應用程序基礎設施和工作流程邏輯)
- BusinessModuleA(查看和的ViewModels)
- BusinessModuleA.Model(業務實體 - POCO)
- BusinessModuleA.Data(資料庫,DAT一個訪問(EF?))
- BusinessModuleB(查看和的ViewModels)
- BusinessModuleB.Model(業務實體 - POCO)
- BusinessModuleB.Data(資料庫,數據訪問(EF?))
我的問題是:
- 哪些項目應引用哪些項目?
- 如果我在'BusinessModuleX.Data'中執行存儲庫,這是 明顯,我應該在哪裏定義IRepositories?
- 我應該在哪裏定義IUnitOfWork以及我應該在哪裏實現UnitOfWork?
- 如果我在ViewModels中使用UnitOfWork和Repositories,可以嗎? Instict說它是不好的設計。
- 如果上述(4)不好,那麼ViewModel應該通過服務 圖層(另一個項目?)獲取數據。那麼,我們如何跟蹤 實體的變化,以便在服務層的這些對象上調用相關的CRUD方法?
- 這是否有任何意義,或者我錯過了大局?
好了,可能是我沒有把我的什麼我在我的第一篇希望十分清楚。沒有太多的答案提出來。我仍然在尋找答案,因爲儘管@Rachel建議可能對眼前的需求有效,但我想小心不要讓自己陷入一個角落。我有一個Access Db,這是我在Office開發的個人用途,並且已經成功,現在已被50多個用戶使用並不斷髮展。一開始維護和修改訪問代碼庫就相當簡單,但隨着應用程序的發展,開始崩潰。這就是爲什麼我選擇重新編寫.Net/Wpf/Prism中的所有內容,並希望確保基本設計正確。
請討論。
同時,我想出了this...
嗨,謝謝你的迴應。不將M-V-VM組織到文件夾中,而是在同一個項目中將它們緊密結合在一起?是的,我的模塊每個都有自己的數據庫,並且完全不相關/不知道其他模塊,當然,除了「通用」之外。 – yoursvsr 2012-01-13 16:43:52
我的第四個問題是關於使用UnitOfWork'和'Repositories not'或'。我認爲Repositories是用UnitOfWork注入的構造函數來完成他們的工作。此外,允許每個模塊處理其自己的DataAccessLogic再次密封所有東西,對嗎?我不知道這是否會打破棱鏡和上面列出的模式試圖實現的鬆耦合和模塊化開發的目的。 – yoursvsr 2012-01-13 16:51:07
@yoursvsr對象可以共享一個項目並仍然可以分離。例如,在MVVM中,唯一需要引用的參考是您的ViewModels引用您的模型,以及您的視圖引用Models/ViewModels。實際物體存在並不重要。 – Rachel 2012-01-13 16:53:07