ASP.NET WebApi vs MVC? [fermé]

avec ASP.NET contrôleurs MVC vous pouvez exposer vos données dans différents formats. AspNetWebAPI est conçu explicitement pour la création D'API, mais je peux facilement le faire avec les contrôleurs MVC, n'est pas clair pour moi dans quels cas ce serait mieux que les contrôleurs MVC traditionnels. Je m'intéresse aux scénarios où les avantages du WebApi sont évidents et il serait utile d'ajouter une autre couche de complexité à mes applications.

Question: quelles sont les avantages et / ou inconvénients de l'utilisation asp.net WebApi en ce qui concerne MVC ?

119
demandé sur EL Yusubov 2012-07-05 23:02:30

10 réponses

WebApi permet de créer des services qui peuvent être exposés sur HTTP plutôt que par un service formel comme WCF ou SOAP. Une autre différence est dans la façon dont WebApi utilise le protocole Http et le rend vraiment de première classe le citoyen Http.

mise à jour: le ASP.NET Core, L'API Web a été intégrée dans le type de projet MVC. La catégorie ApiController est regroupée dans la catégorie Controller . Pour en savoir plus: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

Un lien pertinent de comparaison, des discussions et des tutoriels:

enter image description here

38
répondu EL Yusubov 2017-06-22 03:58:07

WebAPI crache OData, donc vous obtenez tous les avantages de L'utilisation OData. Par exemple, avec WebAPI vous obtenez:

  • Options de requête telles que $ filter, $top, $ orderby, etc.
    • avec les contrôleurs traditionnels MVC vous devez les mettre en œuvre vous-même.
  • standardisation du format
    • il y a des clients OData qui comprendront le format sous-jacent de votre API RESTful.
20
répondu Paolo del Mundo 2012-07-05 19:20:32

similitudes

1) les deux héritent de ihhtphandler pour l'asyncrequest donc fondamentalement apicontroller ou MVC controller sont tous les deux l'enveloppeur autour du web.http

différences: 1) MVC controller est très lourd si vous pouvez passer en revue sa définition, vous pouvez voir combien d'interfaces et le code de base il a utilisé, l'api web est un controller plus léger et distinguer la requête par ses paramètres passés ( Oui nous pouvons le changer aussi!)

2) le contrôleur MVC a trop de fonctionnalités comme les vues de retour, le résultat d'action, le résultat javascript, etc mais dans l'api web a soit JSON ou XML

3) L'API est pour mettre en œuvre des services Restful(get, post,put, delete, options) qui peuvent indépendamment héberger n'importe où sans le dépendant views, MVC controller ne supporte pas cela car il étroitement intégré avec les views.

12
répondu LostCoder 2016-01-06 11:07:30

à un moment donné, vous pourriez vouloir oublier ASP.NET MVC tous ensemble. Si vous êtes un développeur. net mais que vous voulez construire une application D'une seule Page (en utilisant Angular par exemple) ,vous voudrez les avantages d'un service RESTful (WebAPI) sans tout le bloat inutile qui vient avec ASP.NET MVC.

9
répondu What-About-Bob 2015-10-16 12:39:30

Asp.Net API Web VS Asp.Net MVC enter image description here 1 . Asp.Net MVC est utilisé pour créer des applications web qui renvoie à la fois vues et données Asp.Net L'API Web est utilisée pour créer un HTTP complet services avec une manière simple et facile qui renvoie seulement des données non Vue.

2 . L'API Web aide à construire des services de repos sur le cadre. net et il soutenez aussi la négociation de contenu(il s'agit de décider le meilleur format de la réponse données qui pourraient être acceptables par le client. il peut être JSON, XML, ATOM ou d'autres données formatées), auto-hébergement qui ne sont pas dans MVC.

3 . L'API Web prend également soin de renvoyer les données dans un format particulier comme JSON, XML ou tout autre basé sur L'en-tête Accept dans la requête et vous ne vous inquiétez pas à ce sujet. MVC renvoie uniquement les données dans JSON format utiliser JsonResult.

4 . Dans L'API Web, la requête est associée aux actions basées sur les verbes HTTP. mais dans MVC il est associé au nom des actions.

5 . Asp.Net L'API Web est un nouveau cadre et fait partie du cœur ASP.NET Framework. La liaison de modèle, filtres, routage et autres MVC les fonctionnalités existent dans L'API Web sont différentes de MVC et existe dans le nouveau Système.Web.Http assemblée. En MVC, ces caractéristiques existent dans les Système.Web.Mvc. Par conséquent, L'API Web peut également être utilisée avec Asp.Net et en tant que couche de service autonome.

