4

我想知道什么是更好的方法。我创建了一个 webapi 项目,目前正在制作我的 api。

将来我想要一个完整的 asp.net mvc 4 网站,它还可以包含将数据插入我的数据库的表单。

我不确定我是否应该

a) 在我的web api项目中创建一个新区域并从那里建立我的网站。

b)将其保留在同一区域,并在web api项目中制作一些新的控制器等。

c) 将一个新的 asp.net mvc 4 项目添加到我的web api解决方案项目中。

4

4 回答 4

4

肯定是两个项目。事实上,我实际上会推荐三个项目:

  1. MVC 网站
  2. 类库,用于共享您的 DAL/服务层
  3. 网络 API

您的 MVC 站点不应该需要查询您的 Web API,这只会造成不必要的 HTTP 延迟。您的 MVC 站点和 Web API 都只是您的类库的“前端”。它们都将引用类库并与类库交互。

仅当您尝试提供第三方访问权限或与其他语言的项目交互时,才需要 Web API。如果一切都是 .NET,那么只需共享 DLL 就可以了。

于 2013-05-06T21:27:39.987 回答
2

K. Scott Allen 最近写了一篇关于 ASP.NET MVC 和 WebAPI 共存的精彩文章,它涵盖了最常见的场景以及何时适合将 WebAPI 与 MVC 一起使用,或者何时应该只使用 MVC。

我会以此为指导,选择最能满足您当前需求的解决方案。我的建议是保持简单,如果您的要求很简单,那么没有理由不将 WebAPI 和 MVC 放在同一个项目中——它工作得很好。随着您的需求发生变化,您始终可以将它们拆分为不同的项目或解决方案,但是到那时您将确切地知道为什么要这样做。

http://odetocode.com/blogs/scott/archive/2013/07/01/on-the-coexistence-of-asp-net-mvc-and-webapi.aspx

于 2013-07-25T22:36:03.840 回答
0

Web api 和 Web 界面的单独项目将有助于拆分,但它确实会导致重复。我们最近就这样做了,它运行良好,但它引起了一些问题。

拥有一个项目的论据:

  • 由于我们还没有域名,所以我们在 8080 端口上有我们的 API。我们可以使用目录绑定来使 API 可以从 Web 界面的子目录访问,但我们担心有关绝对路径解析的纯生产错误。

  • 许多设置在两个项目之间共享,因此我们必须将它们复制到两个 web.config 文件中。

拥有多个项目的论据:

  • 它们更容易升级,因为它们可以具有不同的依赖项,并且可以完全独立构建。例如,我们的 API 项目使用了一些依赖项的更新版本。

  • 它迫使您将所有业务逻辑提取到一个单独的库中,并使您更容易将两个项目视为单独的子系统。

  • 如果负载太多,将 Web 界面设置到单独的机器会更容易。这对我们来说是一个问题,但您的情况可能并非如此。

如果我不得不再次做出这个决定,我可能不会为单独的项目而烦恼,除非系统非常复杂并且我需要额外的结构。这两种选择都可以争论,但我认为它带来的部署头痛是不值得的。

于 2013-07-25T22:44:54.977 回答
0

绝对地,

通过链接http://efmvc.codeplex.com/

这是开发大型应用程序的最佳架构

可能这个对你有帮助......

另一种最好的 MVC N-Tier 架构

MVC ---------> WEB API(服务)-----> 这里 BL | DL(ORM) | D B)

您在同一解决方案中创建它并构建应用程序...

于 2013-07-25T21:55:06.367 回答