Výukový program ASP.NET MVC pro začátečníky: Co je, Architecture

⚡ Chytré shrnutí

ASP.NET MVC je open source Microsoft Framework, který rozděluje webovou aplikaci na vrstvy Model, View a Controller, což vývojářům poskytuje plnou kontrolu nad HTML, testovatelný kód, čisté směrování a odlehčenou alternativu ke klasickým webovým formulářům.

  • 🏛️ Archistruktura: Model uchovává data domény, View vykresluje uživatelské rozhraní pomocí Razoru a Controller zprostředkovává každý požadavek mezi nimi.
  • Proč MVC: Opravuje režijní náklady na ViewState a výkon webových formulářů a umožňuje čisté směrování a vývoj řízený testy.
  • 🔀 Směrování: Na základě trasy URLmapují příchozí požadavky na akce kontroleru a nahrazují soubory .aspx. URLs cestami optimalizovanými pro vyhledávače.
  • 🧪 Testovatelnost: Kontroler a model lze jednotkově testovat izolovaně, protože pohledy neobsahují žádnou obchodní logiku.
  • 🇧🇷 Porovnání webových formulářů: Webové formuláře používají serverové ovládací prvky řízené událostmi; MVC používá akce řízené požadavky s manuální správou stavu.
  • 🛠️ Nejlepší praxe: Zachovejte obchodní logiku v modelu, udržujte Controllery „tenké“ a používejte částečné pohledy nebo rozvržení k opětovnému použití značek.

Výukový program ASP.NET MVC

Co je ASP.NET MVC?

ASP.NET MVC je open source webový vývojový rámec od Microsoft která poskytuje architekturu Model View Controller. ASP.NET MVC nabízí alternativu k webovým formulářům ASP.NET pro tvorbu webových aplikací. Je součástí platformy .NET pro tvorbu, nasazování a spouštění webových aplikací. Webové aplikace a webové stránky můžete vyvíjet pomocí HTML, CSS, jQuery, JavaSkript atd.

Naučte se MVC s tímto výukovým programem ASP.NET MVC, který pokrývá všechny základní koncepty MVC pro začátečníky:

Proč ASP.NET MVC?

Přestože webové formuláře byly velmi úspěšné, Microsoft myšlenka na vývojping ASP.NET MVC. Hlavním problémem webových formulářů v ASP.NET je výkon.

V webové aplikace, existují čtyři hlavní aspekty, které definují výkon:-

  • Problémy s dobou odezvy
  • Problém testování jednotek
  • HTML přizpůsobení
  • Znovupoužitelnost třídy code-behind

ASP.NET MVC vyniká ve výše uvedených parametrech.

Historie verzí MVC

ASP.NET MVC1

  • Vydáno 13. března 2009
  • Běží na .NET 3.5
  • Visual Studio 2008
  • Architektura vzorů MVC s WebForm Engine
  • Mezi hlavní funkce patří Html a Testování jednotek, Pomocníci Ajaxu, Směrování atd.

ASP.NET MVC2

  • Tato verze byla vydána 10. března 2010
  • Běží na .NET 3.5, 4.0 a s dalšími verzemi Microsoft Visual Studio 2008
  • Zahrňte funkce jako šablonované pomocníky, pomocníky uživatelského rozhraní s automatickým scaffoldingem a přizpůsobitelné šablony
  • Podporuje DataAnnotations Attributes pro použití ověření modelu na straně klienta a serveru

ASP.NET MVC3

  • Vyšlo 13. ledna 2011
  • Běží na .NET 4.0, XNUMX a s Microsoft Visual Studio 2010
  • Použití NuGet dodávat software a umožňuje vám spravovat závislosti napříč platformou
  • Lepší JavaPodpora skriptů s validací jQuery a vazbou JSON
  • Nabízí funkce, jako je zobrazovací engine Razor a vylepšené atributy datových anotací pro validaci modelu na straně klienta i serveru.

ASP.NET MVC4

  • Tato verze byla vydána v srpnu 2012
  • Běží na .NET 4.0, 4.5 a s Visual Studio 2010 a Visual Studio 2012
  • Vylepšení výchozích šablon projektů
  • Nabízí funkce, jako je šablona mobilního projektu pomocí jQuery Mobile, podpora úloh pro asynchronní řadiče, sdružování, minifikace atd.

ASP.NET MVC5

  • Vyšlo 17. října 2013
  • Běží na .NET 4.5, 4.5.1 a s Visual Studiem 2012 a Visual Studiem 2013
  • Podporuje směrování atributů v MVC

Vlastnosti MVC

  • Snadná testovatelnost bez tření
  • Plná kontrola nad vaším HTML, JavaSkript a URLs
  • Pákový efekt existující ASP.NET Funkce
  • Nová možnost prezentace pro ASP.NET
  • Jednodušší způsob programování v ASP.NET
  • Jasné oddělení logiky: Model, View, Controller
  • Testem řízený vývoj
  • Podpora paralelního vývoje

Na co si pamatovat při vytváření aplikace MVC

Zde je několik užitečných věcí v tomto tutoriálu ASP.NET MVC, které si musíte zapamatovat při vytváření aplikace MVC:

  • Musíte si uvědomit, že ASP.NET MVC NENÍ náhradou aplikací založených na webových formulářích ASP.NET.
  • Přístup k vývoji MVC aplikací musí být určen na základě požadavků aplikace a funkcí poskytovaných ASP.NET MVC, aby vyhovoval specifickým potřebám vývoje.
  • Proces vývoje aplikací s ASP.NET MVC je složitější ve srovnání s aplikacemi založenými na webových formulářích.
  • Udržitelnost aplikací je vždy vyšší s oddělením aplikačních úloh.

Architektonický vzor MVC

Architektonický vzor MVC

MVC je softwarová architektura, která se řídí metodou oddělení zájmů. V tomto modelu jsou .NET aplikace rozděleny do tří vzájemně propojených částí, které se nazývají Model, View a Controller.

Cílem vzoru MVC je, aby každá z těchto částí mohla být vyvinuta, testována v relativní izolaci a také kombinována za účelem vytvoření velmi robustní aplikace.

Pojďme se na ně všechny podívat podrobněji:

modely

Objekty modelu jsou části aplikace, které implementují logiku aplikace datová doména. Načítá a ukládá stav modelu do databáze. Objekt produktu může například získat informace z a databáze, operujte na něm. Poté zapište informace zpět do tabulky produktů na serveru SQL.

Zobrazení

Zobrazení (views) jsou komponenty, které se používají k zobrazení uživatelského rozhraní (UI) aplikace, v MVC nazývaného také viewmodel. Zobrazuje .NET MVC aplikaci, která je vytvořena z dat modelu.

Běžným příkladem by bylo zobrazení pro úpravy tabulky položek. Zobrazuje textová pole, vyskakovací okna a zaškrtávací políčka podle aktuálního stavu produktů a objektů.

kontrolor

Kontroléry zpracovávají interakci s uživatelem, pracují s modelem a vybírají zobrazení pro vykreslení daného uživatelského rozhraní. V aplikaci .NET MVC zobrazení pouze zobrazuje informace, kontroler spravuje a reaguje na vstupy a interakci uživatele pomocí filtrů akcí v MVC.

Řadič například spravuje hodnoty řetězce dotazů a předává tyto hodnoty modelu.

Webové formuláře vs. MVC

parametry WebFormuláře MVC
Model Webové formuláře ASP.NET sledují model vývoje řízeného událostmi. ASP.NET MVC používá vývojový model založený na vzorech MVC.
Používaný od Existuje od roku 2002 Poprvé byla vydána v roce 2009
Podpora pro zobrazení stavu Webový formulář ASP.NET podporuje zobrazení stavu pro správu stavu na straně klienta. .NET MVC nepodporuje stav zobrazení.
URL typ Webový formulář ASP.NET je založen na souborech URLs. To znamená, že název souboru existuje v URLa musí fyzicky existovat. ASP.NET MVC je založen na trasách URLto znamená URLkteré jsou přesměrovány na controllery a akce.
Syntax Webové formuláře ASP.NET dodržují syntaxi webových formulářů. ASP.NET MVC se řídí přizpůsobitelnou syntaxí.
Typ zobrazení Webový formulář, zobrazení jsou úzce propojeny s Code za (ASPX-CS), tj. logika. MVC, pohledy a logika jsou vždy uchovávány odděleně.
Konzistentní vzhled a dojem Má vzorové stránky pro konzistentní vzhled. ASP.NET MVC má rozvržení pro konzistentní vzhled.
Code Opakovatelnost Webový formulář nabízí uživatelské ovládací prvky pro opětovné použití kódu. ASP.NET MVC nabízí částečné zobrazení pro opětovné použití kódu.
Ovládání pro HTML Less kontrolu nad vykresleným HTML. Plná kontrola nad HTML
Řízení státu Automatické řízení stavu ovládacích prvků. Manuální správa stavu.
podpora TDD Je vyžadováno slabé nebo vlastní TDD. Podporuje a zahrnuje TDD.

Výhody ASP.NET MVC

  • Ve výchozím nastavení vysoce udržovatelné aplikace
  • Umožňuje vám nahradit jakoukoli součást aplikace.
  • Lepší podpora pro vývoj řízený testem
  • Složité aplikace se snadno spravují díky rozdělení Model, View a Controllers.
  • Nabízí robustní směrovací mechanismus s předním vzorem ovladače
  • Nabízí lepší kontrolu nad chováním aplikace s eliminací stavu zobrazení a serverových formulářů
  • Aplikace .NET MVC jsou podporovány velkými týmy vývojářů a webových designérů
  • Nabízí větší kontrolu nad chováním aplikace. Používá také optimalizovanou šířku pásma pro požadavky na server

Nevýhody ASP.NET MVC

  • Náhled stránky s návrhem nelze zobrazit jako stránku .aspx.
  • Abyste viděli skutečný návrh, musíte program pokaždé spustit.
  • Pochopení toku aplikace může být náročné
  • Jeho implementace je poměrně komplikovaná, takže není ideální volbou pro aplikace na malé úrovni
  • Je těžké se naučit MVC pro ASP.NET, protože to vyžaduje velké porozumění vzoru MVC

Nejlepší postupy při používání ASP.NET MVC

  • V případě velkého a složitého kódu vytvořte pro MODEL samostatnou sestavu, abyste předešli nežádoucím situacím.
  • Model by měl zahrnovat obchodní logiku, údržbu relace, validační část a datovou logiku.
  • VIEW by nemělo obsahovat žádnou obchodní logiku a údržbu relací, pro přístup k datům v View použijte ViewData
  • Obchodní logika a přístup k datům by se nikdy neměly vyskytovat v Controlleru.
  • Správce by měl být odpovědný pouze za přípravu a vrácení pohledu, volání modelu, přesměrování na akci atd.
  • Odstranění demo kódu z aplikace při jejím vytváření (Odstranit AccountController)
  • K vytvoření značek HTML z vašeho zobrazení používejte pouze konkrétní zobrazovací modul, protože se jedná o kombinaci HTML a programovacího kódu.

Nejčastější dotazy

Ano. GitHub Copilot dokáže vygenerovat třídu Controller s metodami akcí, atributy trasy a odpovídajícími zobrazeními Razor. RevPřed přidáním do projektu si prohlédněte vygenerovaný kód pro správné navázání modelu a autorizaci.

Asistenti strojového učení mohou mapovat stránky webových formulářů na Controllery a Views, překládat kód na pozadí do metod akcí a označovat použití ViewState. Vývojář stále ověřuje směrování, vazbu modelu a každé migrované obchodní pravidlo.

ViewData je slovník objektů s klíčem typu string, který přežije jeden požadavek. ViewBag je dynamický obal nad ViewData. TempData používá stav relace a přežije jedno přesměrování, takže se používá k předávání dat mezi dvěma po sobě jdoucími požadavky.

Směrovací modul porovnává příchozí URL proti šablonám registrovaným v RouteConfig. Když se šablona shoduje, MVC vybere kontroler a akci, naváže všechny parametry a vyvolá akci, aby vrátila ActionResult.

Razor je kompaktní syntax pro vkládání C# nebo VB.NET do souborů .cshtml nebo .vbhtml. Používá @ k přepínání z HTML do kódu, udržuje šablony čitelné a za běhu se kompiluje do rychlých, silně typovaných tříd.

Klasické ASP.NET MVC běží na plném .NET Frameworku a Windows pouze. ASP.NET Core MVC běží na .NET Core napříč Windows, Linux a macOS, používá unifikovaný model kontroleru s webovým API a nabízí vestavěné vkládání závislostí.

Použijte ASP.NET Identity nebo externího poskytovatele, například Azure AD pro přihlášení. Ozdobte kontroleru nebo akci atributem [Authorize] pro omezení přístupu a použijte parametry rolí nebo zásad pro podrobnější pravidla.

Vytvořte instanci Controlleru v testovací metodě, vložte falešné nebo simulované služby prostřednictvím konstruktoru, vyvolejte akci a prohlaste, že vrácená ActionResult odpovídá očekávanému názvu zobrazení, modelu nebo cíli přesměrování.

Shrňte tento příspěvek takto: