MVC vs. Web API: Hvilken ASP.NET-teknologi bør du bruke?


I denne artikkelen vil vi snakke om forskjellene mellom ASP.NET Model View Controller (MVC) og ASP.NET Web API, og som du bør bruke for forskjellige krav. Før vi går dypere, la oss få en kort introduksjon av hva MVC faktisk er.

MVC eller Model-View-Controller er det som deler en applikasjon faktisk.

  • Modell – Dette er objekter som henter modelltilstanden i databasen, dvs. den henter dataene fra databasen, gjør en bestemt operasjon og lagrer dataene i databasen.
  • Utsikt – Her kan utviklerne ‘se’ brukergrensesnittet eller brukergrensesnittet til applikasjonene opprettet av datamodellen.
  • Kontrollere – Kontrollere eller komponenter administrerer brukerinteraksjonen, administrerer spørringsstrengverdiene og overfører verdiene til modeller.

Du finner MVC i “System.Web.MVC” -samlingen. MVC-rammeverket bruker ASP.NET-funksjonene som medlemskapsbasert autentisering, mastersider osv. Du kan prøve de forskjellige alternativene i ASP.NET for å lage webapplikasjoner med ASP.NET webskjemaer.

Gjennom ASP.NET Web API kan du vise former for data som XML og JSON. Dette rammeverket er åpen kildekode, bruker HTTP-tjeneste, og å svare på klientforespørsler er et stykke kake. Selve forespørslene (for eksempel Get, Post, Delete, Put etc.) administreres ved hjelp av HTTP-protokoller. ASP.NET Web API kan være vert på IIS eller i applikasjonen.

Nybegynnere blir vanligvis forvirret over valget av ASPNET-teknologi som skal brukes. Her er et par tilfeller der du kan bruke hver av disse teknologiene.

1) Prosessen med å eksponere funksjonalitet

ASP.NET MVC-kontrollere ville være et godt valg (1) hvis du ønsker å avsløre en funksjonalitet i et enkelt program eller (2) hvis det skal brukes som en generell funksjonalitet i et hvilket som helst program. Du kan spare tid på denne måten fordi du ikke trenger å opprette et nytt API for å eksponere funksjonalitet hver gang. Normalt er en kontroller koblet til en bestemt webapplikasjon, og den utsetter funksjoner som raskt kan forbrukes gjennom Ajax.

Hvis du ønsker å opprette en fullverdig REST-tjeneste, som ikke er tilknyttet en enkelt applikasjon, kan du bruke Web API, fordi den gir en elegant og ryddig løsning.

Hvis funksjonaliteten er UI eller View-sentrisk, som å laste HTML-fragmenter eller lage AJAX-drevne sider, er ASP.NET MVC et bedre valg. Web API ville være et godt valg når du oppretter en frittstående RESTful-tjeneste.

Hvis funksjonaliteten er datasentrisk, velger du Web API-servere. Eksempel, CRUD-operasjoner. I normale MVC-applikasjoner er bare kontrollerne tilstrekkelige til å returnere både data og visninger.

2) Dataformatene du skal håndtere

Kontrollere returnerer enten ActionResult eller JsonResult, noe som betyr at kontrollerutgangen kan være enten HTML-markering eller JSON-formatert data. Hvis et av disse dataformatene er nok, kan du bruke handlingsmetoder for å avsløre funksjonalitet. Imidlertid, når flere dataformater er involvert, vil Web API være det bedre valget. Dette er fordi denne teknologien automatisk kan bestemme webformatet ved å se på Godta overskriften. I MVC-kontrolleren må du spesifisere dataformatet for å skrive handlingsmetoder.

Web API kan brukes til å generere HTTP-tjenester som svarer data alene, men MVC vil være egnet for å utvikle webapplikasjoner som svarer som både, visninger og data.

Web API ser på Godta overskrift på forespørselen som returnerer dataene i forskjellige formater, slik at den kan returnere i forskjellige formater, som XML, JSON etc. Men for MVC er dataene som returneres bare i JSON-format ved bruk av JSONResult.

3) Når du kombinerer MVC og Web API

Utviklere kan nyte et par fordeler når de kombinerer både MVC-kontroller og API.

(1) Du kan administrere AJAX-forespørslene og returnere svaret i flere formater når du kombinerer begge.

(2) Du kan opprette to forskjellige filtre for autorisasjon for et program. Forespørslene blir kartlagt til handlingene på HTTP-verb, men det er tilordnet handlingsnavnet i MVC. Du kan bruke API som et frittstående tjenestelag, og det kan også brukes med ASP.NET.

Modellinnbinding, ruting, filtre er forskjellige i Web API, og finnes i System.web.http-samlingen. Disse funksjonene finnes i System.web.MVC i MVC-rammeverket.

4) Enten du trenger egenhosting


Som du vet, kontroller, trenger en del av ASP.NET MVC-applikasjonene IIS som vertsmiljø. API er imidlertid et servicerammeverk, og du kan selv være vert for det. Dette gjør den lett, fordi du kan unngå omkostningene til IIS. Dette er et godt valg når appen din må slippes på en rekke plattformer – stasjonære, webapplikasjoner, konsollapps osv.

Avsluttende tanker

Du kan velge Web API hvis du genererer en fullverdig HTTP-tjeneste som Flickr, Amazon, Delicious, etc. Det er også et godt utvalg hvis du trenger innholdsforhandlinger. Innholdsforhandling er en prosess for å returnere innhold i et format nevnt av Accept Header. Imidlertid trenger du kanskje ikke det for alle prosjektene dine, fordi sending av data som JSON og XML er stort sett det som kreves. Med Web API har du muligheten til å sende innholdet i en rekke formater, inkludert bilder og filer.

WebAPI er kanskje et bedre rammeverk når du vil vise data og tjenester til forskjellige enheter. Og det er åpen kildekode, og dermed den perfekte plattformen for å skape RESTful-tjenester over DotNet-rammeverket. Og du trenger ikke å utføre noen ekstra konfigurasjonsinnstillinger for hver enhet separat. I disse dager foretrekker folk å bruke mer av mobilapper sammenlignet med stasjonære applikasjoner, og derfor blir det veldig viktig å utvikle begge apptypene.

MVC gir derimot ren separasjon av bekymringer, gir full kontroll over gjengitt HTML, gir enkel integrering med Javascript-rammer og muliggjør testdrevet utvikling.

Interessante artikler:
Hvorfor er Web API bedre enn MVC
Kort poeng på MVC vs API

Bildekilde: Flickr.com/ Dennis / Yamashita


Forfatteren: Reema Oamkumar er engasjert som tankeleder på www.Software-Developer-India.com som er en del av YUHIRO Group. YUHIRO er en tysk-indisk bedrift som tilbyr programmerere til IT-selskaper, byråer og IT-avdelinger.

Legg igjen en kommentar

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.