【发布时间】:2013-01-07 02:48:58
【问题描述】:
最近我被要求开发一个项目。架构如下:
- 1 层:基于 Nhibernate 的 DataAccess
- 2层:基于WCF服务和一些Core类的业务层
- 3 层:基于 Silverlight 的视图
我将使用 DTO 对象在第 2 层和第 3 层之间传递数据。
我已经意识到该项目将拥有庞大的领域模型,并且许多业务实体应该支持标准和自定义 CRUD 操作。在第一层,它将由通用 NHibernate Repository + Specification 解决。
但是第 2 层(一个 WCF 服务)看起来像一组方法,为第 3 层提供 DTO 的自定义和标准 CRUD 接口。
例如模型看起来像:
class Product {}
class Category {}
DTO:
class ProductDTO {}
class CategoryDTO {}
“问题”WCF 服务:
public class DataService
{
public List<CategoryDTO> GetAllCategories()
{
}
public List<ProductDTO> GetAllProducts()
{
}
}
可能的解决方案:
public class ProductDataService
{
public List<ProductDTO> GetAllProducts()
{
}
}
public class CategoryDataService
{
public List<CategoryDTO> GetAllCategories()
{
}
}
问题:
- 上面列出的解决方案有什么好的替代方案吗?
- 在这种情况下,WCF 服务中是否可以使用任何“通用”方式?
【问题讨论】:
标签: wcf silverlight nhibernate architecture n-tier-architecture