ASP.NET MVC Tutorial for begyndere: Hvad er, Architecture

โšก Smart opsummering

ASP.NET MVC er open source Microsoft Et framework, der opdeler en webapplikation i Model-, View- og Controller-lag, hvilket giver udviklere fuld kontrol over HTML, testbar kode, ren routing og et let alternativ til klassiske webformularer.

  • ๐Ÿ›๏ธ Archilรฆre: Modellen indeholder domรฆnedata, View'en gengiver brugergrรฆnsefladen med Razor, og Controlleren medierer alle anmodninger mellem de to.
  • โšก Hvorfor MVC: Det retter ViewState- og performance-overhead for webformularer og muliggรธr ren routing plus testdrevet udvikling.
  • ๐Ÿ”€ Routing: Rutebaseret URLs knytter indgรฅende anmodninger til controllerhandlinger og erstatter filbaseret .aspx URLs med SEO-venlige stier.
  • ๐Ÿงช Testbarhed: Controlleren og modellen kan enhedstestes isoleret, fordi Views ikke indeholder forretningslogik.
  • โš–๏ธ Sammenlign webformularer: Webformularer bruger hรฆndelsesdrevne serverkontroller; MVC bruger anmodningsdrevne handlinger med manuel tilstandsstyring.
  • ๐Ÿ› ๏ธ Bedste praksis: Behold forretningslogik i modellen, hold controllerne slanke, og brug delvise visninger eller layouts til at genbruge markup.

ASP.NET MVC Tutorial

Hvad er ASP.NET MVC?

ASP.NET MVC er en open source webudviklingsramme fra Microsoft der leverer en Model View Controller-arkitektur. ASP.NET MVC tilbyder et alternativ til ASP.NET-webformularer til opbygning af webapplikationer. Det er en del af .NET-platformen til opbygning, implementering og kรธrsel af webapps. Du kan udvikle webapps og websteder ved hjรฆlp af HTML, CSS, jQuery, JavaScript osv.

Lรฆr MVC med denne ASP.NET MVC-tutorial, som dรฆkker alle de grundlรฆggende begreber i MVC for begyndere:

Hvorfor ASP.NET MVC?

Selvom webformularer var meget vellykkede, Microsoft tanke om udviklingping ASP.NET MVC. Det stรธrste problem med ASP.NET webForms er ydeevnen.

I en webapplikation, er der fire hovedaspekter, der definerer ydeevne:-

  • Svartidsproblemer
  • Problem med enhedstestning
  • HTML tilpasning
  • Genanvendelighed af kode-behind-klassen

ASP.NET MVC udmรฆrker sig pรฅ ovenstรฅende parametre.

Versionshistorik for MVC

ASP.NET MVC1

  • Udgivet den 13. marts 2009
  • Det kรธrer pรฅ .NET 3.5
  • Visual Studio 2008
  • MVC-mรธnsterarkitektur med WebForm Engine
  • Hovedfunktioner inkluderer HTML & Enhedstest, Ajax Helpers, Routing osv.

ASP.NET MVC2

  • Denne version udgivet den 10. marts 2010
  • Kรธrer pรฅ .NET 3.5, 4.0 og med Microsoft Visual Studio 2008
  • Inkluder funktioner som skabelonhjรฆlpere, brugergrรฆnsefladehjรฆlpere med automatisk stilladsering og brugerdefinerede skabeloner
  • Det understรธtter DataAnnotations-attributter til at anvende modelvalidering pรฅ klient- og serversider

ASP.NET MVC3

  • Den blev udgivet den 13. januar 2011
  • Kรธrer pรฅ .NET 4.0 og med Microsoft Visual Studio 2010
  • Brug af NuGet til at levere software og giver dig mulighed for at administrere afhรฆngigheder pรฅ tvรฆrs af platformen
  • Bedre JavaScriptunderstรธttelse med jQuery-validering og JSON-binding
  • Den tilbyder funktioner som Razor-visningsmotoren og forbedrede attributter for dataannotationer til modelvalidering pรฅ bรฅde klient- og serversiden.

ASP.NET MVC4

  • Denne version blev udgivet i august 2012
  • Den kรธrer pรฅ .NET 4.0, 4.5 og med Visual Studio 2010 og Visual Studio 2012
  • Forbedringer til standardprojektskabeloner
  • Tilbyder funktioner som mobil projektskabelon ved hjรฆlp af jQuery Mobile, opgaveunderstรธttelse til asynkrone controllere, bundling, minifikation osv.

ASP.NET MVC5

  • Udgivet den 17. oktober 2013
  • Kรธrer pรฅ .NET 4.5, 4.5.1 og med Visual Studio 2012 og Visual Studio 2013
  • Understรธtter attributrouting i MVC

