在发布asp.net Web API之后,ASP.NET MVC框架的未来是什么?

时间:2012-07-23 22:39:11

标签: asp.net asp.net-mvc asp.net-web-api

我已经使用asp.net MVC大约1。5年了,我很享受它的功能,并且已经部署了许多成功的Web应用程序,但我现在正在阅读asp.net Web API技术。而且,我发现以下内容:

  1. 我可以实现我过去使用MVC实现的任何功能;使用新的Web API并采用更轻量级的方法。

  2. 使用Web API比较asp.net MVC更容易开发Web服务。

  3. 那么,asp.net Web API将来是否会接管asp.net MVC,或者每种技术都有自己的增长领域,或者我们是否应该考虑在同一个Web应用程序中使用它们?

4 个答案:

答案 0 :(得分:15)

除了@ 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的目标是什么,那么为什么MVC包含主要呈现视图的附加功能应该更容易。

    您的担忧是基于WEB API 实际上基于MVC 的事实,但他们的目标是不同的

      

    另一方面,ASP.NET MVC基础架构优雅地处理HTTP请求和响应,并支持易于创建的控制器,这似乎是创建这种新型服务的正确方法

答案 1 :(得分:6)

不,他们并没有真正做同样的事情。

Web API实际上仅用于生成基于REST的API的JSON,XML或其他基于文本的响应。 MVC也可以这样做,但新的Web API似乎更容易,特别是在自动内容类型协商时。

Web API不适合用于生成具有视图等的完整或部分HTML页面。

因此,每个人在ASP.Net框架中都有自己的目的,而且不太可能超越另一个。

答案 2 :(得分:2)

WebAPI和MVC是两个不同的东西,但它们都在同一个框架中工作。 WebAPI用于提供宁静的服务。 MVC用于网页。

您可以在MVC中创建休息服务,其工作量远远超过WebAPI。反之则不然。您无法在WebAPI中创建Web页面。因此,你的问题从根本上被混淆了。

答案 3 :(得分:0)

它们将在新版本中合并,技术上两者的工作方式类似,但API没有附加视图,因此可以提供更好的性能