2011-11-28 32 views
3

在一個典型的面向業務的瘦客戶端應用程序(在我的情況下是Silverlight)中,域模型應該位於服務器端還是客戶端,或者兩者都與域驅動設計有關。我應該在客戶端使用我的域實體還是DTO?在3層域驅動設計應用程序的情況下Model應該放在哪裏?

如果我的應用程序支持「無服務器」模式,除非下載應用程序不與服務器通信,該怎麼辦?目前我的無服務器模式對應用程序是透明的,我仍然使用相同的服務接口,但是提供了它們的本地實現。

+0

恩,你能說明'Where'的含義嗎?你說你有一個本地的服務實現。那麼,這些服務包括業務層和數據訪問層(居住在客戶端)應該是很自然的。這回答了你的問題了嗎?如果沒有,請澄清您的疑慮。 –

+0

我依賴,然後它駐留在服務器端,因爲服務器端知道數據庫結構和最初從數據庫創建實體,但客戶端應用程序也使用實體。 – sll

+0

有什麼理由不使用RIA服務?畢竟在WCF之上只是一個客戶端代理生成器。當我說「只是」它實際上很酷:) –

回答

0

您應該在單獨的程序集中創建模型,並從客戶端和服務器中引用它。
通過這種方式,您可以輕鬆地從程序的兩個部分訪問模型,同時將其與圖形和業務邏輯分開。

+0

因爲Silverlight不能引用.Net程序集,所以這不起作用。有兩種解決方案:使用WCF RIA服務,或藉助鏈接重用源代碼文件。 –

2

那麼他們可以留在這兩個地方。你可以有:

1)豐富的胖客戶端具有完整的域,並有存儲庫通過ODATA或其他東西訪問後端。 2)瘦客戶端通過命令和DTO訪問服務器,僅實現幾個驗證 3)以及兩者的混合。

不幸的是,一個項目不是其他項目。這是一個背景問題。

如果您提供了更多信息,我們可以嘗試幫助您選擇。

相關問題