既生瑜何生亮?ASP.NET MVC VS 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更加轻量的架构。

时间: 2024-12-16 23:38:30

既生瑜何生亮?ASP.NET MVC VS ASP.NET Web API的相关文章

ASP.NET MVC 4 (十二) Web API

Web API属于ASP.NET核心平台的一部分,它利用MVC框架的底层功能方便我们快速的开发部署WEB服务.我们可以在常规MVC应用通过添加API控制器来创建web api服务,普通MVC应用程序控制器根据用户请求的action方法返回ActionResult,而web api服务返回的则是json封装的模型数据. 在开始下面的内容前先给出相关类与接口的代码: public interface IReservationRepository { IEnumerable<Reservation>

IIS7下部署asp.net mvc及asp.net web pages的问题

在IIS7下部署asp.net mvc和asp.net web pages一不小心就会遇到文件找不到的错误,如下图所示: 发生这种问题的根本原因在于IIS7考虑了很多兼容性的东西,解决该问题的方法也很简单就是在配置文件中加入如下的配置项:   <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>   同类型的问题有不少呢:

ASP.NET MVC 01 - ASP.NET概述

本篇目录: ASP.NET 概述 .NET Framework 与 ASP.NET ASP.NET MVC简介 ASP.NET的特色和优势 典型案例 ▁▃▅ ASP.NET概述 ▅▃▁ 目前开发B/S系统的主要技术有ASP.NET.JSP.PHP等.其中ASP.NET是基于.NET平台创建动态网页的一种服务器端技术,使用它可以创建动态可交互的Web页面. 在Microsoft的.NET战略中,ASP.NET是其中一项的技术,从图1中可以看出ASP.NET是.NET Framework的重要组成部

七天来学习ASP.NET MVC (两)——ASP.NET MVC 数据传输

通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上.因此须要确保您是否掌握了上一节的内容. 本章的目标是在今天学习结束时利用最佳实践解决方式创建一个小型的MVC项目.本节的主要目标是了解MVC之间的数据传递问题.我们会逐步深入解说.并加入新功能,使项目越来越完好. 系列文章 七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)--ASP.NET MVC 数据传递 七天学会ASP.NET MVC

使用ASP.NET MVC和AngularJS的Web模块化管理

快速浏览标题便了解到本文要谈到公开资源平台,该平台允许快速,轻松地创建一个管理网络,并不需要在风格,导航,解决方案架构和其它跟主要任务无关的琐事上花费过多的时间. 平台视觉图和其中一块模板:(见附图一) 很长一段时间里,我们使用WPF技术模块化管理应用.我们做出的决定是将此管理迁移到网站中.最后我们得出了2个不同的产品:第一个:平台,就是这篇文章致力于介绍的,第二个是用于电子商务应用程序开发使用的集合模块. 技术运用于:(见附图二) 我们决定使用这些技术都是我们广泛应用微软产品的经验结果. 我们

第二章 指南(2)用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 原文:Building Your First Web API with ASP.NET Core MVC and Visual Studio 作者:Mike Wasson 和 Rick Anderson 翻译:谢炀(kiler) 校对:何镇汐.

《ASP.NET5》无法路由到Web API Controller控制器

这个标题不知道恰当不恰当,具体的问题就是我在一个现有的项目上创建了一个Web API Controller Class,但是按F5启动调试后,通过给定的路径如"http://localhost:3753/api/values/5"访问Get(int id)方法时,没有反应,设置了断点也进不去. 但这个问题在网上又没有找到解决方法,于是又新建了一个ASP.NET Web Application类型的项目,然后添加一个Web API Controller Class, 参考:<ASP

七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

注:本文为学习摘录,原文地址为:http://www.cnblogs.com/powertoolsteam/p/MVC_three.html 目录: 数据访问层 实体框架(EF)简述 什么是代码优先的方法? 实验8——在项目中添加数据访问层 关于实验8 实验9——创建数据输入屏幕 实验10——获取服务端或控制器端传递的数据. 实验11——重置及取消按钮 实验12——保存数据.库记录并更新表格 实验13——添加服务器端验证 实验14——自定义服务器端验证 结论 数据访问层 在实际开发中,如果一个项

七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递

注:本文为学习摘录,原文地址为:http://www.cnblogs.com/powertoolsteam/p/MVC_two.html Controller与 View之间的值传递 在上一节的实验二中已经创建了静态View.然而在实际使用情况下,View常用于显示动态数据.在实验三中们将在View中动态显示数据. View将从从Controller获得Model中的数据. Model是MVC中 表示业务数据的层. 实验3 ——使用View数据 ViewData相当于数据字典,包含Control