首页 文章

ASP.NET WebApi与MVC? [关闭]

提问于
浏览
129

使用ASP.NET MVC控制器,您可以以不同的格式公开数据 . AspNetWebAPI是专门为创建API而设计的,但我可以轻松地使用MVC控制器,我不清楚在什么情况下它会比传统的MVC控制器更好 . 我对WebApi的好处是显而易见的情况感兴趣,并且值得为我的应用程序添加另一个复杂性层 .

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

10 回答

  • 10

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

    UPDATE: ASP.NET Core,Web API已集成到MVC项目类型中 . ApiController 类合并到 Controller 类中 . 更多内容:https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

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

    enter image description here

  • 40

    WebAPI吐出OData,因此您可以获得使用OData的所有优势 . 例如,使用WebAPI,您将获得:

    • 查询选项,例如$ filter,$ top,$ orderby等 .

    • 使用传统的MVC控制器,您需要自己实现这些控制器 .

    • 格式的标准化

    • 有OData客户端将了解RESTful API的基础格式 .

  • 11

    相似

    1)两者都继承自ihhtphandler for asyncrequest所以基本上apicontroller或mvc控制器都是web.http的包装器 .

    差异:1)mvc控制器非常重,如果你可以通过它的定义你可以看到它使用了多少接口和基本代码,web api是更轻的控制器并通过其传递的参数来区分请求(是的,我们也可以改变它! )

    2)MVC控制器有太多的功能,如返回视图,动作结果,javascript结果等,但在web api中有JSON或XML

    3)API用于实现Restful(get,post,put,delete,options)服务,这些服务可以独立托管任何不依赖于视图的地方,MVC控制器无法支持,因为它与视图紧密集成 .

  • 1

    Asp.Net Web API VS Asp.Net MVC
    enter image description here
    1 . Asp.Net MVC用于创建返回视图和数据的Web应用程序,但Asp.Net Web API用于创建完整的HTTP服务,只需返回数据而不是视图 .

    2 . Web API有助于在.NET Framework上构建REST-ful服务,它还支持内容协商(它是关于决定客户端可接受的最佳响应格式数据 . 它可以是JSON,XML,ATOM或其他格式化数据),自托管不在MVC中 .

    3 . Web API还负责以特定格式返回数据,如JSON,XML或基于请求中的Accept标头的任何其他格式,您不必担心这一点 . MVC仅使用JsonResult以JSON格式返回数据 .

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

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

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

    7 . 当你有混合的MVC和Web API控制器而你想要实现授权时,你必须为MVC创建两个过滤器,为Web API创建另一个过滤器,因为两者都不同 .

    8 . 此外,Web API是轻量级架构,除Web应用程序外,它还可以与智能手机应用程序一起使用 .

    原始来源是here

  • 4

    在某些时候,您可能想要一起忘记ASP.NET MVC . 如果您是.NET开发人员但想要构建单页面应用程序(例如使用Angular),您将需要RESTful服务(WebAPI)的好处,而不会产生任何不必要的膨胀 . ASP.NET MVC附带 .

  • 11

    这个图像似乎显示了事物的方式的差异和相似之处 . 我希望帮助对我来说很有意思 .

    enter image description here

  • 10

    ASP.NET MVC和ASP.NET Web api都用于不同的目的

    ASP.NET

    ASP.NET提供了三个用于创建Web应用程序的框架:Web窗体,ASP.NET MVC和ASP.NET Web页面 . 这三个框架都是稳定和成熟的,您可以使用它们中的任何一个创建出色的Web应用程序 . 无论您选择哪种框架,您都将获得ASP.NET的所有优势和功能 .

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

    MVC

    ASP.NET MVC为您提供了一种强大的,基于模式的方法来构建动态网站,从而实现关注点的清晰分离,并使您可以完全控制标记,从而实现愉快,敏捷的开发 . ASP.NET MVC包含许多功能,可以实现快速,TDD友好的开发,以创建使用最新Web标准的复杂应用程序 .

    Web API

    ASP.NET Web API是一个框架,可以轻松构建可覆盖广泛客户端的HTTP服务,包括浏览器和移动设备 . ASP.NET Web API是在.NET Framework上构建RESTful应用程序的理想平台 .

    你可以在这里阅读更多表格http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html

  • 0

    ASP.NET MVC专注于简化HTML的输出 . ASP.NET Web API专注于简化原始数据的输出 .

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

  • 2

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

    WebAPI肯定简化了我们创建数据服务的方式 . 它很干净,很容易达到这个目的 . MVC带来了更多的工具 .

    MVC可以生成WebAPI可以输出的任何输出 . 在MVC中可以轻松实现从模板生成输出 . 我无法在WebAPI中找到这样做的理由 . PHP开发人员和旧的ASP程序员可能从过去就知道这种态度,在那里你可以构建与C#代码相关的HTML文件 .

    WebAPI-数据MVC - 数据,UI / HTML,XHTML,文件,模板等 .

  • 20

    Asp.Net MVC用于创建返回视图和数据的Web应用程序,但Asp.Net Web API用于创建完整的HTTP服务,只需返回数据而不是视图 .

    Web API有助于在.NET Framework上构建REST-ful服务,它还支持内容协商(它是关于决定客户可以接受的最佳响应格式数据 . 它可能是JSON,XML,自托管,而不是在MVC中 .

    Web API还负责以特定格式返回数据,如JSON,XML或基于请求中的Accept标头的任何其他格式,您不必担心这一点 . MVC仅使用JsonResult以JSON格式返回数据 .

相关问题