Funktioner af MVC

  • Nem og friktionsfri testbarhed
  • Fuld kontrol over din HTML, JavaScript, og URLs
  • Udnyt eksisterende ASP.NET Funktionalitet
  • En ny prรฆsentationsmulighed til ASP.NET
  • En enklere mรฅde at programmere ASP.NET pรฅ
  • Klar adskillelse af logik: Model, View, Controller
  • Testdrevet udvikling
  • Stรธtte til parallel udvikling

Ting at huske, mens du opretter MVC-applikationen

Her er et par nyttige ting i denne ASP.NET MVC-tutorial, som du skal huske for at oprette MVC-applikation:

  • Du skal huske, at ASP.NET MVC IKKE er en erstatning for ASP.NET webformularbaserede applikationer.
  • Tilgangen til MVC-appudvikling skal besluttes baseret pรฅ applikationens krav og funktioner, som ASP.NET MVC leverer, for at imรธdekomme de specifikke udviklingsbehov.
  • Applikationsudviklingsprocessen med ASP.NET MVC er mere kompleks sammenlignet med webformularbaserede applikationer.
  • Applikationsvedligeholdelse er altid hรธjere med adskillelse af applikationsopgaver.

MVC arkitektonisk mรธnster

MVC arkitektonisk mรธnster

MVC er et softwarearkitekturmรธnster, der fรธlger "separation of concerns"-metoden. I denne model er .NET-applikationer opdelt i tre sammenkoblede dele, der kaldes Model, View og Controller.

Mรฅlet med MVC-mรธnsteret er, at hver af disse dele kan udvikles, testes i relativ isolation og ogsรฅ kombineres for at skabe en meget robust applikation.

Lad os se dem alle i detaljer:

Modeller

Modelobjekter er dele af applikationen, som implementerer logikken for applikationens data domรฆne. Den henter og gemmer modeltilstand i en database. For eksempel kan produktobjekt hente information fra en database, operere pรฅ det. Skriv derefter information tilbage til produkttabellen i SQL-serveren.

Views

Views er de komponenter, der bruges til at vise applikationens brugergrรฆnseflade (UI), ogsรฅ kaldet viewmodel i MVC. Det viser .NET MVC-applikationerne, som er oprettet ud fra modeldataene.

Det almindelige eksempel ville vรฆre en redigeringsvisning af en varetabel. Det viser tekstbokse, pop-ups og afkrydsningsfelter baseret pรฅ den aktuelle tilstand for produkter og objekter.

controller

Controllere hรฅndterer brugerinteraktion, arbejder med modellen og vรฆlger en visning for at gengive den viste brugergrรฆnseflade. I en .NET MVC-app viser visningen kun information, mens controlleren administrerer og reagerer pรฅ brugerinput og interaktion ved hjรฆlp af handlingsfiltre i MVC.

For eksempel administrerer controlleren forespรธrgselsstrengvรฆrdier og sender disse vรฆrdier til modellen.

Webformularer vs. MVC

Driftsparametre Webformularer MVC
Model ASP.NET webformularer fรธlger en eventdrevet udviklingsmodel. ASP.NET MVC bruger en MVC-mรธnsterbaseret udviklingsmodel.
Brugt siden Har eksisteret siden 2002 Den blev udgivet fรธrste gang i 2009
Understรธttelse af visningstilstand ASP.NET Web Form understรธtter visningstilstand til tilstandsstyring pรฅ klientsiden. .NET MVC understรธtter ikke visningstilstand.
URL typen ASP.NET Webformular har filbaserede URLs. Det betyder, at filnavnet findes i URLs, og de skal eksistere fysisk. ASP.NET MVC har rutebaseret URLdet betyder URLs, som omdirigeres til controllere og handlinger.
Syntaks ASP.NET-webformularer fรธlger webformularsyntaksen. ASP.NET MVC fรธlger den brugerdefinerede syntaks.
Vis type Webformular, visninger er tรฆt knyttet til Code bagved (ASPX-CS), dvs. logik. MVC, visninger og logik holdes altid adskilt.
Ensartet udseende og fรธlelse Den har mastersider for et ensartet udseende. ASP.NET MVC har layouts for et ensartet udseende.
Code Reus Evne Webformular tilbyder brugerkontroller til genbrug af kode. ASP.NET MVC har tilbudt delvise visninger til genbrug af kode.
Kontrol til HTML Less kontrol over gengivet HTML. Fuld kontrol over HTML
Statens ledelse Automatisk tilstandsstyring af kontroller. Manuel tilstandsstyring.
TDD support Svag eller tilpasset TDD pรฅkrรฆvet. Opmuntrer til og inkluderer TDD.

