通常,当我为项目布局 n 层架构时,我有以下几层:
- 域(域模型,存储库合同)
- 数据(在域模型之上工作的存储库)
- 服务(聚合存储库、缓存、验证)
- 演示文稿(mvc 应用程序)
考虑到实际应用程序和外部客户端将使用 ASP.NET MVC 4 Web API,它在哪里适合?它是服务层的一部分,还是使用服务层并与 MVC 应用程序处于同一级别?
通常,当我为项目布局 n 层架构时,我有以下几层:
考虑到实际应用程序和外部客户端将使用 ASP.NET MVC 4 Web API,它在哪里适合?它是服务层的一部分,还是使用服务层并与 MVC 应用程序处于同一级别?
可能有两种方法:
您决定通过 HTTP 调用从 MVC 应用程序使用您的 Web API。在这种情况下,调用代码 ( HttpClient
) 位于您的数据层中。无论您是从数据库还是远程 Web 服务调用中获取数据,这都无关紧要。在这种情况下,由于 Web API 可能已经封装了大部分业务逻辑,因此您的服务层将非常薄,只是数据访问层的包装,如果不带来任何附加价值,甚至不存在。
由于 Web API 是用 .NET 编写的,因此您可以决定在 MVC 应用程序中直接引用包含此 API 服务层的程序集。在这种情况下,您的 Web API 应用程序的服务层将成为您的 MVC 应用程序的服务层。
有两种可能