.net中MVC web项目和webapi有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net中MVC web项目和webapi有什么区别?相关的知识,希望对你有一定的参考价值。

我感觉新建的mvc web项目不就比webapi项目多了一个views文件夹嘛?去掉不相当于webapi项目吗?

首先要重点说的是,Web API是一种无限接近于RESTful风格的轻型框架,且不是微软提出来的,微软在.NET上实现了这中框架—http://Asp.Net
Web API,所以“微软包装”是一个极大的偏见。

就应用市场时间而论,MVC普及市场的时间比Web API时间早。为什么MVC提出来了,且都被大家公认是一种经典的web站点实现架构,为什么还要搞Web API呢?

这两年什么炒得最火热?互联网。在网络技术不断更新和替代的过程,网络不断普及。互联网产品只要你有技术,就可以做。但要说明的是,互联网产品的用户不再是一小部分人群,除了潜在用户,你需要面对的是庞大的上网人群和开发者。这时候你要考虑你的WEB服务器是否能够支持这么多的用户,节省一点点传输数据的带宽都能够让你的服务器轻松不少,除此之外,你还要考虑你的潜在用户变成你的真实用户的某刻时刻,你的服务器是否能够顺利支撑。

面对用户,你要考虑你的产品是否能够让用户使用起来感觉很“爽”,你要把用户体验放在首位,那么你的产品首先功能上必须稳定,不然即使有再好的创意,再耐心的用户总会使用其它产品替代你的产品。

面对开发者,你想要把某些功能开放,这时候你必须要开放某些接口。有人会说,我也可以使用MVC来开放这些接口,没错是可以,但是绕远道给你带来的是更大的代价。

Web API 和 MVC可以说是两个不同的东西。Web API更倾向于基于HTTP协议的服务,直接返回用户的数据请求。MVC是建站的一种框架,倾向于返回用户的页面请求。

我总结了以下 http://ASP.NET Web API 的特性,更能说明Web API是一种数据请求框架:

    http://ASP.NET
    Web API 可以根据请求报文来返回的相应数据格式。包括JSON和XML。

    http://ASP.NET
    Web API 单独做数据请求和MVC做页面请求可以让Web前端和后台更好的解耦,减少开发难度。

    Web API 可以更好地用在移动端网页、桌面端网页或者桌面程序。

    Web API 的宿主可以选择多样:WebHost,,ConsoleHost,甚至是windows Services。

    类似可以理解成ashx和webform的区别

参考技术A webapi是mvc web的一种

以上是关于.net中MVC web项目和webapi有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

集成 Web API 和 .net MVC 项目 (C#)

前端 ASP.NET MVC4 作为一个项目,ASP.NET Web API 作为同一解决方案中的另一个项目 - 如何从前端调用 WebAPI?

Web API 身份验证(无 asp.net 身份)

Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案 [转]

ASP.Net MVC 4 Web API 控制器不适用于 Unity.WebApi

了解 ASP.NET(MVC、Web API)中的令牌生成/验证