c# – MVC 5项目和Web Api项目之间的区别

我是新到Asp.net MVC和Web Api并试图获得基础。 Afaik,我们在VS 2013有项目模板,命名为MVC,Web Api和他们在一起。

我已经通过教程,并学习,我们可以通过使用MVC单独以及与Web Api模板制作一个Api。
所以,有人可以解释这些之间的差异,基于体系结构和使用。

基本上,Web API控制器是一个MVC控制器,它使用HttpMessageResponse作为其响应的基本类型,而不是ActionResponse。它们在大多数其他方面都是一样的。项目类型之间的主要区别是,MVC应用程序项目类型添加了web特定的东西,如默认CSS,JavaScript文件和网站所需的其他资源,这些API不需要它们。

MVC用于创建网站。在这种情况下,控制器通常返回一个视图(即HTML响应)到浏览器请求。另一方面,Web API通常被其他应用程序使用。如果要允许其他应用程序访问您的数据/功能,可以创建一个Web API以方便此访问。例如,Facebook有一个API,以允许应用程序开发人员访问有关使用应用程序的用户的信息。 Web API不必为公共消费。您还可以创建一个API来支持您自己的应用程序。例如,我们创建了一个Web API来支持我们的MVC网站的AJAX功能。

微软改变了他们提出不同模板的方式。现在,不是为不同的项目类型使用不同的模板,他们鼓励开发人员在同一个项目中根据需要混合使用ASP.NET技术。 Microsoft调用此vNext。

更新:对于ASP.NET Core,Web API已集成到MVC 6项目类型中,ApiController类合并到Controller类中。详情请见:https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

http://stackoverflow.com/questions/22589245/difference-between-mvc-5-project-and-web-api-project

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – MVC 5项目和Web Api项目之间的区别