NET WebApi VS MVC? ?

使用 ASP.NET MVC 控制器,您可以以不同的格式公开数据。AspNetWebAPI 是为创建 API 而明确设计的,但我可以很容易地用 MVC 控制器来做到这一点,我不清楚在什么情况下它会比传统的 MVC 控制器更好。我感兴趣的场景中,WebApi 的好处是显而易见的,它值得添加另一个复杂层到我的应用程序。

问: 在 MVC 中使用 asp.net WebApi 有哪些优点和/或缺点?

98434 次浏览

WebAPI 提供了 OData,因此您可以获得使用 OData 的所有优势:

  • 查询选项,如 $filter、 $top、 $orderby 等。
    • 对于传统的 MVC 控制器,您需要自己实现这些控制器。
  • 格式的标准化
    • 有一些 OData 客户端可以理解 RESTful API 的底层格式。

WebApi 允许创建可以通过 HTTP 而不是通过正式服务(如 WCF 或 SOAP)公开的服务。 另一个不同之处在于 WebApi 如何使用 Http 协议,并使其成为真正的一等公民。

更新: ASP.NET 核心,Web API 已经集成到 MVC 项目类型中。ApiController类被合并为 Controller类。更多信息: < a href = “ https://wildermuth.com/2016/05/10/Write-API-Controllers-in-ASP-NET-MVC-6”rel = “ norefrer”> https://wildermuth.com/2016/05/10/writing-api-controllers-in-asp-net-mvc-6

比较、讨论和教程的相关链接:

enter image description here

在某种程度上,你可能想要完全忘记 ASP.NET MVC。如果你是一个。NET 开发者,但是你想要建立一个单页应用(比如使用 Angular) ,你会想要一个 RESTful 服务(WebAPI)的好处,而不是 ASP.NET mVC 带来的所有不必要的膨胀。

相似之处

  1. 它们都继承自 ihttphandler的异步请求,所以基本上 apiconController 或 mvc 控制器都是 web.http 的包装器

区别:

  1. MVC 控制器是非常沉重的,如果你可以通过它的定义,你可以看到有多少接口和基本代码它使用,web API 是更轻的控制器和区分请求通过其传递的参数(是的,我们也可以改变它

  2. MVC 控制器有很多特性,比如返回视图、动作结果、 javascript 结果等等,但是在 web API 中它既有 JSON 也有 XML。

  3. API 用于实现 Restful (GET,POST,PUT,DELETE,OPTION)服务,这些服务可以独立地托管在任何地方,而不需要依赖视图,MVC 控制器不能支持这一点,因为它与视图紧密集成。

通常, 用于数据服务的 WebAPI,其中 MVC 可以生成更多类型的输出。

WebAPI 无疑简化了我们创建数据服务的方式。 干净又方便。 MVC 附带了更多的工具。

MVC 可以生成任何 WebAPI 可以输出的输出。 从模板生成输出可以很容易地在 MVC 中实现。我在 WebAPI 中找不到这样做的理由。PHP 开发人员和老 ASP 程序员可能从过去就知道这种态度,在那里您可以构建包含 C # 代码的 HTML 文件。

WebAPI-DATA MVC-DATA,UI/HTML,XHTML,文件,模板等。

NET MVC 和 ASP.NET Web API 都有不同的用途

ASP.NET

NET 提供了三种用于创建 Web 应用程序的框架: Web Forms、 ASP.NET MVC 和 ASP.NET Web Pages。这三个框架都是稳定和成熟的,你可以用它们中的任何一个来创建伟大的 Web 应用程序。无论您选择什么框架,您都将在任何地方获得 ASP.NET 的所有优点和特性。

每个框架都针对不同的开发风格。选择哪一种取决于您的编程资产(知识、技能和开发经验)、您正在创建的应用程序类型以及您喜欢的开发方法的组合。所有这三个框架都将在 ASP.NET 的未来版本中得到支持、更新和改进。

车祸

NET mVC 提供了一种强大的、基于模式的方法来构建动态网站,这种方法可以提供一个简洁的关注点分离,让你可以完全控制标记,从而实现令人愉快的、敏捷的开发。NET MVC 包含许多特性,能够实现快速、 TDD 友好的开发,以创建使用最新 Web 标准的复杂应用程序。

网络应用程式介面

NET Web API 是一个框架,它使得构建 HTTP 服务变得非常容易,这些服务可以到达广泛的客户端,包括浏览器和移动设备。NET Web API 是构建 RESTful 应用程序的理想平台。NET 架构。

你可以在这里阅读更多表格 Http://www.dotnet-tricks.com/tutorial/webapi/y95g050413-difference-between-asp.net-mvc-and-asp.net-web-api.html

这张照片似乎显示了事物的不同和相似之处。我希望这对我有帮助。

enter image description here

Web API VS enter image description here 1 . Asp.Net MVC 用于创建返回两者的 Web 应用程序 视图和数据,但 Asp.NetWebAPI 用于创建完整的 HTTP 只返回数据而不是视图的简单方法。

2 . Web API 有助于在.NET Framework 和 它也支持内容协商(关于决定最好的 客户端可以接受的响应格式数据 可能是 JSON、 XML、 ATOM 或其他格式化数据) ,自托管 不在车祸现场。

3 . Web API 还负责以特定的格式返回数据,如 基于请求中的 Accept 头的 JSON、 XML 或任何其他 MVC 只返回 JSON 格式的数据 使用 JsonResult。

在 Web API 中,请求被映射到基于 HTTP 谓词的操作 但是在 MVC 中它被映射到操作名称。

5 . ASP.Net Web API 是一个新的框架,是核心 ASP.NET 的一部分 模型绑定、过滤器、路由等 存在于 Web API 中的特性与 MVC 不同,存在于 新的 System.Web.Http 程序集 因此,Web API 也可以与 Asp.Net 一起使用,并作为 独立服务层。

您可以在单个项目中混合使用 Web API 和 MVC 控制器来处理 高级的 AJAX 请求,可以返回 JSON、 XML 或任何 其他格式和构建一个完整的 HTTP 服务, 这将被称为 Web API 自托管。

当你混合了 MVC 和 Web API 控制器并且你想要 实现授权,然后您必须创建两个过滤器之一 因为两者是不同的。

此外,Web API 是轻量级的体系结构,除了 Web 之外 应用程序它也可以与智能手机应用程序一起使用。

原始来源是 给你

NET MVC 致力于简化 HTML 的输出。NET Web API 致力于简化原始数据的输出。

在 WebForms 世界中,ASP.NET MVC 将等同于. aspx 页面,而 ASP.NET Web API 将等同于. asmx

毒蛇。NetMVC 用于创建同时返回视图和数据但不返回 Asp 的 Web 应用程序。Net Web API 用于创建完整的 HTTP 服务,它以简单易行的方式只返回数据而不是视图。

Web API 帮助构建 REST-ful 服务。NET Framework,它还支持内容协商(它是关于确定客户端可以接受的最佳响应格式数据。它可以是 JSON、 XML、自托管,这些都不在 MVC 中。

Web API 还负责根据请求中的 Accept 头以特定格式返回数据,比如 JSON、 XML 或其他格式,您不必担心这个问题。MVC 只使用 JsonResult 返回 JSON 格式的数据。