MVC versus web-API: welke ASP.NET-technologie moet u gebruiken?


In dit artikel zullen we het hebben over de verschillen tussen ASP.NET Model View Controller (MVC) en de ASP.NET Web API, en die u voor verschillende vereisten zou moeten gebruiken. Laten we, voordat we dieper gaan, een korte introductie geven van wat MVC eigenlijk is.

MVC of Model-View-Controller is wat een applicatie eigenlijk verdeelt.

  • Model – Dit zijn objecten die de modelstatus in de database ophalen, dwz het haalt de gegevens op uit de database, voert een bepaalde bewerking uit en slaat de gegevens op in de database.
  • Visie – Hier kunnen de ontwikkelaars de gebruikersinterface of gebruikersinterface ‘bekijken’ van de applicaties die door het datamodel zijn gemaakt.
  • Controllers – Controllers of componenten beheren de gebruikersinteractie, beheren de waarden van de queryreeks en zetten de waarden over in modellen.

U vindt MVC in de assembly “System.Web.MVC”. Het MVC-framework maakt gebruik van de ASP.NET-functies zoals op lidmaatschap gebaseerde authenticatie, hoofdpagina’s, enz. U kunt de verschillende mogelijkheden in ASP.NET uitproberen voor het maken van webapplicaties met ASP.NET webformulieren.

Via ASP.NET Web API kunt u gegevensvormen zoals XML en JSON weergeven. Dit framework is open source, maakt gebruik van HTTP-service en het reageren op verzoeken van klanten is een fluitje van een cent. De verzoeken zelf (bijvoorbeeld Get, Post, Delete, Put etc.) worden beheerd met behulp van HTTP-protocollen. ASP.NET Web API kan worden gehost op de IIS of in de applicatie.

Beginners raken meestal in de war over de keuze van de te gebruiken ASPNET-technologie. Hier zijn een paar voorbeelden waarin u elk van deze technologieën kunt gebruiken.

1) Het proces van het blootleggen van functionaliteit

ASP.NET MVC-controllers zouden een goede keuze zijn (1) als u een functionaliteit binnen een enkele toepassing wilt weergeven of (2) als deze als een generieke functionaliteit in een toepassing moet worden gebruikt. U kunt op deze manier tijd besparen omdat u niet elke keer een nieuwe API hoeft te maken om functionaliteit beschikbaar te maken. Normaal gesproken is een controller gekoppeld aan een bepaalde webtoepassing en stelt deze functionaliteiten bloot die snel kunnen worden gebruikt via Ajax.

Als u op zoek bent naar een volwaardige REST-service, niet gekoppeld aan een enkele applicatie, dan kunt u Web API gebruiken, omdat het een elegante en nette oplossing biedt.

Als de functionaliteit gericht is op de gebruikersinterface of weergave, zoals het laden van HTML-fragmenten of het maken van AJAX-gestuurde pagina’s, dan is ASP.NET MVC een betere keuze. Web API zou een goede keuze zijn wanneer u een zelfstandige RESTful-service maakt.

Als de functionaliteit datacentrisch is, kiest u Web API-servers. Voorbeeld CRUD-bewerkingen. In normale MVC-toepassingen zijn alleen de controllers voldoende om zowel gegevens als weergaven te retourneren.

2) De gegevensformaten om mee om te gaan:

Controllers retourneren ActionResult of JsonResult, wat betekent dat de uitvoer van de controller HTML-opmaak of JSON-geformatteerde gegevens kan zijn. Als een van deze gegevensformaten voldoende is, kunt u actiemethoden gebruiken om functionaliteiten bloot te leggen. Als er echter meerdere gegevensindelingen bij betrokken zijn, zou Web API de betere keuze zijn. Dit komt omdat deze technologie automatisch het webformaat kan bepalen door naar de Accept-header te kijken. In de MVC-controller moet u specifiek het gegevensformaat specificeren om actiemethoden te schrijven.

Web API kan worden gebruikt voor het genereren van HTTP-services die alleen op gegevens antwoorden, maar MVC zou geschikt zijn voor het ontwikkelen van webtoepassingen die zowel antwoorden als weergaven en gegevens.

Web API kijkt naar Accept Header van het verzoek die de gegevens in verschillende indelingen retourneert, zodat deze in verschillende indelingen kan terugkeren, zoals XML, JSON enz. Maar voor MVC zijn de gegevens die worden geretourneerd alleen in de JSON-indeling met JSONResult.

3) Wanneer u MVC en Web API combineert

Ontwikkelaars kunnen genieten van een aantal voordelen wanneer ze zowel MVC-controller als API combineren.

(1) U kunt de AJAX-verzoeken beheren en het antwoord in meerdere formaten retourneren wanneer u beide combineert.

(2) U kunt twee verschillende filters maken voor autorisatie voor een toepassing. De verzoeken worden toegewezen aan de acties op HTTP-werkwoorden, maar het is toegewezen aan de naam van de actie in MVC. U kunt API gebruiken als een op zichzelf staande servicelaag en het kan ook worden gebruikt met ASP.NET.

De modelbinding, routering en filters zijn allemaal verschillend in Web API en bestaan in de System.web.http-assembly. Deze functies zijn aanwezig in het System.web.MVC in het MVC-framework.

4) Of je zelf-hosting nodig hebt


Zoals u weet, controller, heeft een deel van de ASP.NET MVC-applicaties IIS nodig als hostingomgeving. API is echter een serviceframework en u kunt het zelf hosten. Dit maakt het lichtgewicht, omdat u de overheadkosten van IIS kunt vermijden. Dit is een uitstekende keuze wanneer uw app op een aantal platforms moet worden uitgebracht – desktop-, webapplicaties, consoleapplicaties enz.

Afsluitende gedachten

U kunt Web API kiezen als u een volledige HTTP-service genereert, zoals Flickr, Amazon, Delicious, enz. Het is ook een goede keuze als u over inhoud moet onderhandelen. Onderhandeling over inhoud is een proces waarbij inhoud wordt geretourneerd in een formaat dat wordt genoemd door Accept Header. Het is echter mogelijk dat u het niet voor al uw projecten nodig hebt, omdat het verzenden van gegevens als JSON en XML meestal vereist is. Met Web API heeft u de mogelijkheid om de inhoud in verschillende formaten te verzenden, inclusief afbeeldingen en bestanden.

WebAPI is misschien een beter raamwerk wanneer u uw gegevens en diensten op verschillende apparaten wilt tonen. En het is open source en daarom het perfecte platform voor het creëren van RESTful-services via het DotNet-framework. En u hoeft niet voor elk apparaat afzonderlijk extra configuratie-instellingen uit te voeren. Tegenwoordig gebruiken mensen liever meer mobiele apps in vergelijking met desktopapplicaties, en daarom wordt het erg belangrijk om beide soorten apps te ontwikkelen.

MVC, aan de andere kant, biedt schone scheiding van zorgen, geeft volledige controle over gerenderde HTML, maakt eenvoudige integratie met Javascript-frameworks mogelijk en maakt testgestuurde ontwikkeling mogelijk.

Interessante artikelen:
Waarom is Web API beter dan MVC
Korte punten over MVC versus API

Afbeeldingsbron: Flickr.com/ Dennis/ Yamashita


De auteur: Reema Oamkumar is betrokken als thought leader bij www.Software-Developer-India.com, een onderdeel van de YUHIRO Group. YUHIRO is een Duits-Indiase onderneming die programmeurs levert aan IT-bedrijven, agentschappen en IT-afdelingen.

Geef een reactie

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.