我有一些关于框架设计的一般问题。关于构造域驱动设计命名空间的一些问题
我正在为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