0

我想编写一个应用程序,它需要有两件事:1. REST API,以便其他人可以检索数据并以自己的方式显示 2. 默认显示是使用 ASP.NET MVC 的网页

所以有一些方法: 1. 创建 2 个单独的项目,1 个用于 Web API,另一个是 ASP.NET MVC。MVC 将与 Web API 对话以获取数据并呈现视图 2. 创建单个 ASP.NET MVC 项目。并创建一个派生自 APIController 的类。然后做与上面类似的事情。

据我了解,两种方法的性能应该相同。但是读完这篇文章后,我不太确定。

引用文章:

“你可以通过为 API 创建一个单独的项目来使用 ASP.NET MVC “API”来做到这一点,但是你仍然要为通过 MVC 的渲染管道过滤的 API 请求付出性能损失。在我的简单负载测试中在本地机器上,我发现托管在控制台应用程序中的 Web API 端点比托管在 MVC 项目中的 ASP.NET 控制器操作和 Web API 端点快了近 50%。”

我不是 ASP.NET 方面的专家,所以我很想听听您的解释或建议如何实现我想做的事情。

另外,如果我想在这个项目中使用 MEF,请赐教。

非常感谢。

4

1 回答 1

0

我认为它与 ASP.NET MVC 无关,而是与选定的主机有关。如果您发现控制台主机的速度要快 50%,那是因为它没有 ASP.NET 的所有开销。ASP.NET Web API 的自托管安装在 WCF Http 侦听器(内部使用 http.sys)之上,因此通信更加直接,根本不涉及 ASP.NET(甚至不涉及 IIS)。我认为 MVC 对此没有太大影响。如果 Web API 和页面非常相关,我会将它们放在同一个项目中。

于 2012-11-01T15:34:27.357 回答