ASP.NET MVC -opastus aloittelijoille: Mikä on, Archirakenne

⚡ Älykäs yhteenveto

ASP.NET MVC on avoimen lähdekoodin Microsoft kehys, joka erottaa verkkosovelluksen malli-, näkymä- ja ohjainkerroksiin, antaen kehittäjille täyden HTML-hallinnan, testattavan koodin, puhtaan reitityksen ja kevyen vaihtoehdon klassisille verkkolomakkeille.

  • 🏛️ Archirakenne: Malli sisältää toimialuetiedot, näkymä renderöi käyttöliittymän Razorilla ja ohjain välittää jokaisen pyynnön näiden kahden välillä.
  • Miksi MVC: Se korjaa verkkolomakkeiden ViewState-ongelmat ja suorituskykyyn liittyvät lisäkustannukset ja mahdollistaa puhtaan reitityksen sekä testilähtöisen kehityksen.
  • 🔀 reititys: Reittipohjainen URLs yhdistää saapuvat pyynnöt ohjaimen toimintoihin korvaamalla tiedostopohjaiset .aspx-tiedostot URLhakukoneoptimoitujen polkujen avulla.
  • 🧪 Testattavuus: Ohjainta ja mallia voidaan yksikkötestata erikseen, koska näkymillä ei ole liiketoimintalogiikkaa.
  • 🇧🇷 Verkkolomakkeiden vertailu: Web Forms käyttää tapahtumapohjaisia ​​palvelinohjausobjekteja; MVC käyttää pyyntöpohjaisia ​​toimintoja manuaalisella tilanhallintajärjestelmällä.
  • 🛠️ Paras harjoitus: Pidä liiketoimintalogiikka mallissa, pidä ohjaimet ohuina ja käytä osittaisia ​​näkymiä tai asetteluja merkintöjen uudelleenkäyttöön.

ASP.NET MVC opetusohjelma

Mikä on ASP.NET MVC?

ASP.NET MVC on avoimen lähdekoodin verkkokehityskehys Microsoft joka tarjoaa Model View Controller -arkkitehtuurin. ASP.NET MVC tarjoaa vaihtoehdon ASP.NET-verkkolomakkeille verkkosovellusten rakentamiseen. Se on osa .NET-alustaa verkkosovellusten rakentamiseen, käyttöönottoon ja suorittamiseen. Voit kehittää verkkosovelluksia ja verkkosivustoja HTML:n, CSS:n, jQueryn, JavaKäsikirjoitus jne.

Opi MVC tällä ASP.NET MVC -opetusohjelmalla, joka kattaa kaikki MVC:n peruskäsitteet aloittelijoille:

Miksi ASP.NET MVC?

Vaikka verkkolomakkeet olivat erittäin onnistuneita, Microsoft ajatus kehityksestäping ASP.NET MVC. ASP.NET webFormsin suurin ongelma on suorituskyky.

Jonkin sisällä Web-sovellus, on neljä päätekijää, jotka määrittelevät suorituskyvyn:-

  • Vastausajan ongelmat
  • Yksikkötestauksen ongelma
  • HTML-muokkaus
  • Koodin takana olevan luokan uudelleenkäyttö

ASP.NET MVC loistaa yllä mainituissa parametreissä.

MVC:n versiohistoria

ASP.NET MVC1

  • Julkaistu 13. maaliskuuta 2009
  • Se toimii .NET 3.5:ssä
  • Visual Studio 2008
  • MVC Pattern -arkkitehtuuri WebForm Enginen kanssa
  • Tärkeimmät ominaisuudet sisältävät HTML- ja Yksikkötestaus, Ajax-avustajat, reititys jne.

ASP.NET MVC2

  • Tämä versio julkaistiin 10. maaliskuuta 2010
  • Toimii .NET 3.5-, 4.0- ja muissa käyttöjärjestelmissä Microsoft Visual Studio 2008
  • Sisällytä ominaisuuksia, kuten mallipohjaiset apuohjelmat, käyttöliittymäapuohjelmat automaattisella telinealustalla ja mukautettavat mallipohjat
  • Se tukee DataAnnotations-attribuutteja mallin validoinnin soveltamiseksi asiakas- ja palvelinpuolella

