【发布时间】:2014-08-08 00:59:39
【问题描述】:
我正在使用 ASP.NET Web API 创建一个可插入的项目框架。我有很多胆量,但我在架构的一部分方面遇到了问题,我不完全确定如何解耦。
作为一个简化的例子,我有以下内容:
- Service/Presentation Layer(简单的 Web API 托管项目,内部很少,它基本上只是一个处理 IIS 中托管或自托管的外壳)
- 领域层,包含项目的核心、领域层部分
- Services(N个服务,每个都引用Domain层:想想微服务)。目前,这些服务中的每一个也都引用了 ASP.NET Web API 2.1
现在,服务都引用了域层,因为它有接口、助手等。但是,域层也引用了 ASP.NET Web API 2.1 等内容。我的想法是在域中拥有一个基本的“BaseController”,每个服务的控制器都可以从中继承,并且反过来都必然会继承诸如 Get()、Post() 等已连接的东西。问题是我不希望这些服务中的每一个也必须引用 ASP.NET Web API 2.1 和其他依赖项。我希望他们能够通过抽象来使用它们,而无需直接引用它们。换句话说,我想要更松散的耦合,并希望服务能够独立于 System.Web.Http 自主地生活。随着项目的发展,它将帮助我执行单元测试和 SOLID 原则。
也许我在这里采取了错误的方法,但也许不是。我的主要目标是使用 ASP.NET Web API 创建一个可插入的微服务框架,每个微服务都作为一个独立的程序集存在。因此,如果有其他推荐的方法,我会全力以赴。
希望这是有道理的。任何指针?值得一提的是,我对设计模式和 SOLID 原则的概念非常熟悉;只是不确定如何在保持控制器本机提供的一些自动请求处理的同时将所有这些串在一起。
谢谢!
【问题讨论】:
标签: asp.net .net design-patterns architecture asp.net-web-api