MVC vs. Web API: Vilken ASP.NET-teknik ska du använda?


I den här artikeln kommer vi att prata om skillnaderna mellan ASP.NET Model View Controller (MVC) och ASP.NET Web API, och som du bör använda för olika krav. Innan vi går djupare, låt oss få en kort introduktion av vad MVC egentligen är.

MVC eller Model-View-Controller är det som faktiskt delar upp en applikation.

  • Modell – Det här är objekt som hämtar modelltillståndet i databasen, dvs det hämtar data från databasen, gör en viss åtgärd och lagrar data i databasen.
  • Se – Här kan utvecklarna ”visa” användargränssnittet eller användargränssnittet för de applikationer som skapats av datamodellen.
  • Kontroller – Styrenheter eller komponenter hanterar användarinteraktionen, hanterar värden för frågesträngar och överför värdena till modeller.

Du hittar MVC i ”System.Web.MVC” -enheten. MVC-ramverket använder ASP.NET-funktionerna som medlemsbaserad autentisering, mastersidor etc. Du kan prova de olika alternativen i ASP.NET för att skapa webbapplikationer med ASP.NET-webbformulär.

Genom ASP.NET Web API kan du visa dataformer som XML och JSON. Detta ramverk är öppen källkod, använder HTTP-tjänst och att svara på klientförfrågningar är en bit av tårtan. Förfrågningarna själva (till exempel Get, Post, Delete, Put etc.) hanteras med hjälp av HTTP-protokoll. ASP.NET Web API kan vara värd för IIS eller i applikationen.

Nybörjare blir vanligtvis förvirrade över valet av ASPNET-teknik som ska användas. Här är några exempel där du kan använda var och en av dessa tekniker.

1) Processen för att exponera funktionalitet

ASP.NET MVC-styrenheter skulle vara ett bra val (1) om du vill exponera en funktionalitet i en enda applikation eller (2) om den ska användas som en generell funktionalitet i alla applikationer. Du kan spara tid på detta sätt eftersom du inte behöver skapa ett nytt API för att exponera funktionalitet varje gång. Normalt är en styrenhet ansluten till en viss webbapplikation och den exponerar funktioner som snabbt kan konsumeras genom Ajax.

Om du vill skapa en fullfjädrad REST-tjänst, som inte är kopplad till en enda applikation, kan du använda Web API, eftersom den ger en elegant och snygg lösning.

Om funktionaliteten är UI eller View-centrerad, som att ladda HTML-fragment eller skapa AJAX-drivna sidor, är ASP.NET MVC ett bättre val. Web API skulle vara ett bra val när du skapar en fristående RESTful-tjänst.

Om funktionaliteten är datacentrerad väljer du webb-API-servrar. Exempel på CRUD-operationer. I normala MVC-applikationer räcker bara styrenheterna för att returnera både data och vyer.

2) Dataformaten att hantera

Styrenheter returnerar antingen ActionResult eller JsonResult, vilket innebär att kontrollerutgången kan vara antingen HTML-markering eller JSON-formaterad data. Om ett av dessa dataformat räcker kan du använda åtgärdsmetoder för att exponera funktioner. Men när flera dataformat är inblandade skulle Web API vara det bättre valet. Detta beror på att den här tekniken automatiskt kan bestämma webbformatet genom att titta på Acceptera rubriken. I MVC-styrenheten måste du specifikt specificera dataformatet för att skriva åtgärdsmetoder.

Web API kan användas för att generera HTTP-tjänster som svarar data enbart, men MVC skulle vara lämpligt för att utveckla webbapplikationer som svarar som både, vyer och data.

Web API tittar på Acceptera rubrik för förfrågan som returnerar data i olika format, så att den kan returnera i olika format, som XML, JSON etc. Men för MVC är data som returneras endast i JSON-format med JSONResult.

3) När du kombinerar MVC och Web API

Utvecklare kan njuta av ett par fördelar när de kombinerar både MVC-kontroller och API.

(1) Du kan hantera AJAX-förfrågningarna och returnera svaret i flera format när du kombinerar båda.

(2) Du kan skapa två olika filter för auktorisering för en applikation. Förfrågningarna mappas till åtgärderna på HTTP-verb, men den mappas till åtgärdsnamnet i MVC. Du kan använda API som ett fristående servicelager och det kan också användas med ASP.NET.

Modellbindning, routing, filter skiljer sig åt i webb-API och finns i System.web.http-enheten. Dessa funktioner finns i System.web.MVC i MVC-ramverk.

4) Oavsett om du behöver självhantering


Som du vet, controller, behöver en del av ASP.NET MVC-applikationerna IIS som värdmiljö. API är dock en servicestruktur och du kan själv vara värd för den. Detta gör den lätt eftersom du kan undvika allmänna kostnader för IIS. Detta är ett utmärkt val när din app måste släppas på ett antal plattformar – skrivbord, webbapplikationer, konsolapplikationer etc.

Avslutande tankar

Du kan välja webb-API om du genererar en fullständig HTTP-tjänst som Flickr, Amazon, Delicious, etc. Det är också ett bra val om du behöver innehållsförhandlingar. Innehållsförhandling är en process för att returnera innehåll i ett format som nämns av Acceptera rubrik. Men du kanske inte behöver det för alla dina projekt, för att skicka data som JSON och XML är mestadels vad som krävs. Med Web API har du möjlighet att skicka innehållet i en mängd olika format, inklusive bilder och filer.

WebAPI är kanske ett bättre ramverk när du vill visa dina data och tjänster för olika enheter. Och det är öppen källkod, och därmed den perfekta plattformen för att skapa RESTful-tjänster via DotNet-ramverk. Och du behöver inte utföra några ytterligare konfigurationsinställningar för varje enhet separat. Dessa dagar föredrar människor att använda mer av mobilappar jämfört med stationära applikationer, och det blir därför mycket viktigt att utveckla båda apparna.

MVC å andra sidan ger ren Separation of Concerns, möjliggör full kontroll över renderad HTML, möjliggör enkel integration med Javascript-ramar och möjliggör testdriven utveckling.

Intressanta artiklar:
Varför är Web API bättre än MVC
Korta poäng på MVC vs API

Bildkälla: Flickr.com/ Dennis / Yamashita


Författaren: Reema Oamkumar är engagerad som en tanke ledare på www.Software-Developer-India.com som är en del av YUHIRO Group. YUHIRO är ett tysk-indiskt företag som tillhandahåller programmerare till IT-företag, byråer och IT-avdelningar.

Lämna ett svar

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.