it-swarm.com.de

ASP.NET WebApi vs MVC?

Mit ASP.NET MVC-Controllern können Sie Ihre Daten in verschiedenen Formaten verfügbar machen. AspNetWebAPI ist explizit für das Erstellen von APIs konzipiert, aber ich kann das mit MVC-Controllern problemlos tun. Mir ist nicht klar, in welchen Fällen es besser wäre als herkömmliche MVC-Controller. Ich bin an Szenarien interessiert, in denen die Vorteile von WebApi offensichtlich sind und es sich lohnt, meine Anwendungen um eine weitere Komplexitätsschicht zu erweitern.

Frage: Was sind die Vorteile und/oder Nachteile der Verwendung von asp.net WebApi in Bezug auf MVC?

126
Hugo Zapata

Mit WebApi können Sie Dienste erstellen, die über HTTP und nicht über einen formalen Dienst wie WCF oder SOAP verfügbar gemacht werden können. Ein weiterer Unterschied besteht in der Art und Weise, wie WebApi das HTTP-Protokoll verwendet und es zu einem erstklassigen Http-Bürger macht.

UPDATE: Die ASP.NET Core, Web-API wurde in den MVC-Projekttyp integriert. Die ApiController-Klasse wird in der Controller-Klasse zusammengefasst. Mehr unter: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6

Ein relevanter Link zu Vergleichen, Diskussionen und Tutorials: 

 enter image description here

40
EL Yusubov

WebAPI spuckt OData aus, sodass Sie alle Vorteile der Verwendung von OData erhalten. Zum Beispiel erhalten Sie mit WebAPI:

  • Abfrageoptionen wie $ filter, $ top, $ orderby etc .
    • Bei herkömmlichen MVC-Controllern müssen Sie diese selbst implementieren.
  • Standardisierung des Formats
    • Es gibt OData-Clients, die das zugrunde liegende Format Ihrer RESTful-API verstehen.
20
Paolo del Mundo

Ähnlichkeiten

1) beide erben von ihhtphandler für asyncrequest, also im Grunde sind apicontroller oder mvc controller beide der wrapper um die web.http 

Unterschiede: 1) Der mvc-Controller ist sehr umfangreich, wenn Sie seine Definition durchgehen könnten, können Sie sehen, wie viele Schnittstellen und der verwendete Basiscode verwendet wird. Web-API ist leichter Controller und unterscheidet die Anforderung durch die übergebenen Parameter (ja, wir können das ändern es auch!) 

2) Der MVC-Controller hat zu viele Funktionen, z. B. Ansichten, Aktionsergebnis, Javascript-Ergebnis usw., aber in Web-API gibt es entweder JSON oder XML 

3) API ist für die Implementierung von Restful-Services (get, post, put, delete, options) gedacht, die unabhängig davon gehostet werden können, wo die MVC-Controller nicht abhängig von den Ansichten sind.

11
LostCoder

Asp.Net Web API VS Asp.Net MVC enter image description here 1. Asp.Net MVC wird zum Erstellen von Webanwendungen verwendet, die beide .__ zurückgeben. Ansichten und Daten, aber Asp.Net Web API wird zum Erstellen von vollständigem HTTP .__ verwendet. Dienste auf einfache und einfache Weise, die nur Daten ohne Ansicht zurückgibt.

2. Die Web-API hilft beim Erstellen von REST-Diensten über .NET Framework und Es unterstützt auch die Aushandlung von Inhalten (es geht darum, die besten Daten im Antwortformat zu ermitteln, die vom Client akzeptiert werden könnten. JS, XML, ATOM oder andere formatierte Daten), Selbsthosting, das sind nicht in MVC.

3. Das Web-API sorgt auch dafür, dass Daten in bestimmten Formaten wie .__ zurückgegeben werden. JSON, XML oder eine beliebige andere, die auf dem Accept-Header in der Anforderung basiert und du machst dir darüber keine Sorgen. MVC gibt nur Daten im JSON-Format zurück mit JsonResult.

4. In der Web-API werden die Anforderungen den Aktionen zugeordnet, die auf HTTP-Verben basieren In MVC wird es jedoch dem Aktionsnamen zugeordnet.

5. Asp.Net Web API ist ein neues Framework und Teil des Kerns von ASP.NET Rahmen. Die Modellbindung, Filter, Routing und andere MVC Funktionen, die in der Web-API vorhanden sind, unterscheiden sich von MVC und sind in der .__ vorhanden. neue System.Web.Http-Assembly. In MVC existieren diese Funktionen mit in System.Web.Mvc. Daher kann die Web-API auch mit Asp.Net und als .__ verwendet werden. Standalone-Service-Schicht.

6. Sie können die Web-API und den MVC-Controller in einem einzigen Projekt mischen, um sie zu bearbeiten Erweiterte AJAX - Anforderungen, die Daten in JSON, XML oder einem beliebigen .__ zurückgeben können. Andere formatieren und bauen einen vollständigen HTTP-Dienst. Normalerweise Dies wird als Web-API-Self-Hosting bezeichnet.

