ASP.NET MVC vodič za početnike: Što je, Architektura

⚡ Pametni sažetak

ASP.NET MVC je otvoreni kod Microsoft Framework koji web aplikaciju dijeli na slojeve Model, View i Controller, dajući programerima potpunu kontrolu nad HTML-om, kod koji se može testirati, čisto usmjeravanje i laganu alternativu klasičnim web obrascima.

  • 🏛️ Architekstura: Model sadrži podatke o domeni, View renderira korisničko sučelje pomoću Razora, a Controller posreduje u svakom zahtjevu između njih dvoje.
  • Zašto MVC: Ispravlja opterećenje ViewStatea i performansi web obrazaca te omogućuje čisto usmjeravanje plus razvoj vođen testiranjem.
  • 🔀 usmjeravanje: Na temelju rute URLmapiraju dolazne zahtjeve na akcije kontrolera, zamjenjujući .aspx datoteke temeljene na datotekama URLs SEO optimiziranim putovima.
  • 🧪 Testabilnost: Kontroler i Model mogu se testirati izolirano jer Views ne sadrže poslovnu logiku.
  • ⚖️ Usporedite web obrasce: Web obrasci koriste serverske kontrole vođene događajima; MVC koristi akcije vođene zahtjevima s ručnim upravljanjem stanjem.
  • 🛠️ Najbolja vježba: Zadržite poslovnu logiku u modelu, smanjite broj kontrolera i koristite djelomične prikaze ili rasporede za ponovnu upotrebu oznaka.

Vodič za ASP.NET MVC

Što je ASP.NET MVC?

ASP.NET MVC je open source web development framework iz Microsoft koji pruža arhitekturu Model View Controllera. ASP.NET MVC nudi alternativu ASP.NET web obrascima za izradu web aplikacija. Dio je .NET platforme za izgradnju, implementaciju i pokretanje web aplikacija. Web aplikacije i web stranice možete razvijati uz pomoć HTML-a, CSS-a, jQueryja, JavaSkripta itd.

Naučite MVC pomoću ovog vodiča za ASP.NET MVC koji pokriva sve osnovne koncepte MVC-a za početnike:

Zašto ASP.NET MVC?

Iako su web obrasci bili vrlo uspješni, Microsoft mislio na razvojping ASP.NET MVC. Glavni problem s ASP.NET webFormsima su performanse.

U web aplikacija, četiri su glavna aspekta koja definiraju izvedbu:-

  • Problemi s vremenom odgovora
  • Problem jediničnog testiranja
  • HTML prilagodba
  • Ponovno korištenje klase iza koda

ASP.NET MVC se ističe po gore navedenim parametrima.

Povijest verzija MVC-a

ASP.NET MVC1

  • Objavljeno 13. ožujka 2009
  • Radi na .NET 3.5
  • Visual Studio 2008
  • MVC Pattern arhitektura s WebForm Engineom
  • Glavne značajke uključuju Html & Ispitivanje jedinice, Ajax pomagači, usmjeravanje itd.

ASP.NET MVC2

  • Ova verzija objavljena je 10. ožujka 2010
  • Radi na .NET 3.5, 4.0 i s Microsoft Visual Studio 2008
  • Uključite značajke poput predložaka za pomoć, korisničkih sučelja s automatskim scaffoldingom i prilagodljivim predlošcima
  • Podržava atribute DataAnnotations za primjenu provjere valjanosti modela na strani klijenta i poslužitelja

ASP.NET MVC3

  • Objavljen je 13. siječnja 2011
  • Radi na .NET 4.0 i sa Microsoft Visual Studio 2010
  • Upotreba NuGet za isporuku softvera i omogućuje vam upravljanje ovisnostima na cijeloj platformi
  • Bolje JavaPodrška za skripte s jQuery validacijom i JSON vezanjem
  • Nudi značajke poput Razor view enginea i poboljšanih atributa Data Annotations za validaciju modela na strani klijenta i poslužitelja.

ASP.NET MVC4

  • Ova verzija je objavljena u kolovozu 2012
  • Radi na .NET 4.0, 4.5 i s Visual Studio 2010 & Visual Studio 2012
  • Poboljšanja zadanih predložaka projekta
  • Nudi značajke kao što je predložak mobilnog projekta koji koristi jQuery Mobile, podrška za zadatke za asinkrone kontrolere, grupiranje, smanjivanje itd.

ASP.NET MVC5

  • Objavljeno 17. listopada 2013
  • Radi na .NET 4.5, 4.5.1 i s Visual Studiom 2012 i Visual Studiom 2013
  • Podržava usmjeravanje atributa u MVC-u