ASP.NET MVC3

  • Se julkaistiin 13
  • Toimii .NET 4.0, XNUMX ja sen kanssa Microsoft Visual Studio 2010
  • N:n käyttöuGet ohjelmistojen toimittamiseen ja voit hallita riippuvuuksia alustalla
  • Paremmin JavaSkriptituki jQuery-validoinnilla ja JSON-sidonnalla
  • Se tarjoaa ominaisuuksia, kuten Razor-näkymämoottorin ja parannetut datamerkintäominaisuudet mallin validointiin sekä asiakas- että palvelinpuolella.

ASP.NET MVC4

  • Tämä versio julkaistiin elokuussa 2012
  • Se toimii .NET 4.0:ssa ja 4.5:ssä sekä Visual Studio 2010:n ja Visual Studio 2012:n kanssa
  • Parannuksia oletusprojektimalleihin
  • Tarjoaa ominaisuuksia, kuten jQuery Mobilea käyttävän mobiiliprojektimallin, tehtävätuen asynkronisille ohjaimille, niputuksen, pienentämisen jne.

ASP.NET MVC5

  • Julkaistu 17. lokakuuta 2013
  • Toimii .NET 4.5- ja 4.5.1-käyttöjärjestelmissä sekä Visual Studio 2012- ja Visual Studio 2013 -ohjelmistoilla
  • Tukee attribuuttien reititystä MVC:ssä

MVC:n ominaisuudet

  • Helppo ja kitkaton testattavuus
  • HTML-koodin täysi hallinta, JavaKäsikirjoitus ja URLs
  • Hyödynnä olemassa olevaa ASP.NET Ominaisuudet
  • Uusi esitystapa ASP.NET:ille
  • Yksinkertaisempi tapa ohjelmoida ASP.NETiä
  • Selkeä logiikan erottelu: malli, näkymä, ohjain
  • Testilähtöinen kehitys
  • Tuki rinnakkaiskehitykseen

Muistettavaa MVC-sovellusta luotaessa

Tässä on muutamia hyödyllisiä asioita tässä ASP.NET MVC -opetusohjelmassa, jotka sinun on muistettava luodessasi MVC-sovellusta:

  • Sinun on muistettava, että ASP.NET MVC EI korvaa ASP.NET-verkkolomakepohjaisia ​​sovelluksia.
  • MVC-sovelluskehityksen lähestymistapa on päätettävä sovellusvaatimusten ja ASP.NET MVC:n tarjoamien ominaisuuksien perusteella, jotta se sopisi tiettyihin kehitystarpeisiin.
  • Sovelluskehitysprosessi ASP.NET MVC:llä on monimutkaisempi verrattuna verkkolomakepohjaisiin sovelluksiin.
  • Sovelluksen ylläpidettävyys on aina parempi, kun sovellustehtävät erotetaan toisistaan.

MVC-arkkitehtuurimalli

MVC-arkkitehtuurimalli

MVC on ohjelmistoarkkitehtuurimalli, joka noudattaa huolenaiheiden erottelumenetelmää. Tässä mallissa .NET-sovellukset on jaettu kolmeen toisiinsa liittyvään osaan: malliin, näkymään ja ohjaimiin.

MVC-kuvion tavoitteena on, että jokaista näistä osista voidaan kehittää, testata suhteellisen erillään ja myös yhdistää luodakseen erittäin vankan sovelluksen.

Katsotaanpa niitä kaikkia yksityiskohtaisesti:

Mallit

Malliobjektit ovat sovelluksen osia, jotka toteuttavat sovelluksen logiikan data-alue. Se hakee ja tallentaa mallin tilan tietokantaan. Esimerkiksi tuoteobjekti voi hakea tietoja osoitteesta a tietokanta, käytä sitä. Kirjoita sitten tiedot takaisin tuotetaulukkoon SQL-palvelimessa.

Näyttökerrat

Näkymät ovat komponentteja, joita käytetään sovelluksen käyttöliittymän (UI) näyttämiseen. MVC:ssä niitä kutsutaan myös näkymämalliksi. Ne näyttävät mallidatasta luodun .NET MVC -sovelluksen.