7. Wenn Sie MVC und Web-API-Controller gemischt haben und Sie möchten Implementieren Sie die Autorisierung, dann müssen Sie zwei Filter erstellen für MVC und eine andere für Web-API, da sich beide unterscheiden.

8. Darüber hinaus ist die Web-API eine leichte Architektur und ausgenommen das Web Anwendung kann es auch mit Smartphone-Apps verwendet werden.

Originalquelle ist hier

10
curiousBoy

An einem bestimmten Punkt möchten Sie vielleicht ASP.NET MVC alle zusammen vergessen. Wenn Sie ein .NET-Entwickler sind, aber eine Single-Page-Anwendung erstellen möchten (z. B. mit Angular), möchten Sie die Vorteile eines RESTful-Diensts (WebAPI) ohne all die unnötige Aufblähung, die ASP.NET MVC bietet, bieten.

10
What-About-Bob

Dieses Bild scheint die Unterschiede und Gemeinsamkeiten der Materie aufzuzeigen. Ich hoffe, das hilft für mich interessant.

 enter image description here

10
BehrouzMoslem

ASP.NET MVC und ASP.NET Web-API, die beide zu unterschiedlichen Zwecken verwenden

ASP.NET

ASP.NET bietet drei Frameworks zum Erstellen von Webanwendungen: Web Forms, ASP.NET MVC und ASP.NET-Webseiten. Alle drei Frameworks sind stabil und ausgereift, und Sie können mit jedem Framework großartige Webanwendungen erstellen. Egal für welches Framework Sie sich entscheiden, Sie erhalten überall die Vorteile und Funktionen von ASP.NET.

Jedes Framework zielt auf einen anderen Entwicklungsstil. Welche Sie auswählen, hängt von einer Kombination Ihrer Programmierelemente (Wissen, Fähigkeiten und Entwicklungserfahrung), der Art der von Ihnen erstellten Anwendung und dem Entwicklungsansatz ab, mit dem Sie sich auskennen. Alle drei Frameworks werden in zukünftigen Versionen von ASP.NET unterstützt, aktualisiert und verbessert.

MVC

ASP.NET MVC bietet Ihnen eine leistungsstarke, musterbasierte Methode zum Erstellen dynamischer Websites, die eine saubere Trennung der Anliegen ermöglicht und Ihnen die vollständige Kontrolle über Markups für eine angenehme, agile Entwicklung gibt. ASP.NET MVC enthält viele Funktionen, die eine schnelle, TDD-freundliche Entwicklung zum Erstellen anspruchsvoller Anwendungen ermöglichen, die die neuesten Webstandards verwenden.

Web API

ASP.NET-Web-API ist ein Framework, mit dem HTTP-Services einfach erstellt werden können, um eine breite Palette von Clients zu erreichen, einschließlich Browser und mobiler Geräte. ASP.NET Web API ist eine ideale Plattform zum Erstellen von RESTful-Anwendungen unter .NET Framework.

weitere Informationen finden Sie hier http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Differenz- zwischen -ASP.NET-MVC-und-ASP.NET-Web-API.html

4
Coder

ASP.NET MVC konzentriert sich auf die einfache Ausgabe von HTML. Die ASP.NET-Web-API konzentriert sich auf die einfache Ausgabe von Rohdaten.

In der WebForms-Welt wäre ASP.NET MVC äquivalent zu ASPX-Seiten, und ASP.NET-Web-API wäre .asmx

2

Normalerweise wird WebAPI für Datendienste verwendet, bei denen MVC weitere Arten von Ausgaben generieren kann.

Die WebAPI vereinfacht sicherlich die Erstellung von Datendiensten. Es ist sauber und einfach für diesen Zweck. MVC wird mit einigen weiteren Tools bereitgestellt.

MVC kann jede Ausgabe generieren, die WebAPI ausgeben kann . Das Generieren von Ausgaben aus Vorlagen kann in MVC einfach erreicht werden. Ich finde keinen Grund dafür in WebAPI. PHP Entwickler und alte ASP - Programmierer kennen diese Einstellung möglicherweise aus der Vergangenheit, in der Sie HTML-Dateien erstellen können, die mit C # -Code im Inneren zusammenhängen.

WebAPI-DATA MVC - DATA, UI/HTML, XHTML, Dateien, Vorlagen usw.

1
Eitan Revach

Asp.Net MVC wird zum Erstellen von Webanwendungen verwendet, die sowohl Ansichten als auch Daten zurückgeben. Mit der Asp.Net Web API werden jedoch umfassende HTTP-Services auf einfache und einfache Weise erstellt, bei denen nur Daten ohne Ansicht zurückgegeben werden.

Die Web-API hilft beim Aufbau von REST-vollen Diensten über .NET Framework und unterstützt auch die Aushandlung von Inhalten (es geht darum, die besten Antwortformatdaten zu bestimmen, die vom Client akzeptiert werden können. JSON, XML und Self-Hosting sind dies nicht in MVC.

Das Web-API sorgt auch dafür, dass Daten in einem bestimmten Format wie JSON, XML oder einem anderen auf der Basis des Accept-Headers in der Anforderung zurückgegebenen Formular zurückgegeben werden. MVC gibt nur Daten im JSON-Format mithilfe von JsonResult zurück.

0
Nikhil Fegade