Značajke MVC-a

  • Jednostavna provjera bez trenja
  • Potpuna kontrola nad vašim HTML-om, JavaSkripta, i URLs
  • Poluga postoji ASP.NET Značajke
  • Nova opcija prezentacije za ASP.NET
  • Jednostavniji način programiranja ASP.NET-a
  • Jasno razdvajanje logike: model, pogled, kontroler
  • Razvoj vođen testiranjem
  • Podrška za paralelni razvoj

Stvari koje treba zapamtiti prilikom izrade MVC aplikacije

Evo nekoliko korisnih stvari u ovom vodiču za ASP.NET MVC koje trebate zapamtiti za izradu MVC aplikacije:

  • Morate imati na umu da ASP.NET MVC NIJE zamjena za ASP.NET aplikacije temeljene na web obrascima.
  • Pristup razvoju MVC aplikacija mora se odlučiti na temelju zahtjeva aplikacije i značajki koje pruža ASP.NET MVC kako bi odgovarao specifičnim potrebama razvoja.
  • Proces razvoja aplikacija s ASP.NET MVC-om je složeniji u usporedbi s aplikacijama temeljenim na web obrascima.
  • Mogućnost održavanja aplikacije uvijek je veća s odvajanjem aplikacijskih zadataka.

MVC arhitektonski uzorak

MVC arhitektonski uzorak

MVC je obrazac softverske arhitekture koji slijedi metodu razdvajanja odgovornosti. U ovom modelu .NET aplikacije su podijeljene u tri međusobno povezana dijela koja se nazivaju Model, View i Controller.

Cilj MVC uzorka je da se svaki od ovih dijelova može razviti, testirati u relativnoj izolaciji i također kombinirati kako bi se stvorila vrlo robusna aplikacija.

Pogledajmo ih sve detaljno:

Modeli

Objekti modela su dijelovi aplikacije koji implementiraju logiku za aplikaciju domena podataka. Dohvaća i pohranjuje stanje modela u bazu podataka. Na primjer, objekt proizvoda može dohvatiti informacije iz a baza podataka, operirajte ga. Zatim zapišite informacije natrag u tablicu proizvoda na SQL poslužitelju.

Posjeta

Prikazi su komponente koje se koriste za prikaz korisničkog sučelja (UI) aplikacije, koje se u MVC-u nazivaju i viewmodel. Prikazuje .NET MVC aplikaciju koja je stvorena iz podataka modela.

Uobičajeni primjer bio bi prikaz za uređivanje tablice stavki. Prikazuje tekstne okvire, skočne prozore i potvrdne okvire na temelju trenutnog stanja proizvoda i objekta.

kontrolor

Kontroleri obrađuju interakciju korisnika, rade s modelom i odabiru prikaz za prikaz korisničkog sučelja. U .NET MVC aplikaciji, prikaz prikazuje samo informacije, dok kontroler upravlja i reagira na korisnički unos i interakciju pomoću filtera akcija u MVC-u.

Na primjer, kontroler upravlja vrijednostima niza upita i prosljeđuje te vrijednosti modelu.

Web obrasci u odnosu na MVC

Parametri WebObrasci VMC
Model ASP.NET web obrasci slijede model razvoja vođenog događajima. ASP.NET MVC koristi MVC model razvoja temeljen na uzorcima.
Koristi se od Postoji od 2002 Prvi put je objavljen 2009. godine
Podrška za stanje prikaza ASP.NET web obrazac podržava prikaz stanja za upravljanje stanjem na strani klijenta. .NET MVC ne podržava stanje prikaza.
URL vrsta ASP.NET web obrazac je baziran na datotekama URLs. To znači da naziv datoteke postoji u URLi moraju fizički postojati. ASP.NET MVC je baziran na rutama URLto znači URLkoji se preusmjeravaju na kontrolere i akcije.
Sintaksa ASP.NET web obrasci slijede sintaksu web obrazaca. ASP.NET MVC slijedi prilagodljivu sintaksu.
Vrsta pogleda Web obrazac, prikazi su čvrsto povezani s Code iza (ASPX-CS), tj. logike. MVC, pogledi i logika uvijek se drže odvojeno.
Dosljedan izgled i dojam Ima glavne stranice za dosljedan izgled. ASP.NET MVC ima rasporede za dosljedan izgled.
Code Reus Sposobnost Web Form nudi korisničke kontrole za ponovnu upotrebu koda. ASP.NET MVC je ponudio djelomične prikaze za ponovnu upotrebu koda.
Kontrola za HTML Less kontrolu nad prikazanim HTML-om. Potpuna kontrola nad HTML-om
Upravljanje državom Automatsko upravljanje stanjem kontrola. Ručno upravljanje stanjem.
TDD podrška Potreban je slab ili prilagođeni TDD. Potiče i uključuje TDD.

Prednosti ASP.NET MVC

  • Zadane aplikacije koje se lako održavaju
  • Omogućuje vam zamjenu bilo koje komponente aplikacije.
  • Bolja podrška za razvoj vođen testiranjem
  • Složenim aplikacijama lako je upravljati zbog podjele na model, pogled i kontrolere.
  • Nudi robustan mehanizam za usmjeravanje s uzorkom prednjeg upravljača
  • Nudi bolju kontrolu nad ponašanjem aplikacije uz eliminaciju stanja prikaza i obrazaca temeljenih na poslužitelju
  • .NET MVC aplikacije podržavaju veliki timovi programera i web dizajnera
  • Nudi više kontrole nad ponašanjem aplikacije. Također koristi optimiziranu propusnost za zahtjeve upućene poslužitelju

Nedostaci ASP.NET MVC

  • Ne možete vidjeti pregled stranice dizajna kao što je to slučaj sa .aspx stranicom.
  • Program morate pokrenuti svaki put kako biste vidjeli njegov stvarni dizajn.
  • Razumijevanje tijeka aplikacije može biti izazovno
  • Prilično je kompliciran za implementaciju, tako da nije idealna opcija za male aplikacije
  • Teško je naučiti MVC za ASP.NET jer zahtijeva dobro razumijevanje MVC uzorka

Najbolje prakse pri korištenju ASP.NET MVC-a

  • U slučaju velikog i složenog koda, stvorite zaseban sklop za MODEL kako biste izbjegli neželjene situacije.
  • Model bi trebao uključivati ​​poslovnu logiku, održavanje sesije, dio za provjeru valjanosti i dio za logiku podataka.
  • VIEW ne bi trebao sadržavati nikakvu poslovnu logiku i održavanje sesije, koristite ViewData za pristup podacima u Viewu
  • Poslovna logika i pristup podacima nikada se ne bi trebali događati u Controlleru
  • Kontrolor bi trebao biti odgovoran samo za pripremu i vraćanje prikaza, pozivanje modela, preusmjeravanje na radnju itd.
  • Izbriši demo kod iz aplikacije kada je kreiraš (Izbriši AccountController)
  • Koristite samo određeni mehanizam prikaza za stvaranje HTML markupa iz vašeg prikaza jer je to kombinacija HTML-a i programskog koda.

Pitanja i odgovori

Da. GitHub Copilot može generirati klasu Controller s metodama akcija, atributima rute i odgovarajućim Razor prikazima. RevPrije dodavanja u projekt, pogledajte generirani kod za ispravno povezivanje i autorizaciju modela.

Pomoćnici za strojno učenje mogu mapirati stranice web obrazaca na kontrolere i prikaze, prevesti kod u metode akcija i označiti korištenje ViewStatea. Programer i dalje validira usmjeravanje, povezivanje modela i svako migrirano poslovno pravilo.

ViewData je rječnik objekata s ključem tipa string koji preživi jedan zahtjev. ViewBag je dinamički omotač nad ViewData. TempData koristi stanje sesije i preživi jedno preusmjeravanje, pa se koristi za prijenos podataka između dva uzastopna zahtjeva.

Ruterski mehanizam odgovara dolaznom URL u odnosu na predloške registrirane u RouteConfigu. Kada se predložak podudara, MVC odabire kontroler i akciju, veže sve parametre i poziva akciju za vraćanje ActionResult-a.

Razor je kompaktna sintaksa za ugrađivanje C# ili VB.NET-a unutar .cshtml ili .vbhtml datoteka. Koristi @ za prebacivanje s HTML-a na kod, održava predloške čitljivima i kompajlira se u brze, snažno tipizirane klase tijekom izvođenja.

Klasični ASP.NET MVC radi na punom .NET Frameworku i Windows samo. ASP.NET Core MVC radi na .NET Coreu preko Windows, Linux i macOS, koristi objedinjeni model kontrolera s web API-jem i nudi ugrađeno ubrizgavanje ovisnosti.

Koristite ASP.NET Identity ili vanjskog pružatelja usluga kao što je Azure AD za prijavu. Ukrasite kontroler ili radnju atributom [Authorize] za ograničavanje pristupa i koristite parametre uloga ili pravila za preciznija pravila.

Instancirajte Controller u testnoj metodi, ubrizgajte lažne ili simulirane usluge putem konstruktora, pozovite akciju i potvrdite da vraćeni ActionResult odgovara očekivanom nazivu prikaza, modelu ili cilju preusmjeravanja.

Sažmite ovu objavu uz: