【发布时间】:2014-11-30 20:49:11
【问题描述】:
我想拆分我的 C# Web API 项目,以便在单独的项目中维护给定的功能(或一组功能)。理想情况下,我仍然希望在每个功能包中保持分层分离。
示例:我想确保每个主要功能都有一个单独的 API 项目(即,业务套件将分为销售 API、库存 API、工资 API 等)。每个功能将分为 API(顶层)、模型(从/向 API 发送和接收的 DTO/ViewModel)、服务(业务逻辑)和测试。可能有更多层,即实体类等的单独层。
在这些项目中,必须在顶层(例如错误处理、日志记录等)和其他层(数据库连接、存储库...)上重用一定数量的共享代码。
有没有人有一个很好的例子来说明如何进行这种分离,这样一切都是 DRY,同时保持特征的清晰分离?
最好的问候, 丹尼尔
【问题讨论】:
-
理想情况下,这种分离会一直延伸到数据库,这样给定的特性就可以拥有自己的数据库。显然,这可能会导致数据库架构发生变化,其中以前可用于功能 A 的数据不再可用,因为它在技术上属于功能 B。
标签: c# package asp.net-web-api