我很好奇构建包含以下内容(需要重构)的应用程序的正确方法:
Excel Addin COM-Visible 客户端库,包括 WinForms 和暴露给 Excel 的方法(计算调用和表单激活方法)然后使用客户端库中的功能连接到 WCF 服务。WCF 服务目前包含计算逻辑、验证逻辑、通过 ORM 工具访问数据库。
即 Addin -> Winform/Direct call in client DLL -> WCF -> DB or 计算
目前,这仅存在于 2 个项目中。我的第一个想法是重新架构如下:
客户端项目
- Excel“视图”(Project.Client.Excel),这将COM可见性级别限制为一个项目。
- WinForm“视图”(Project.Client.UI)
- 两组“视图”的演示文稿 (Project.Client.Presenter)
服务器端项目
- WCF“视图”包括数据传输对象?(Project.Server.WCF 或服务)
- 服务器端演示者(Project.Server.Presenter)?
- 业务逻辑(Project.Business)
- 数据访问层 (Project.DAL)
我的问题是:
- DTO 应该放在哪里,在 WCF 项目中还是作为他们自己的库/项目?
- 实体转换例程属于哪里(数据实体 <> 业务实体 <> DTO)?全部在业务逻辑层中还是有些在服务器演示者中?
- 这种方案的正确架构应该是什么?
- 还有很多我可能错过了?
重构的部分想法是纠正架构、分离关注点等,并允许将单元测试包含到设计中。