WebApi架构查询

时间:2013-08-28 07:23:17

标签: asp.net-mvc-4 architecture asp.net-web-api restful-architecture

我正在设计我的项目的架构,它将具有

  1. 网络应用程序(客户端)
  2. Windows应用程序(客户端)
  3. 移动应用程序(客户端)

  4. 服务层(将使用Web Api完成)

  5. 业务逻辑层
  6. 数据访问层
  7. 数据对象层
  8. 我的问题是我需要为Web应用程序和服务层(Web Api)创建两个不同的MVC项目。因为他们都将被托管。我已经看到WebApi模板也支持ActionMethods(当类被Controller类继承时)。因此,Web Api模板可以用作WebApp以及服务层。

    遵循的最佳做法是什么。

    我知道这些地方有类似的问题

    What is the correct architecture for MVC4 WebAPI

    Using ASP.NET WebApi with a 3 Tier Architecture

    但我想要具体说明我的要求。

    提前致谢。

2 个答案:

答案 0 :(得分:1)

定义架构需要确定每个组件的责任。 ASP.NET Web API通常必须是一个关注纯HTTP语义中状态表示的轻薄层 - 有点像SOAP在传统Web服务中所做的那样。

因此,在ASP.NET Web API应用程序中,您应该拥有非常少的业务逻辑。所以我不会简单地增加额外的物理层的开销,其中包括网络延迟,序列化和反序列化等。

这是我的首选方法:

enter image description here

答案 1 :(得分:0)

我能看到的唯一实际区别是,如果你将它们放在同一个项目中,那么你的API会突然与你的网络应用程序紧密耦合,并且永远不会没有它,这是不必要的。

在同一解决方案中创建单独的项目,并将它们作为两个独立的站点托管。