6 . Vous pouvez mélanger L'API Web et le contrôleur MVC dans un seul projet pour gérer les requêtes AJAX avancées qui peuvent renvoyer des données en JSON, XML ou d'autres formatent et construisent un service HTTP complet. Généralement, cela s'appellera l'auto-hébergement de L'API Web.

7 . Lorsque vous avez mélangé MVC et le contrôleur D'API Web et que vous voulez implémentez l'autorisation puis vous devez créer deux filtres un pour MVC et une autre pour L'API Web puisque les boths sont différents.

8 . En outre, L'API Web est une architecture légère et à l'exception du web application it peut également être utilisé avec les applications smart phone.

la source originale est ici

9
répondu curiousBoy 2016-12-16 23:49:05

Cette image semble montrer les différences et les similitudes dans la façon dont la question. J'espère que cette aide est intéressante pour moi.

enter image description here

8
répondu BehrouzMoslem 2017-05-10 13:56:20

ASP.NET MVC et ASP.NET api Web tous les deux utilisent à des fins différentes

ASP.NET

ASP.NET offre trois cadres pour la création d'applications web: ASP.NET MVC, et ASP.NET Pages web. Les trois cadres sont stables et matures, et vous pouvez créer de superbes applications web avec l'un d'eux. Peu importe le cadre que vous choisissez, vous obtiendrez tous les avantages et les caractéristiques de ASP.NET partout.

chaque cadre vise un style de développement différent. Celui que vous choisissez dépend d'une combinaison de vos atouts de programmation (connaissances, compétences et expérience de développement), le type d'application que vous créez et l'approche de développement avec laquelle vous êtes à l'aise. Les trois cadres seront appuyés, mis à jour et améliorés dans les prochaines versions de ASP.NET.

MVC

ASP.NET MVC vous donne un méthode puissante, basée sur les modèles pour construire des sites Web dynamiques qui permet une séparation nette des préoccupations et qui vous donne le plein contrôle sur le markup pour un développement agréable et agile. ASP.NET MVC comprend de nombreuses fonctionnalités qui permettent un développement rapide, TDD-friendly pour créer des applications sophistiquées qui utilisent les dernières normes web.

API Web

ASP.NET L'API Web est un framework qui rend facile la construction de services HTTP atteindre un large éventail de clients, y compris les navigateurs et les appareils mobiles. ASP.NET L'API Web est une plate-forme idéale pour construire des applications RESTful sur le Framework .NET.

vous pouvez lire plus de formulaire ici http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html

4
répondu Nikhil VC 2016-08-25 11:00:45

habituellement, WebAPI utilisé pour les services de données où MVC peut générer plus de types de sorties.

WebAPI simplifie certainement la façon dont nous pouvons créer des services de données. C'est propre et facile dans ce but. MVC vient avec d'autres outils.

MVC peut générer n'importe quelle sortie WebAPI peut produire. Produire des résultats à partir de modèles peut être facilement réalisé en MVC. Je ne trouve pas de raison de le faire dans WebAPI. Les développeurs PHP et l'ancien programmeur ASP pourraient savoir cette attitude du passé, où vous pouvez construire des fichiers HTML impliqués avec du C# code à l'intérieur.

WebAPI-données MVC-DATA, UI / HTML, XHTML, Files, Templates etc..

1
répondu Eitan Revach 2016-05-16 09:19:58

ASP.NET MVC est axé sur la production de HTML facile. ASP.NET L'API Web vise à faciliter la production de données brutes.

dans le monde des WebForms, ASP.NET MVC serait équivalent à .aspx pages et ASP.NET L'API Web le serait .asmx

1
répondu Murugesan Nataraj 2017-04-27 10:17:29

Asp.Net MVC est utilisé pour créer des applications web qui renvoie à la fois des vues et des données mais Asp.Net L'API Web est utilisée pour créer des services HTTP complets d'une manière simple et facile qui ne renvoie que des données non vues.

L'API Web aide à construire des services de repos sur le cadre. net et il soutient également la négociation de contenu (il s'agit de décider du meilleur format de réponse données qui pourraient être acceptables par le client. il pourrait s'agir de JSON,XML, auto-hébergement qui ne sont pas dans MVC.

L'API Web

s'occupe également de renvoyer des données dans un format particulier comme JSON,XML ou tout autre basé sur L'en-tête Accept dans la requête et vous ne vous en souciez pas. MVC renvoie uniquement les données au format JSON en utilisant JsonResult.

0
répondu Nikhil Fegade 2017-07-26 14:22:08