MVC vs. Web-API: Welche ASP.NET-Technologie sollten Sie verwenden?


In diesem Artikel werden wir über die Unterschiede zwischen ASP.NET Model View Controller (MVC) und der ASP.NET-Web-API sprechen und die Sie für unterschiedliche Anforderungen verwenden sollten. Bevor wir tiefer gehen, lassen Sie uns eine kurze Einführung in das, was MVC eigentlich ist, bekommen.

MVC oder Model-View-Controller ist das, was eine Anwendung eigentlich teilt.

  • Modell – Dies sind Objekte, die den Modellzustand in die Datenbank holen, dh sie holt die Daten aus der Datenbank, führt eine bestimmte Operation aus und speichert die Daten in der Datenbank.
  • Aussicht – Hier können die Entwickler die Benutzeroberfläche oder Benutzeroberfläche der Anwendungen, die durch das Datenmodell erstellt wurden, „anzeigen“.
  • Controller – Controller oder Komponenten verwalten die Benutzerinteraktion, verwalten die Werte der Abfragezeichenfolgen und übertragen die Werte in Modelle.

Sie finden MVC in der Assembly „System.Web.MVC“. Das MVC-Framework verwendet die ASP.NET-Funktionen wie mitgliedschaftsbasierte Authentifizierung, Masterseiten usw. Sie können die verschiedenen Optionen in ASP.NET ausprobieren, um Webanwendungen mit ASP.NET-Webformularen zu erstellen.

Über die ASP.NET-Web-API können Sie Datenformen wie XML und JSON anzeigen. Dieses Framework ist Open Source, verwendet den HTTP-Dienst und die Reaktion auf Client-Anfragen ist ein Kinderspiel. Die Anfragen selbst (zB Get, Post, Delete, Put etc.) werden über HTTP-Protokolle verwaltet. Die ASP.NET-Web-API kann auf dem IIS oder in der Anwendung gehostet werden.

Anfänger sind in der Regel bei der Wahl der zu verwendenden ASPNET-Technologie verwirrt. Hier sind einige Beispiele, in denen Sie jede dieser Technologien verwenden können.

1) Der Prozess des Freilegens der Funktionalität

ASP.NET MVC-Controller sind eine gute Wahl, (1) wenn Sie eine Funktionalität in einer einzelnen Anwendung verfügbar machen möchten oder (2) wenn sie als generische Funktionalität in einer beliebigen Anwendung verwendet werden soll. Auf diese Weise können Sie Zeit sparen, da Sie nicht jedes Mal eine neue API erstellen müssen, um die Funktionalität bereitzustellen. Normalerweise ist ein Controller mit einer bestimmten Webanwendung verbunden und stellt Funktionen bereit, die über Ajax schnell genutzt werden können.

Wenn Sie einen vollwertigen REST-Service erstellen möchten, der nicht an eine einzelne Anwendung angehängt ist, können Sie die Web-API verwenden, da sie eine elegante und saubere Lösung bietet.

Wenn die Funktionalität UI- oder View-zentriert ist, wie das Laden von HTML-Fragmenten oder das Erstellen von AJAX-gesteuerten Seiten, dann ist ASP.NET MVC die bessere Wahl. Eine Web-API wäre eine gute Wahl, wenn Sie einen eigenständigen RESTful-Dienst erstellen.

Wenn die Funktionalität datenzentriert ist, wählen Sie Web-API-Server. Beispiel CRUD-Operationen. In normalen MVC-Anwendungen reichen nur die Controller aus, um sowohl Daten als auch Ansichten zurückzugeben.

2) Die zu behandelnden Datenformate

Controller geben entweder ActionResult oder JsonResult zurück, was bedeutet, dass die Controller-Ausgabe entweder HTML-Markup oder JSON-formatierte Daten sein kann. Wenn eines dieser Datenformate ausreicht, können Sie Aktionsmethoden verwenden, um Funktionen bereitzustellen. Wenn jedoch mehrere Datenformate beteiligt sind, ist die Web-API die bessere Wahl. Dies liegt daran, dass diese Technologie automatisch über das Webformat entscheiden kann, indem sie den Accept-Header betrachtet. Im MVC-Controller müssen Sie das Datenformat zum Schreiben von Aktionsmethoden speziell angeben.

