【问题标题】:Code resuse in an unified ASp.NET MVC and WebAPI application统一的 ASp.NET MVC 和 Web API 应用程序中的代码重用
【发布时间】:2015-05-06 11:56:02
【问题描述】:

我正在使用 ASP.NET MVC 构建一个 Web 应用程序,该应用程序需要通过 Web 浏览器(通过视图)以及通过 Web API 从移动应用程序访问。问题是我想避免在视图控制器(从控制器继承)和 Web API 控制器(从 ApiController 继承)中重复业务逻辑。

基本上,我想采用 Web 应用程序仅使用 Web API 的设计,所有业务逻辑都在 Web API 中实现。

视图 控制器 Web API 控制器 数据模型

设计此类应用程序的最佳方式是什么?有没有一种简单的方法可以从同一个 MVC 应用程序调用 Web API 控制器?还是使用两个单独的应用程序/项目更好?

【问题讨论】:

  • 将所有业务逻辑放在一个类库中,并从 MVC 和 Web API 控制器中引用它。您可以从 MVC 应用程序向 API 控制器发出 HTTP 请求,但这似乎没有必要,除非您有与基础架构相关的原因。
  • 谢谢!我还担心 Web API 功能将落后于应用程序功能(因为它经常发生在 API 中)。为避免这种情况,我计划要求通过 Web API 公开所有应用程序的功能,使其成为必要的层。
  • 这很公平,然后我会使用 RestSharp 之类的东西向您的 API 控制器发出 HTTP 请求。不要试图直接打电话给他们,因为很多人似乎都坚持这样做。
  • 执行 HTTP 请求而不是直接调用 api 控制器是否有显着的性能影响?直接打电话给他们有什么不好(反正我也不知道怎么做)?

标签: asp.net asp.net-mvc web-services web asp.net-web-api


【解决方案1】:

这是一种看起来像您的问题的方法。其他建议是here

【讨论】:

  • 不完全是。这种方法需要在三个地方(MVC UI、Web API 和应用程序)公开每个函数。您的链接中的#3 会更合适,因为它只有三个地方(MVC UI 和 WebAPI),但我不喜欢在应用程序中使用 HTTP 的想法,因为这似乎是不必要的开销。
猜你喜欢
  • 2011-03-05
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
相关资源
最近更新 更多