我有一些關於框架設計的一般問題。關於構造域驅動設計命名空間的一些問題
我正在爲C#.NET(framework 3.5),& SQL 2008(使用LINQ)構建iPhone應用程序的API。我遵循領域驅動設計模式(在一本書)和 有以下文件夾結構:
Core
- DataAccess
--Impl
-Domain
-Impl
Core是我的核心API庫 - 我的DLL。 DataAccess包含數據訪問接口 DataAccess.Impl包含存儲庫(LINQ到DB) Domain包含我的大部分數據類型和屬性。 Impl包含我的服務(即AccountService.cs,EmailService.cs)
現在,作爲練習,我已將Windows服務添加到此項目 ,並試圖從此服務中的DLL調用功能。 我的問題是,我應該暴露給其他應用程序 什麼層應該保持隱藏?
- 應該從程序員看到的Impl文件夾的服務類?
- 還是來自DataAccess.Impl的存儲庫?
- 或者,我應該把所有的東西都放到程序員看到的地方嗎?現在看起來 ,這似乎有點混亂。
當我開始閱讀關於DDD我假定庫將 隱藏的,由服務類訪問,但我發現我需要同時在我的客戶打電話 功能。我設計了這個錯誤嗎?
我的另一個問題與命名空間命名有關。當從我的核心庫中的Windows服務 通話功能,我必須做我的包括這樣:
using Company.Product.ProductCore.Core.DataAccess.Impl
using Company.Product.ProductCore.Core.Domain
using Company.Product.ProductCore.Core.Impl
這似乎羅嗦。看着微軟的DLL,他們似乎保持了兩層的約定 - (System.Linq,System.Text等)。有Company.Product.ProductCore.Core.Impl 似乎混亂,並沒有真正告訴程序員這個命名空間是什麼(但它是 是我讀過的例子建議的)。這裏有最佳做法嗎?
您的建議(以及任何示例)都受到了重視。
謝謝。
有人想刺穿這個?我能做什麼來改善/澄清我的問題?謝謝。 – 2010-12-05 20:24:33
我認爲這是一個.NET後端,將通過iPhone應用程序通過互聯網訪問(是嗎?)。 「其他開發人員」是在iPhone應用程序還是在.NET後端上工作? – Marijn 2010-12-07 15:03:34
或者是iPhone上運行的某種[monotouch](http://monotouch.net/)應用程序? – Marijn 2010-12-07 15:06:47