我已经使用 3rd 方库构建了一个用于 CRUD 操作的 N 层应用程序。这是我的应用设计包装:
项目清单
- 核心- 具有域模型和实体。
- DataAccessLayer - 带有第 3 方库 NHibernate 和 IOC 容器 Ninject
- Ui - Wpf 应用程序或 Asp.net MVC 应用程序
现在我想将 UI 与 DAL 分开,通过 WCF Tcp 服务公开我的 CRUD 存储库。这个选择是针对客户端-服务器设计的:
- 服务器:WCF -> DAL 以及用于数据库连接的所有 3rd 方软件(很多驱动程序非常大且安装在 100 多个客户端中非常昂贵)。
- 客户端:我的 WPF 或 SilverLight UI。
我已经构建了MVC和WebForms APP,很多人认为这是一个更好的解决方案!
但是使用 wpf,我有很多可能玩图形,而且开发对我来说更快。
我所有的存储库都扩展了一个接口(用于 Ninject 的依赖注入),我想将它添加到我的 WCF 服务中而不创建其他接口。我的很多 repo 函数返回 NHibernate 对象列表,如何将属性“DataMember”添加到非 WCF 项目?
但我的简单问题是,“保持良好设计的最佳方法是什么?” 谢谢耐心!