2012-11-01 139 views
0

我想写一个需要有两件东西的应用: 1. REST API让其他人可以检索数据并显示自己的方式 2.默认显示是一个网页ASP.NET MVCweb api vs asp.net mvc api

所以有一些方法: 1.创建2个独立的项目,其中1个用于Web API,另一个是ASP.NET MVC。 MVC将与Web API交谈获取数据&渲染视图 2.创建一个ASP.NET MVC项目。并创建一个派生自APIController的类。然后做与上面类似的事情。

据我所知,两种方法的性能应该是相同的。但是当我读到this article后,我不太确定。从文章

报价:

“你能做到这一点与ASP.NET MVC‘API’通过创建一个单独的 项目的API,但此时你仍然支付性能 处罚在我的本地机器的简单负载测试中,我发现 托管在控制台应用程序中的Web API端点比ASP.NET控制器操作和Web API端点的 快近50%在 MVC项目内举行。“

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

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

非常感谢。

回答

0

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