Yleisin esimerkki on nimiketaulukon muokkausnäkymä. Se näyttää tekstilaatikot, ponnahdusikkunat ja valintaruudut tuotteiden ja objektin nykyisen tilan perusteella.

ohjain

Ohjaimet käsittelevät käyttäjän vuorovaikutusta, työskentelevät mallin kanssa ja valitsevat näkymän, joka renderöi käyttöliittymän. .NET MVC -sovelluksessa näkymä näyttää vain tietoja, ja ohjain hallitsee käyttäjän syötettä ja vuorovaikutusta sekä reagoi niihin MVC:n toimintosuodattimien avulla.

Ohjain esimerkiksi hallitsee kyselymerkkijonoarvoja ja välittää ne mallille.

Web Forms vs. MVC

parametrit Verkkolomakkeet MVC
Malli ASP.NET-verkkolomakkeet noudattavat tapahtumapohjaista kehitysmallia. ASP.NET MVC käyttää MVC-mallipohjaista kehitysmallia.
Käytetty vuodesta Ollut käytössä vuodesta 2002 Se julkaistiin ensimmäisen kerran vuonna 2009
View-tilan tuki ASP.NET Web Form tukee näkymätilaa tilanhallintaa varten asiakaspuolella. .NET MVC ei tue näkymätilaa.
URL tyyppi ASP.NET-verkkolomakkeella on tiedostopohjainen URLs. Se tarkoittaa, että tiedostonimi on jo olemassa URLja niiden täytyy olla olemassa fyysisesti. ASP.NET MVC:ssä on reittipohjainen URLse tarkoittaa URLs, jotka ohjataan ohjaimiin ja toimintoihin.
Syntaksi ASP.NET-verkkolomakkeet noudattavat verkkolomakkeiden syntaksia. ASP.NET MVC noudattaa muokattavissa olevaa syntaksia.
Näkymän tyyppi Verkkolomake, näkymät ovat tiiviisti kytköksissä Code takana (ASPX-CS), eli logiikka. MVC, näkymät ja logiikka säilytetään aina erikseen.
Yhtenäinen ulkonäkö ja tuntuma Siinä on sivupohjat yhtenäisen ulkoasun takaamiseksi. ASP.NET MVC:ssä on asetteluja yhtenäisen ulkoasun saavuttamiseksi.
Code Reus Kyky Web Form tarjoaa käyttäjäohjaimet koodin uudelleenkäyttöä varten. ASP.NET MVC on tarjonnut osittaisia ​​​​näkymiä koodin uudelleenkäytettävyydestä.
HTML-hallinta Less hallita renderöityä HTML:ää. Täysi HTML-hallinta
Valtionhallinto Ohjainten automaattinen tilanhallinta. Manuaalinen tilanhallinta.
TDD tuki Heikko tai mukautettu TDD vaaditaan. Kannustaa ja sisällyttää TDD:n.

ASP.NET MVC:n edut

  • Hyvin ylläpidettävät sovellukset oletuksena
  • Sen avulla voit korvata minkä tahansa sovelluksen osan.
  • Parempi tuki testilähtöiselle kehitykselle
  • Monimutkaisia ​​sovelluksia on helppo hallita malli-, näkymä- ja ohjaimet-jaon ansiosta.
  • Tarjoaa vankan reititysmekanismin etuohjainkuviolla
  • Tarjoaa paremman hallinnan sovellusten käyttäytymiseen eliminoimalla näkymän tilan ja palvelinpohjaiset lomakkeet
  • .NET MVC -sovelluksia tukevat suuret kehittäjien ja web-suunnittelijoiden tiimit.
  • Se tarjoaa paremman hallinnan sovelluksen käyttäytymiseen. Se käyttää myös optimoitua kaistanleveyttä palvelimelle tehtyihin pyyntöihin

ASP.NET MVC:n haitat

  • Et voi nähdä suunnittelusivun esikatselua kuten .aspx-sivua.
  • Sinun on suoritettava ohjelma joka kerta nähdäksesi sen todellisen rakenteen.
  • Sovelluksen kulun ymmärtäminen voi olla haastavaa
  • Se on melko monimutkainen toteuttaa, joten se ei ole ihanteellinen vaihtoehto pienille sovelluksille
  • On vaikea oppia MVC:tä ASP.NET:lle, koska se vaatii hyvää ymmärrystä MVC-kuviosta

Parhaat käytännöt ASP.NET MVC:n käytössä

  • Luo erillinen MODEL-kokoonpano, jos koodi on laaja ja monimutkainen, välttääksesi ei-toivotut tilanteet.
  • Mallin tulee sisältää liiketoimintalogiikka, istunnon ylläpito, validointiosa ja datalogiikkaosa.
  • VIEW ei saa sisältää liiketoimintalogiikkaa ja istunnon ylläpitoa. Käytä ViewDataa nähdäksesi tiedot Viewissa
  • Liiketoimintalogiikkaa ja datan käyttöä ei pitäisi koskaan tapahtua Controllerissa
  • Rekisterinpitäjän tulee olla vastuussa vain näkymän, mallin kutsumisen, uudelleenohjauksen jne. valmistelusta ja palauttamisesta.
  • Poista demokoodi sovelluksesta luomisen yhteydessä (Poista AccountController)
  • Käytä vain tiettyä näkymämoottoria luodaksesi HTML-merkinnät näkymästäsi, koska se on HTML:n ja ohjelmointikoodin yhdistelmä.

UKK

Kyllä. GitHub Copilot voi luoda Controller-luokan, jossa on toimintometodeja, reittiattribuutteja ja vastaavia Razor View -näkökulmia. RevTarkista luodun koodin oikea mallin sidonta ja valtuutus ennen sen lisäämistä projektiin.

Koneoppimisen avustajat voivat yhdistää verkkolomakesivut ohjaimiin ja näkymiin, kääntää taustalla olevan koodin toimintometodeiksi ja merkitä ViewState-käytön. Kehittäjä validoi edelleen reitityksen, mallin sidonnan ja jokaisen siirretyn liiketoimintasäännön.

ViewData on merkkijonoilla avattujen objektien sanakirja, joka säilyy yhden pyynnön jälkeen. ViewBag on dynaaminen kääre ViewDatan päällä. TempData käyttää istuntotilaa ja säilyy yhden uudelleenohjauksen jälkeen, joten sitä käytetään tiedon välittämiseen kahden peräkkäisen pyynnön välillä.

Reititysmoottori löytää saapuvan osoitteen URL RouteConfig-tiedostossa rekisteröityjä templaatteja vasten. Kun templaatti löytää osuman, MVC valitsee ohjaimen ja toiminnon, sitoo mahdolliset parametrit ja käynnistää toiminnon palauttaakseen ActionResult-arvon.

Razor on kompakti syntaksi C#- tai VB.NET-koodin upottamiseen .cshtml- tai .vbhtml-tiedostoihin. Se käyttää @-merkkiä vaihtaakseen HTML:stä koodiin, pitää mallit luettavina ja kääntyy nopeiksi, vahvasti tyypitetyiksi luokiksi ajonaikana.

Klassinen ASP.NET MVC toimii täydellä .NET Frameworkilla ja Windows vain. ASP.NET Core MVC toimii .NET Coressa Windows, Linux ja macOS, käyttää yhtenäistä ohjainmallia Web API:n kanssa ja tarjoaa sisäänrakennetun riippuvuuksien injektoinnin.

Käytä ASP.NET Identityä tai ulkoista palveluntarjoajaa, kuten Azure AD sisäänkirjautumiseen. Rajoita käyttöoikeuksia lisäämällä ohjaimeen tai toimintoon [Authorize]-attribuutti ja käytä rooli- tai käytäntöparametreja tarkempia sääntöjä varten.

Luo Controller-objekti testimetodissa, lisää konstruktoriin väärennettyjä tai valepalveluita, kutsu toimintoa ja vahvista, että palautettu ActionResult vastaa odotettua näkymän nimeä, mallia tai uudelleenohjauksen kohdetta.

Tiivistä tämä viesti seuraavasti: