如何将 ASP.NET MVC 核心视图和 ASP.NET WEB API 控制器分离到单独的项目中?

pun*_*ter 1 c# asp.net-mvc asp.net-web-api

现在 API 和 MVC 控制器位于同一个项目中,这很好。稍后我将添加一个 Angular 前端。但由于 Angular 前端是一个单独的项目,因此 ASP.NET Core MVC 视图成为一个单独的项目是否有意义?任何地方都有链接如何做到这一点?我想这样 2 个视图(Angular 和 ASP.NET core MVC)都会调用 WEB API 层,这看起来更合乎逻辑。..

或者,如果他们留在同一个项目中,我至少应该让 MVC 控制器调用 WEB API 控制器?或没有 ?

Jon*_*yan 5

如果我理解正确的话...

您有一个 MVC 应用程序,其中也有一些 API 控制器。您正在添加一个需要调用 API 控制器的 Angular 项目,并且您想知道是否应该将 API 控制器移至单独的项目中?

如果是这样的话……可能吧。

这样做时,API 将成为业务逻辑的中心源,而 MVC 应用程序和 Angular 应用程序将成为该中心逻辑的两种不同表现形式。

但最终,这是一个架构决策,您需要根据您对解决方案进展的看法来做出。

所以如果有帮助的话:

  • 降低复杂性
  • 帮助代码遵循 SOLID 原则
  • 阻止您违反 DRY 原则
  • 允许更好地分离关注点
  • 这样做的时间和成本是可以接受的

然后就去做吧。

您可能会发现 MVC 项目和 API 项目具有共享的依赖关系。因此,您最终可能不得不将模型或实体等内容移动到自己的项目中,以便两者都可以引用它们。您可能还需要考虑身份验证及其工作方式,并考虑身份服务器之类的东西。

希望有帮助。