TOC

This article is currently in the process of being translated into Swedish (~99% done).

Introduction:

ASP.NET MVC vs. Web Forms

Den första versionen av ASP.NET släpptes i 2002, med Web Forms vy motorn som det enda valet tillgängligt. På senare tid, för att stödja saker så som MVC, har Microsoft expanderat ASP.NET för att stödja multi-vy motorer. Men i många år om du använde ASP.NET så använde du automatiskt Web Forms.

Microsoft hade ett högt strävande mål när dem skapade Web Forms: Dem ville abstrahera så mycket av dem små detaljerna med HTTP protokollet och dess statslösa natur och göra webbutvecklingen mer i riktningen av att utveckla en Windows applikation, vilket var en bekväm upplevelse då.

Dem gjorde detta via att introducera ViewState, vilket skulle säkerställa att den nuvarande tillståndet av form var preserverade under post backs till servern och dem gjorde det via server kontroller. Dessa enkapsulerar renderingen av HTML och CSS till en godtycklig kontroll vilket du skräddarsyr via logiska egenskaper istället för att tvingas blanda in HTML och CSS direkt.

Dem introducerade även den event drivande modellen, redan känd för Windows utvecklare vid tiden, som tillät utvecklaren att svara på faktiska event, såsom en knapptryck eller en checkbox blivit ändrad. Detta istället för att kolla manuellt för varje gång sidan var laddad. Detta menades att markup (HTML) och kod var separat, vilket i teorin var väldigt positivt.

Där Web Forms misslyckades

Web Forms var som ett friskt andetag för många utvecklare och det har troligtvis hjälp många nya utvecklare ,eller utvecklare som är vana vid Windows applikation utveckling, att lära sig bygga applikationer till webben. Tyvärr lyckades inte Microsoft med att skapa den perfekta och felfria abstraheringen på grund av ett antal problem som visade sig. Vissa av dessa blev fixade i senare releases, medans andra var mer grundläggande till hur WebForms fungerade och därför svårare att ändra. Web Forms teknologin har blivit kritiserad främst för dessa saker:

ViewState gjorde sidor tyngre

Genom att hålla reda på varje server kontroll på sidan i en ViewState sträng, vilket var fram- och tillbaka skickad mellan servern på var enda begäran, gjorde att Web Forms sidorna blev väldigt tunga. Om du byggde ett medium komplicerad sida resulterade detta i att ViewState strängen förstorades med hundratals kilobytes. Detta ledde till längre laddtider, speciellt på mobila uppkopplingar, med den ökade trafiken från smartphones överallt i världen blev detta ett väldigt stort problem.

Server kontroller begränsade din kontroll över HTML output

Server kontroller gjorde det enkelt för dig att enkelt skapa något användbart, men du fick aldrig full kontroll över HTML:en den renderade. Detta var ett problem för den som behöver finjustera arbetet samt att man upplevde kompabilitetsproblem med webbläsare.

Web Forms är dåligt för automatiserad testning

Web Forms modellen var introducerad före automatiserad/unit testning var en stor sak och när det väl slog till, så var det enkelt att se att Web Forms var svårt, om inte omöjligt att testa på.

Där ASP.NET MVC är en förbättring över Web Forms

ASP.NET MVC tar bort mycket av abstraheringen implementerad av Web Forms. Till exempel, man brukar ofta generera all HTML själv, istället för att förlita sig på server kontroller. Det finns då inga ViewState upprätthållna för dig, detta eliminerar effektivt det problemet (men också renderingen av flera server kontroller, såsom GridView och Repeater vilket var värdelösa på den tiden).

MVC modellen är perfekt för automatiserad/unit testning för dess lösa koppling mellan dem olika lagren.

Vilken teknologi skulle du välja?

Det är viktigt att ange medans Web Forms kan ses som en utdaterad teknologi när man läser detta, så är det faktiskt inte det alls - Web Forms utvecklas fortfarande aktivt av Microsoft och är ett möjligt val när man väl förs in i världen av webbutveckling med ASP.NET. Web Forms är speciellt anpassad för situationer där man behöver få nått fungerande snabbt - med den stora mängden serverkontroller gör det enkelt att skapa något användbart när det är bråttom, men på bekostnad av den flexibilitet det ger dig att skriva all markup själv.

Om du redan vet hur man använder Web Forms så ska du definitivt ge ASP.NET MVC ett försök, speciellt om något av ovanstående problem har irriterat dig. Om du är ny till webbutveckling och du måste välja mellan två teknologier, så skulle jag fortfarande rekommendera att ge ASP.NET ett försök. MVC modellen kan ses som en bit restriktiv för vissa och att följa ett mönster är självklart svårare i början än att inte följa något alls, men så fort du vänjer dig vid det så är det ett ganska bekvämt sätt att arbete med, samt med den mängden uppmärksamhet som MVC modellen får i allmänhet så kommer den inte försvinna inom snar framtid.

Sammanfattning

Så, medans ASP.NET Web Forms kanske är enklare att starta med så ska du ge ASP.NET MVC ett försök först, speciellt om du är ny till världen av webbutveckling. Oroa dig inte, denna handledning kommer att hjälpa dig igång och guida dig genom processen av att utveckla din första ASP.NET MVC application


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!