Fordele ved ASP.NET MVC

  • Meget vedligeholdelsesvenlige applikationer som standard
  • Det giver dig mulighed for at erstatte enhver komponent i applikationen.
  • Bedre support til testdrevet udvikling
  • Komplekse applikationer er nemme at administrere pรฅ grund af opdelinger af Model, View og Controllere.
  • Tilbyder robust routingmekanisme med frontcontrollermรธnster
  • Tilbyder bedre kontrol over applikationsadfรฆrd med eliminering af visningstilstand og serverbaserede formularer
  • .NET MVC-applikationer understรธttes af store teams af udviklere og webdesignere
  • Det giver mere kontrol over applikationens adfรฆrd. Den bruger ogsรฅ en optimeret bรฅndbredde til anmodninger til serveren

Ulemper ved ASP.NET MVC

  • Du kan ikke se forhรฅndsvisning af designsiden pรฅ samme mรฅde som pรฅ .aspx-siden.
  • Du skal kรธre programmet hver gang for at se dets faktiske design.
  • At forstรฅ applikationens flow kan vรฆre udfordrende
  • Det er ret kompliceret at implementere, sรฅ det er ikke en ideel mulighed for smรฅ applikationer
  • Det er svรฆrt at lรฆre MVC til ASP.NET, da det krรฆver en stor forstรฅelse af MVC-mรธnster

De bedste รธvelser ved brug af ASP.NET MVC

  • Opret en separat assembly til MODEL i tilfรฆlde af stor og kompleks kode for at undgรฅ uรธnskede situationer.
  • Modellen bรธr omfatte forretningslogik, sessionsvedligeholdelse, valideringsdel og datalogikdel.
  • VIEW bรธr ikke indeholde nogen forretningslogik og sessionsvedligeholdelse, brug ViewData til at fรฅ adgang til data i View
  • Forretningslogik og dataadgang bรธr aldrig forekomme i Controller
  • Den registeransvarlige bรธr kun vรฆre ansvarlig for at udarbejde og returnere en visning, opkaldsmodel, omdirigering til handling osv.
  • Slet demokode fra applikationen, nรฅr du opretter den (Slet AccountController)
  • Brug kun specifik visningsmotor til at oprette HTML-markering fra din visning, da det er kombinationen af โ€‹โ€‹HTML og programmeringskoden.

Ofte Stillede Spรธrgsmรฅl

Ja. GitHub Copilot kan generere en Controller-klasse med handlingsmetoder, ruteattributter og matchende Razor Views. RevSe den genererede kode for korrekt modelbinding og godkendelse, fรธr du tilfรธjer den til projektet.

Maskinlรฆringsassistenter kan knytte webformularsider til controllere og visninger, oversรฆtte bagvedliggende kode til handlingsmetoder og markere brugen af โ€‹โ€‹ViewState. Udvikleren validerer stadig routing, modelbinding og alle migrerede forretningsregler.

ViewData er en ordbog over objekter, der er kodet af en streng, og som overlever รฉn anmodning. ViewBag er en dynamisk wrapper over ViewData. TempData bruger sessionstilstand og overlever รฉn omdirigering, sรฅ det bruges til at sende data mellem to pรฅ hinanden fรธlgende anmodninger.

Routing-motoren matcher en indgรฅende URL mod de skabeloner, der er registreret i RouteConfig. Nรฅr en skabelon matcher, vรฆlger MVC controlleren og handlingen, binder eventuelle parametre og kalder handlingen for at returnere et ActionResult.

Razor er en kompakt syntaks til at integrere C# eller VB.NET i .cshtml- eller .vbhtml-filer. Den bruger @ til at skifte fra HTML til kode, holder skabeloner lรฆsbare og kompilerer til hurtige, stรฆrkt typede klasser under kรธrsel.

Klassisk ASP.NET MVC kรธrer pรฅ det fulde .NET Framework og Windows kun. ASP.NET Core MVC kรธrer pรฅ .NET Core pรฅ tvรฆrs Windows, Linux og macOS, bruger en samlet controllermodel med web-API og tilbyder indbygget afhรฆngighedsinjektion.

Brug ASP.NET Identity eller en ekstern udbyder som f.eks. Azure AD til login. Dekorer en controller eller handling med attributten [Authorize] for at begrรฆnse adgang, og brug rolle- eller politikparametre til mere detaljerede regler.

Instantier controlleren i en testmetode, injicer falske eller mock-tjenester gennem konstruktรธren, kald handlingen, og bekrรฆfte, at det returnerede ActionResult matcher det forventede visningsnavn, model eller omdirigeringsmรฅl.

Opsummer dette indlรฆg med: