ASP.NET MVC oktatóanyag kezdőknek: Mi az, Architectúra

⚡ Okos összefoglaló

Az ASP.NET MVC nyílt forráskódú Microsoft keretrendszer, amely a webes alkalmazásokat modell, nézet és vezérlő rétegekre választja szét, teljes HTML-vezérlést, tesztelhető kódot, tiszta útvonaltervezést és a klasszikus webes űrlapok könnyűsúlyú alternatíváját biztosítva a fejlesztőknek.

  • 🏛️ Architectúra: A Model tárolja a domain adatokat, a View renderelte a felhasználói felületet a Razorral, és a Controller közvetítette a kettő közötti összes kérést.
  • Miért pont az MVC?: Kijavítja a webes űrlapok ViewState és teljesítménybeli terhelését, lehetővé teszi a tiszta útvonaltervezést és a tesztvezérelt fejlesztést.
  • 🔀 Útvonalválasztás: Útvonal alapú URLa bejövő kéréseket vezérlőműveletekhez rendeli, lecserélve a fájl alapú .aspx fájlokat URLSEO-barát útvonalakkal.
  • 🧪 Tesztelhetőség: A vezérlő és a modell egységtesztelése elvégezhető külön-külön, mivel a nézetek nem tartalmaznak üzleti logikát.
  • 🇧🇷 Webes űrlapok összehasonlítása: A Web Forms eseményvezérelt szervervezérlőket használ; az MVC kérésvezérelt műveleteket használ manuális állapotkezeléssel.
  • 🇧🇷 Legjobb gyakorlat: Tartsa meg az üzleti logikát a modellben, csökkentse a vezérlők számát, és használjon részleges nézeteket vagy elrendezéseket a jelölőnyelv újrafelhasználásához.

ASP.NET MVC oktatóanyag

Mi az ASP.NET MVC?

ASP.NET MVC egy nyílt forráskódú webfejlesztő keretrendszer Microsoft amely Model View Controller architektúrát biztosít. Az ASP.NET MVC alternatívát kínál az ASP.NET webes űrlapokhoz webes alkalmazások készítéséhez. A .NET platform része webes alkalmazások készítéséhez, telepítéséhez és futtatásához. Webes alkalmazásokat és weboldalakat fejleszthet HTML, CSS, jQuery segítségével. JavaSzkript stb.

Tanulja meg az MVC-t ezzel az ASP.NET MVC oktatóanyaggal, amely az MVC összes alapfogalmát lefedi kezdőknek:

Miért pont az ASP.NET MVC?

Bár a webes űrlapok nagyon sikeresek voltak, Microsoft fejlesztés gondolataping ASP.NET MVC. Az ASP.NET webForms fő problémája a teljesítmény.

egy webalkalmazás, négy fő szempont határozza meg a teljesítményt:

  • Válaszidővel kapcsolatos problémák
  • Az egységtesztelés problémája
  • HTML testreszabás
  • A kód mögötti osztály újrafelhasználhatósága

Az ASP.NET MVC a fenti paraméterek tekintetében kiemelkedő.

Az MVC verziótörténete

ASP.NET MVC1

  • Megjelenés dátuma: 13. március 2009
  • .NET 3.5-ön fut
  • Visual Studio 2008
  • MVC Pattern architektúra WebForm Engine-nel
  • A főbb funkciók közé tartozik a HTML és Egység tesztelése, Ajax Helperek, Routing stb.

ASP.NET MVC2

  • Ez a verzió 10. március 2010-én jelent meg
  • .NET 3.5, 4.0 és más rendszereken fut Microsoft Visual Studio 2008
  • Olyan funkciókat tartalmaz, mint a sablonos segítők, az automatikus állványozással ellátott felhasználói felület segítők és a testreszabható sablonok
  • Támogatja a DataAnnotations Attribútumokat a modellellenőrzés alkalmazásához kliens és szerver oldalon

ASP.NET MVC3

  • 13. január 2011-án jelent meg
  • Fut a .NET 4.0, XNUMX és a Microsoft Visual Studio 2010
  • Az N használatauGet szoftverek szállításához, és lehetővé teszi a függőségek kezelését a platformon keresztül
  • Jobb JavaSzkripttámogatás jQuery validációval és JSON kötéssel
  • Olyan funkciókat kínál, mint a Razor nézetmotor és a továbbfejlesztett adatmegjegyzések attribútumai a modell validálásához mind kliens, mind szerver oldalon.

ASP.NET MVC4

  • Ez a verzió 2012 augusztusában jelent meg
  • .NET 4.0, 4.5, valamint Visual Studio 2010 és Visual Studio 2012 rendszeren fut
  • Az alapértelmezett projektsablonok továbbfejlesztései
  • Olyan funkciókat kínál, mint a mobil projektsablon a jQuery Mobile használatával, az aszinkron vezérlők feladattámogatása, a kötegelés, a minimálás stb.

ASP.NET MVC5

  • Megjelenés dátuma: 17. október 2013
  • .NET 4.5, 4.5.1 rendszeren, valamint Visual Studio 2012 és Visual Studio 2013 szoftverekkel fut
  • Támogatja az attribútumok útválasztását az MVC-ben

Az MVC jellemzői

  • Könnyű és súrlódásmentes tesztelhetőség
  • Teljes irányítás a HTML felett, JavaScript, és URLs
  • Használja ki a meglévőt ASP.NET Jellemzők
  • Új megjelenítési lehetőség az ASP.NET-hez
  • Az ASP.NET programozásának egyszerűbb módja
  • A logika egyértelmű szétválasztása: Modell, Nézet, Vezérlő
  • Tesztvezérelt fejlesztés
  • Párhuzamos fejlesztés támogatása

Amit emlékezni kell az MVC alkalmazás létrehozásakor

Íme néhány hasznos dolog ebben az ASP.NET MVC oktatóanyagban, amelyeket emlékeznie kell az MVC alkalmazás létrehozásához:

  • Ne feledd, hogy az ASP.NET MVC NEM helyettesíti az ASP.NET webes űrlapokon alapuló alkalmazásokat.
  • Az MVC alkalmazásfejlesztés megközelítését az alkalmazás követelményei és az ASP.NET MVC által biztosított funkciók alapján kell eldönteni, hogy megfeleljen az adott fejlesztési igényeknek.
  • Az ASP.NET MVC-vel történő alkalmazásfejlesztési folyamat összetettebb a webes űrlapokon alapuló alkalmazásokhoz képest.
  • Az alkalmazások karbantarthatósága mindig magasabb az alkalmazási feladatok elkülönítésével.

MVC építészeti minta

MVC építészeti minta

Az MVC egy szoftverarchitektúra-minta, amely a felelősségek szétválasztásának módszerét követi. Ebben a modellben a .NET alkalmazások három egymással összefüggő részre oszlanak: modellre, nézetre és vezérlőre.

Az MVC minta célja, hogy ezek a részek mindegyike fejleszthető, viszonylag elszigetelten tesztelhető és kombinálható is egy nagyon robusztus alkalmazás létrehozásához.

Nézzük meg mindegyiket részletesen:

Modellek

A modellobjektumok az alkalmazás azon részei, amelyek megvalósítják az alkalmazás logikáját adattartomány. A modell állapotát lekéri és adatbázisban tárolja. Például a termékobjektum információkat kérhet le a adatbázis, műteni. Ezután írja vissza az információkat az SQL szerver terméktáblázatába.

Nézetek

A nézetek azok a komponensek, amelyek az alkalmazás felhasználói felületének (UI) megjelenítésére szolgálnak, más néven nézetmodellnek az MVC-ben. Ezek jelenítik meg a modelladatokból létrehozott .NET MVC alkalmazásokat.

A gyakori példa egy cikk táblázat szerkesztési nézete lehet. Szövegdobozokat, felugró ablakokat és jelölőnégyzeteket jelenít meg a termékek és objektumok aktuális állapota alapján.

ellenőr

A vezérlők kezelik a felhasználói interakciót, dolgoznak a modellel, és kiválasztanak egy nézetet a felhasználói felület megjelenítéséhez. Egy .NET MVC alkalmazásban a nézet csak információkat jelenít meg, a vezérlő pedig a felhasználói bevitelt és interakciót kezeli és reagál az MVC műveleti szűrőinek használatával.

Például a vezérlő kezeli a lekérdezési karakterlánc értékeket, és átadja ezeket a modellnek.

Webes űrlapok kontra MVC

paraméterek Webűrlapok MVC
Modell Az ASP.NET webes űrlapok eseményvezérelt fejlesztési modellt követnek. Az ASP.NET MVC MVC minta alapú fejlesztési modellt használ.
óta használt 2002 óta létezik Először 2009-ben adták ki
Nézet állapot támogatása Az ASP.NET webes űrlap támogatja a nézetállapotot az ügyféloldali állapotkezeléshez. A .NET MVC nem támogatja a nézetállapotot.
URL típus Az ASP.NET webes űrlap fájlalapú URLs. Ez azt jelenti, hogy a fájlnév létezik a URLés fizikailag is létezniük kell. Az ASP.NET MVC útvonal-alapú URLez azt jelenti, hogy URLamelyek a vezérlőkhöz és a műveletekhez vannak átirányítva.
Szintaxis Az ASP.NET webes űrlapok a webes űrlapok szintaxisát követik. Az ASP.NET MVC a testreszabható szintaxist követi.
Nézet típusa Webes űrlap, a nézetek szorosan összekapcsolódnak Code mögött (ASPX-CS), azaz logika. Az MVC, a Views és a logika mindig külön tárolva van.
Egységes megjelenés és érzet Az egységes megjelenés érdekében mesteroldalakkal rendelkezik. Az ASP.NET MVC elrendezései egységes megjelenést biztosítanak.
Code Reus képesség A Web Form felhasználói vezérlőket kínál a kód újrafelhasználásához. Az ASP.NET MVC részleges nézeteket kínált a kód újrafelhasználhatóságára vonatkozóan.
A HTML vezérlése Less a renderelt HTML vezérlése. Teljes ellenőrzés a HTML felett
Állami irányítás A vezérlők automatikus állapotkezelése. Kézi állapotkezelés.
TDD támogatás Gyenge vagy egyéni TDD szükséges. Ösztönzi és magában foglalja a TDD-t.

Az ASP.NET MVC előnyei

  • Alapértelmezés szerint jól karbantartható alkalmazások
  • Lehetővé teszi az alkalmazás bármely összetevőjének cseréjét.
  • Jobb támogatás a tesztvezérelt fejlesztéshez
  • Az összetett alkalmazások könnyen kezelhetők a Modell, View és Controllers felosztás miatt.
  • Robusztus útválasztó mechanizmus elülső vezérlőmintával
  • Jobb szabályozást kínál az alkalmazások viselkedése felett, mivel kiküszöböli a nézet állapotát és a szerver alapú űrlapokat
  • A .NET MVC alkalmazásokat fejlesztőkből és webdesignerekből álló nagy csapatok támogatják.
  • Több szabályozást kínál az alkalmazás viselkedése felett. Ezenkívül optimalizált sávszélességet használ a szerverhez intézett kérésekhez

Az ASP.NET MVC hátrányai

  • A tervezőoldal előnézete nem látható úgy, mint az .aspx oldalé.
  • A programot minden alkalommal le kell futtatni, hogy lásd a tényleges felépítését.
  • Az alkalmazás folyamatának megértése kihívást jelenthet
  • Meglehetősen bonyolult a kivitelezése, így kis szintű alkalmazásokhoz nem ideális megoldás
  • Nehéz megtanulni az MVC-t az ASP.NET-hez, mivel az MVC-minta nagy megértését igényli

Ajánlott gyakorlatok az ASP.NET MVC használatához

  • Hozz létre külön assemblyt a MODEL számára nagy és összetett kód esetén, hogy elkerüld a nem kívánt helyzeteket.
  • A modellnek tartalmaznia kell az üzleti logikát, a munkamenet-karbantartást, az érvényesítési részt és az adatlogikai részt.
  • A VIEW nem tartalmazhat üzleti logikát és munkamenet-karbantartást, a ViewData használatával érheti el az adatokat a View-ban
  • Az üzleti logikának és az adatokhoz való hozzáférésnek soha nem szabadna előfordulnia a Controllerben.
  • A vezérlő csak a nézet előkészítéséért és visszaküldéséért, a modellhívásért, a műveletre való átirányításért, stb.
  • Töröld a demókódot az alkalmazásból a létrehozáskor (AccountController törlése)
  • Csak meghatározott nézetmotort használjon HTML-jelölés létrehozásához a nézetből, mivel ez a HTML és a programozási kód kombinációja.

GYIK

Igen. A GitHub Copilot képes Controller osztályt generálni action metódusokkal, route attribútumokkal és hozzájuk illő Razor nézetekkel. RevA projekthez való hozzáadása előtt tekintse meg a generált kódot a helyes modellkötés és engedélyezés szempontjából.

A gépi tanulási asszisztensek képesek webűrlap-oldalakat vezérlőkhöz és nézetekhez rendelni, a mögöttes kódot műveleti metódusokká alakítani, és megjelölni a ViewState használatát. A fejlesztő továbbra is validálja az útvonalválasztást, a modellkötést és minden migrált üzleti szabályt.

A ViewData egy karakterlánccal kulcsolt objektumok szótára, amely egy kérést túlél. A ViewBag egy dinamikus burkoló a ViewData felett. A TempData munkamenet-állapotot használ, és egy átirányítást is túlél, így két egymást követő kérés közötti adatátvitelre szolgál.

Az irányítómotor egy bejövő URL a RouteConfig-ban regisztrált sablonokkal szemben. Amikor egy sablon egyezik, az MVC kiválasztja a vezérlőt és a műveletet, paramétereket köt hozzájuk, és meghívja a műveletet egy ActionResult visszaadásához.

A Razor egy kompakt szintaxis C# vagy VB.NET beágyazásához .cshtml vagy .vbhtml fájlokba. A @ karaktert használja a HTML-ről kódra való váltásra, a sablonokat olvashatóvá teszi, és futásidőben gyors, erősen típusos osztályokká fordul.

A klasszikus ASP.NET MVC a teljes .NET keretrendszeren fut, és Windows csak. Az ASP.NET Core MVC .NET Core-on fut Windows, Linux és macOS, egységes vezérlőmodellt használ webes API-val, és beépített függőségi injekciót kínál.

Használjon ASP.NET Identity-t vagy külső szolgáltatót, például Azure AD bejelentkezéshez. A hozzáférés korlátozásához adjon hozzá egy vezérlőt vagy műveletet az [Authorize] attribútumhoz, és használjon szerepkör- vagy házirend-paramétereket a részletesebb szabályokhoz.

Hozz létre egy Controller példányt egy tesztmetódusban, fecskendezz be hamis vagy ál-szolgáltatásokat a konstruktoron keresztül, hívd meg a műveletet, és állítsd be, hogy a visszaadott ActionResult megegyezik a várt nézetnévvel, modellel vagy átirányítási céllal.

Foglald össze ezt a bejegyzést a következőképpen: