ASP.NET MVC-handledning för nybörjare: Vad är, Architecture

⚡ Smart sammanfattning

ASP.NET MVC är öppen källkod Microsoft ramverk som delar upp en webbapplikation i modell-, vy- och kontrolllager, vilket ger utvecklare full kontroll över HTML, testbar kod, ren routing och ett lättviktigt alternativ till klassiska webbformulär.

  • 🏛️ Architecture: Modellen innehåller domändata, vyn renderar användargränssnittet med Razor, och kontrollanten förmedlar varje förfrågan mellan de två.
  • ⚡ Varför MVC: Det åtgärdar ViewState- och prestandaoverhead för webbformulär och möjliggör ren routing plus testdriven utveckling.
  • 🔀 routing: Ruttbaserad URLs mappar inkommande förfrågningar till kontrollåtgärder och ersätter filbaserade .aspx URLs med SEO-vänliga sökvägar.
  • 🧪 Testbarhet: Kontrollern och modellen kan enhetstestas isolerat eftersom vyer inte innehåller någon affärslogik.
  • ⚖️ Jämför webbformulär: Webbformulär använder händelsedrivna serverkontroller medan MVC använder förfrågningsdrivna åtgärder med manuell tillståndshantering.
  • 🛠️ Bästa praxis: Behåll affärslogiken i modellen, håll kontrollerna tunna och använd partiella vyer eller layouter för att återanvända markup.

Handledning för ASP.NET MVC

Vad är ASP.NET MVC?

ASP.NET MVC är ett ramverk för webbutveckling med öppen källkod från Microsoft som tillhandahåller en Model View Controller-arkitektur. ASP.NET MVC erbjuder ett alternativ till ASP.NET-webbformulär för att bygga webbapplikationer. Det är en del av .NET-plattformen för att bygga, distribuera och köra webbappar. Du kan utveckla webbappar och webbplatser med hjälp av HTML, CSS, jQuery, JavaManus osv.

Lär dig MVC med denna ASP.NET MVC-handledning som täcker alla grundläggande begrepp för MVC för nybörjare:

Varför ASP.NET MVC?

Även om webbformulär var mycket framgångsrika, Microsoft tanke på utvecklingping ASP.NET MVC. Det största problemet med ASP.NET webForms är prestanda.

I en webbapplikation, det finns fyra huvudaspekter som definierar prestanda:-

  • Svarstidsfrågor
  • Problem med enhetstestning
  • HTML-anpassning
  • Återanvändbarhet av kod-bakom-klassen

ASP.NET MVC utmärker sig på ovanstående parametrar.

Versionshistorik för MVC

ASP.NET MVC1

  • Släppt den 13 mars 2009
  • Den körs på .NET 3.5
  • Visual Studio 2008
  • MVC-mönsterarkitektur med WebForm Engine
  • Huvudfunktioner inkluderar HTML & Enhetstestning, Ajax Helpers, Routing, etc.

ASP.NET MVC2

  • Denna version släpptes den 10 mars 2010
  • Körs på .NET 3.5, 4.0 och med Microsoft Visual Studio 2008
  • Inkludera funktioner som mallbaserade hjälpprogram, UI-hjälpprogram med automatisk stöttning och anpassningsbara mallar
  • Det stöder DataAnnotations-attribut för att tillämpa modellvalidering på klient- och serversidor

ASP.NET MVC3

  • Den släpptes den 13 januari 2011
  • Körs på .NET 4.0 och med Microsoft Visual Studio 2010
  • Användning av NuGet att leverera programvara och låter dig hantera beroenden över hela plattformen
  • Bättre JavaSkriptstöd med jQuery-validering och JSON-bindning
  • Den erbjuder funktioner som Razor-vymotorn och förbättrade attribut för dataannoteringar för modellvalidering på både klient- och serversidan.

ASP.NET MVC4

  • Denna version släpptes i augusti 2012
  • Den körs på .NET 4.0, 4.5 och med Visual Studio 2010 och Visual Studio 2012
  • Förbättringar av standardprojektmallar
  • Erbjuder funktioner som mobil projektmall med jQuery Mobile, uppgiftsstöd för asynkrona kontroller, buntning, minifiering, etc.

ASP.NET MVC5

  • Släpptes den 17 oktober 2013
  • Körs på .NET 4.5, 4.5.1 och med Visual Studio 2012 och Visual Studio 2013
  • Stöder attributrouting i MVC

Funktioner hos MVC

  • Enkel och friktionsfri testbarhet
  • Full kontroll över din HTML, JavaManus och URLs
  • Utnyttja befintliga ASP.NET Funktioner
  • Ett nytt presentationsalternativ för ASP.NET
  • Ett enklare sätt att programmera ASP.NET
  • Tydlig separation av logik: Modell, View, Controller
  • Testdriven utveckling
  • Stöd till parallell utveckling

Saker att komma ihåg när du skapar MVC Application

Här är några användbara saker i denna ASP.NET MVC-handledning som du måste komma ihåg för att skapa MVC-applikation:

  • Du måste komma ihåg att ASP.NET MVC INTE ersätter ASP.NET webbformulärsbaserade applikationer.
  • Tillvägagångssättet för MVC-apputveckling måste bestämmas baserat på applikationens krav och funktioner som tillhandahålls av ASP.NET MVC för att passa de specifika utvecklingsbehoven.
  • Applikationsutvecklingsprocessen med ASP.NET MVC är mer komplex jämfört med webbformulärsbaserade applikationer.
  • Applikationsunderhållbarheten är alltid högre med separation av applikationsuppgifter.

MVC arkitektoniskt mönster

MVC arkitektoniskt mönster

MVC är ett programarkitekturmönster som följer metoden med separation of concerns (separation of concerns). I denna modell är .NET-applikationer uppdelade i tre sammankopplade delar som kallas modell, vy och kontroller.

Målet med MVC-mönstret är att var och en av dessa delar kan utvecklas, testas i relativ isolering och även kombineras för att skapa en mycket robust applikation.

Låt oss titta på dem alla i detalj:

Modeller

Modellobjekt är delar av applikationen som implementerar logiken för applikationens datadomän. Den hämtar och lagrar modelltillstånd i en databas. Till exempel kan produktobjekt hämta information från en databas, operera på det. Skriv sedan tillbaka information till produkttabellen i SQL-servern.

Visningar

Vyer är de komponenter som används för att visa applikationens användargränssnitt (UI), även kallat viewmodel i MVC. Det visar .NET MVC-applikationer som skapas från modelldata.

Det vanliga exemplet skulle vara en redigeringsvy av en artikeltabell. Den visar textrutor, popup-fönster och kryssrutor baserat på det aktuella tillståndet för produkter och objekt.

Regulator

Kontroller hanterar användarinteraktion, arbetar med modellen och väljer en vy för att rendera det visade användargränssnittet. I en .NET MVC-app visar vyn endast information, medan kontrollanten hanterar och svarar på användarinmatning och interaktion med hjälp av åtgärdsfilter i MVC.

Till exempel hanterar styrenheten frågesträngsvärden och skickar dessa värden till modellen.

Webbformulär kontra MVC

Driftparametrar Webbformulär MVC
Modell ASP.NET-webbformulär följer en händelsedriven utvecklingsmodell. ASP.NET MVC använder en MVC-mönsterbaserad utvecklingsmodell.
Används sedan Har funnits sedan 2002 Den släpptes första gången 2009
Stöd för View state ASP.NET Web Form stöder visningstillstånd för tillståndshantering på klientsidan. .NET MVC stöder inte vytillstånd.
URL Typ ASP.NET Web Form har filbaserade URLs. Det betyder att filnamnet finns i URLs och de måste existera fysiskt. ASP.NET MVC har ruttbaserade funktioner URLdet betyder URLs som omdirigeras till kontrollanter och åtgärder.
syntax ASP.NET-webbformulär följer syntaxen för webbformulär. ASP.NET MVC följer den anpassningsbara syntaxen.
Visa typ Webbformulär, vyerna är tätt kopplade till Code bakom (ASPX-CS), dvs. logik. MVC, vyer och logik hålls alltid separat.
Konsekvent utseende och känsla Den har huvudsidor för ett konsekvent utseende. ASP.NET MVC har layouter för ett enhetligt utseende.
Code reus Förmåga Web Form erbjuder användarkontroller för återanvändning av kod. ASP.NET MVC har erbjudit partiella vyer för återanvändbarhet av kod.
Kontroll för HTML Less kontroll över renderad HTML. Full kontroll över HTML
Statlig ledning Automatisk tillståndshantering av kontroller. Manuell tillståndshantering.
TDD-stöd Svag eller anpassad TDD krävs. Uppmuntrar och inkluderar TDD.

Fördelar med ASP.NET MVC

  • Mycket underhållbara applikationer som standard
  • Det låter dig ersätta vilken komponent som helst i applikationen.
  • Bättre stöd för testdriven utveckling
  • Komplexa applikationer är lätta att hantera på grund av uppdelningar av modell, vy och styrenheter.
  • Erbjuder robust dirigeringsmekanism med frontkontrollmönster
  • Erbjuder bättre kontroll över applikationsbeteende med eliminering av visningstillstånd och serverbaserade formulär
  • .NET MVC-applikationer stöds av stora team av utvecklare och webbdesigners
  • Det ger mer kontroll över applikationens beteende. Den använder också en optimerad bandbredd för förfrågningar till servern

Nackdelar med ASP.NET MVC

  • Du kan inte se förhandsgranskningen av designsidan på samma sätt som på .aspx-sidan.
  • Du måste köra programmet varje gång för att se dess faktiska design.
  • Att förstå flödet i applikationen kan vara utmanande
  • Det är ganska komplicerat att implementera, så det är inte ett idealiskt alternativ för applikationer på små nivåer
  • Det är svårt att lära sig MVC för ASP.NET, eftersom det kräver en stor förståelse för MVC-mönster

Bästa praxis vid användning av ASP.NET MVC

  • Skapa en separat assembly för MODEL vid stor och komplex kod för att undvika oönskade situationer.
  • Modellen bör inkludera affärslogik, sessionsunderhåll, valideringsdel och datalogikdel.
  • VIEW ska inte innehålla någon affärslogik och sessionsunderhåll, använd ViewData för att komma åt data i View
  • Affärslogik och dataåtkomst ska aldrig förekomma i Controllern
  • Den registeransvarige ska endast ansvara för att förbereda och returnera en vy, anropsmodell, omdirigering till handling, etc.
  • Ta bort demokod från applikationen när du skapar den (Ta bort AccountController)
  • Använd endast specifik visningsmotor för att skapa HTML-uppmärkning från din vy eftersom det är en kombination av HTML och programmeringskoden.

Vanliga frågor

Ja. GitHub Copilot kan generera en Controller-klass med actionmetoder, routeattribut och matchande Razor-vyer. RevVisa den genererade koden för korrekt modellbindning och auktorisering innan du lägger till den i projektet.

Maskininlärningsassistenter kan mappa webbformulärssidor till kontroller och vyer, översätta bakomliggande kod till åtgärdsmetoder och flagga ViewState-användning. Utvecklaren validerar fortfarande routing, modellbindning och varje migrerad affärsregel.

ViewData är en ordbok med objekt som är nycklade med en sträng och som överlever en begäran. ViewBag är en dynamisk omslutning över ViewData. TempData använder sessionstillstånd och överlever en omdirigering, så det används för att skicka data mellan två på varandra följande begäranden.

Routingmotorn matchar en inkommande URL mot mallarna som är registrerade i RouteConfig. När en mall matchar väljer MVC kontrollanten och åtgärden, binder eventuella parametrar och anropar åtgärden för att returnera ett ActionResult.

Razor är en kompakt syntax för att bädda in C# eller VB.NET i .cshtml- eller .vbhtml-filer. Den använder @ för att växla från HTML till kod, håller mallar läsbara och kompilerar till snabba, starkt typade klasser vid körning.

Klassisk ASP.NET MVC körs på hela .NET Framework och Windows endast. ASP.NET Core MVC körs på .NET Core över Windows, Linux och macOS, använder en enhetlig kontrollmodell med webb-API och erbjuder inbyggd beroendeinjektion.

Använd ASP.NET Identity eller en extern leverantör som t.ex. Azure AD för inloggning. Dekorera en kontrollant eller åtgärd med attributet [Auktorisera] för att begränsa åtkomst och använd roll- eller policyparametrar för mer detaljerade regler.

Instansiera kontrollanten i en testmetod, injicera falska eller simulerade tjänster genom konstruktorn, anropa åtgärden och bekräfta att det returnerade ActionResult matchar det förväntade vynnamnet, modellen eller omdirigeringsmålet.

Sammanfatta detta inlägg med: