我已经使用 ASP.NET MVC 大约 1.5 年了,很享受它的功能,并且部署了许多成功的 Web 应用程序,但我目前正在阅读有关 ASP.NET Web API 技术的内容。而且,我发现以下内容:
我可以实现以前使用 MVC 实现的任何功能;使用新的 Web API 和更轻量级的方法。
与 asp.net MVC 相比,使用 Web API 开发 Web 服务更容易。
那么,asp.net Web API 将来会取代 asp.net MVC,还是每种技术都有自己的发展领域,或者我们是否应该考虑在同一个 Web 应用程序中同时使用这两种技术?
除了@jmoerdyk的回答之外,我还想指出一点:
关键是要了解每种技术的目标:
-
Web API.
这将是用于创建 Web 服务的新 API,这是传统 XML 服务和 WCF 服务的替代方案,因此值得首先指出 WEB API 与其他 Web 服务框架之间的主要区别。
Web API 和 WCF/ASMX 服务之间的主要区别在于它不是基于 SOAP 它是基于 HTTP因此,您可以利用所有 HTTP 功能,例如:
- 它包含非常有意义和描述性的消息头 - 建议消息正文内容类型的头、解释如何缓存信息、如何保护信息等的头。
- 使用动词来定义操作(POST、PUT、DELETE..)
- 它包含一个可用于发送任何类型内容的正文
- 它使用 URI 来标识信息路径(资源)和操作
这是 Web API(当时称为 WCF Web API)的主要目标:停止通过 WCF 的视角来看待 HTTP,将其视为传递请求的传输协议。相反,它允许我们将其视为真正的应用程序级协议——一个丰富的、可互操作的、面向资源的协议。 Web API 的目的是正确使用 URI、HTTP 标头和正文来为 Web 以及希望将 HTTP 作为其协议和终生朋友的其他人创建 HTTP 服务。
请查看这篇文章以获取更多信息:http://www.codeproject.com/Articles/341414/WCF-or-ASP-NET-Web-APIs-My-two-cents-on-the-subjec
所以基本上 Web API 实际上可以与 WCF 或 XML 服务进行比较
如果您想知道 WCF 会发生什么?
所以事实是我们有太多的选择,因此也有太多的困惑。我们该怎么办?我们合并团队! (这让我们想起了 LINQ-to-SQL 和实体框架、WCF 和 Ado.Net 数据服务以及其他此类示例的时代)。因此,WCF 团队和 ASP.NET 团队联手,为 Web 世界创建了一个专注于 REST/超媒体/HTTP 服务领域的新框架,从而诞生了 ASP.NET Web API。
-
MVC
既然您知道 Web API 的目标是什么,那么应该更容易say为什么 MVC 包含主要渲染视图的附加功能。
您的担忧是基于以下事实:WEB API 是实际上是基于MVC的,但他们的目标不同
另一方面,ASP.NET MVC 基础设施能够优雅地处理 HTTP 请求和响应,并且支持易于创建的控制器,这似乎是创建这种新型服务的正确方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)