Die Web-API kann zum Generieren von HTTP-Diensten verwendet werden, die nur Daten antworten, aber MVC wäre für die Entwicklung von Webanwendungen geeignet, die sowohl als Ansichten als auch als Daten antworten.

Die Web-API betrachtet den Accept-Header der Anfrage, der die Daten in verschiedenen Formaten zurückgibt, sodass sie in verschiedenen Formaten wie XML, JSON usw. zurückgegeben werden kann. Bei MVC liegen die zurückgegebenen Daten jedoch nur im JSON-Format unter Verwendung von JSONResult vor.

3) Wenn Sie MVC und Web-API kombinieren

Entwickler können eine Reihe von Vorteilen genießen, wenn sie MVC-Controller und API kombinieren.

(1) Sie können die AJAX-Anfragen verwalten und die Antwort in mehreren Formaten zurückgeben, wenn Sie beides kombinieren.

(2) Sie können zwei verschiedene Filter für die Autorisierung für eine Anwendung erstellen. Die Anforderungen werden den Aktionen auf HTTP-Verben zugeordnet, aber sie werden dem Aktionsnamen in MVC zugeordnet. Sie können die API als eigenständige Serviceschicht verwenden und sie kann auch mit ASP.NET verwendet werden.

Die Modellbindung, das Routing und die Filter sind in der Web-API alle unterschiedlich und sind in der System.web.http-Assembly vorhanden. Diese Funktionen sind im System.web.MVC im MVC-Framework vorhanden.

4) Ob Sie Self-Hosting benötigen


Wie Sie wissen, benötigt der Controller, ein Teil der ASP.NET MVC-Anwendungen, IIS als Hosting-Umgebung. API ist jedoch ein Service-Framework und Sie können es selbst hosten. Dadurch wird es leichtgewichtig, da Sie den Overhead von IIS vermeiden können. Dies ist eine gute Wahl, wenn Ihre App auf einer Reihe von Plattformen veröffentlicht werden muss – Desktop, Webanwendungen, Konsolenanwendungen usw.

Schlussgedanken

Sie können die Web-API auswählen, wenn Sie einen vollwertigen HTTP-Dienst wie Flickr, Amazon, Delicious usw. generieren. Es ist auch eine gute Wahl, wenn Sie Inhaltsverhandlungen benötigen. Inhaltsverhandlung ist ein Prozess der Rückgabe von Inhalten in einem Format, das von Accept Header erwähnt wird. Sie benötigen es jedoch möglicherweise nicht für alle Ihre Projekte, da das Senden von Daten als JSON und XML meist erforderlich ist. Mit der Web-API haben Sie die Möglichkeit, den Inhalt in verschiedenen Formaten zu senden, einschließlich Bildern und Dateien.

WebAPI ist vielleicht ein besseres Framework, wenn Sie Ihre Daten und Dienste auf verschiedenen Geräten präsentieren möchten. Und es ist Open Source und damit die perfekte Plattform zum Erstellen von RESTful-Diensten über das DotNet-Framework. Und Sie müssen keine zusätzlichen Konfigurationseinstellungen für jedes Gerät separat vornehmen. Heutzutage bevorzugen die Leute im Vergleich zu Desktop-Anwendungen mehr mobile Apps, und daher wird es sehr wichtig, beide Arten von Apps zu entwickeln.

MVC hingegen bietet eine saubere Trennung von Bedenken, ermöglicht die vollständige Kontrolle über gerendertes HTML, ermöglicht eine einfache Integration in Javascript-Frameworks und ermöglicht testgetriebene Entwicklung.

Interessante Beiträge:
Warum ist Web-API besser als MVC
Kurze Punkte zu MVC vs. API

Bildquelle: Flickr.com/ Dennis/ Yamashita


Die Autorin: Reema Oamkumar ist als Vordenkerin bei www.Software-Developer-India.com, einem Teil der YUHIRO Group, engagiert. YUHIRO ist ein deutsch-indisches Unternehmen, das Programmierer an IT-Unternehmen, Agenturen und IT-Abteilungen vermittelt.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.