Asp.net MVC 与 Asp.net Web API 区别
Asp.net MVC 与 Asp.net Web API 区别
在我们开发一些web应用时,我们一样可以在MVC Framework 中使用JsonResult 来返回JSON数据,同样也可以处理一下简单的AJAX请求,那么为何微软又推出Web API这么个东西呢?接下来我们来比较一下。二者(Asp.net MVC 与 Asp.net Web Api)何时用?
Asp.Net Web API VS Asp.Net MVC
1、Asp.net MVC 是用来创建返回视图(Views)与数据的Web应用,而Asp.net Web API是一种简单轻松地成熟的HTTP服务,它只返回数据,不返回视图(Views)。
2、Asp.net Web API可以通过.Net Framework来帮助我们构建REST-ful服务,而且他支持内容协商(根据客户端能接受的格式要求,返回相应的JSON,XML,ATOM),同时Asp.net Web API支持自我宿主(self-hosting),而MVC并不支持(只能宿主在IIS中)。
3、Asp.net Web API可以返回特定的数据类型,比如JSON,XML,或者其他在请求头中定义的数据格式。而MVC只能利用Json Result返回JSON数据类型。
4、Asp.net Web API 根据HTTP 谓语动词来映射Action,但MVC只是映射 Action 名称。
5、Asp.net Web API 一种全新的框架,它是Asp.net Framework 核心库的一部分。在Asp.net Web API 一些存在MVC中的特征(model binding、filters、路由)是存在System.Web.Http程序集中,而MVC是存在System.Web.Mvc中。因此,Web API 可以和Asp.net一起使用,也可以做独立的服务层。
6、如果在一个项目中融合Web API和MVC controller,用于处理复杂AJAX请求,这些请求可能返回JSON,XML或者其他数据格式。这就是Web API 自我宿主(Web API self-hosting)。
7、如果融合MVC和Web API 控制器(controller),而且需要集成认证,这时,需要创建两个过滤器(Filters),一个MVC的,另一个Web API的,因为他们两个是不相同的。
8、总之,WebApi在提供数据方面,是比MVC更加轻量的架构。
- 简单的总结
一.MVC主要用来构建网站,既关心数据也关心页面展示,而Web API只关注数据
二.Web API支持格式协商,客户端可以通过Accept header通知服务器期望的格式
三.Web API支持Self Host,MVC目前不支持
四.b API通过不同的http verb表达不同的动作(CRUD),MVC则通过Action名字表达动作
五.b API内建于ASP.NET System.Web.Http命名空间下,MVC位于System.Web.Mvc命名空间下,因此model binding/filter/routing等功能有所不同
六.b API非常适合构建移动客户端服务
- ASP.NET MVC与ASP.NET Web API的区别
- Asp.net MVC 与 Asp.net Web API 区别
- asp.net mvc 中的 controller和asp.net web api 的apicontroller有什么区别?(转)
- ASP.NET MVC与ASP.NET Web API的区别
- ASP.NET MVC与ASP.NET Web API的区别(转)
- Asp.net MVC 与 Asp.net Web API 区别
- asp.net MVC 和 webForm的区别
- Visual Studio 2013 Preview - ASP.NET, MVC 5, Web API 2新功能搶先看
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- asp.net mvc 中调用 web api
- Announcing the Release of ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 for VS2012
- 【ASP.NET】 MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
- [水煮 ASP.NET Web API2 方法论](1-1)在MVC 应用程序中添加 ASP.NET Web API
- 【翻译】ASP.NET MVC Web API 的路由选择
- 简单分析下SPring MVC和Asp.net MVC的区别和异同点
- ASP.NET MVC 4, ASP.NET Web API, ASP.NET Web Pages v2 (Razor)全部开源,并接受来自社区的贡献(contributions)
- 解析ASP.NET WebForm和Mvc开发的区别
- ASP.Net MVC与WebForm的区别
- asp.net mvc 和 asp.net三层的区别