Samouczek ASP.NET MVC dla początkujących: Co to jest, Architektura

⚡ Inteligentne podsumowanie

ASP.NET MVC jest oprogramowaniem typu open source Microsoft struktura, która dzieli aplikację internetową na warstwy modelu, widoku i kontrolera, zapewniająca programistom pełną kontrolę nad kodem HTML, możliwość testowania kodu, przejrzyste routing i lekką alternatywę dla klasycznych formularzy internetowych.

  • 🏛️. Archistruktura: Model przechowuje dane domeny, widok renderuje interfejs użytkownika za pomocą narzędzia Razor, a kontroler pośredniczy w każdym żądaniu między nimi.
  • Dlaczego MVC: Naprawia problem stanu widoku i obciążenia wydajności formularzy internetowych, umożliwia czyste routing i testowanie sterowane programowaniem.
  • 🔀 Routing: Oparte na trasie URLmapuje przychodzące żądania do akcji kontrolera, zastępując plik oparty na .aspx URLz przyjaznymi dla SEO ścieżkami.
  • 🧪 Testowalność: Kontroler i model można testować jednostkowo w izolacji, ponieważ widoki nie zawierają żadnej logiki biznesowej.
  • ⚖️. Porównanie formularzy internetowych: Web Forms wykorzystuje sterowanie serwerem sterowane zdarzeniami; MVC wykorzystuje akcje sterowane żądaniami z ręcznym zarządzaniem stanem.
  • 🛠️. Najlepsze praktyki: Zachowaj logikę biznesową w modelu, zadbaj o to, aby kontrolery były cienkie i używaj częściowych widoków lub układów, aby ponownie wykorzystywać znaczniki.

Samouczek ASP.NET MVC

Co to jest ASP.NET MVC?

ASP.NET MVC to platforma do tworzenia stron internetowych o otwartym kodzie źródłowym, stworzona przez Microsoft Zapewnia architekturę Model View Controller. ASP.NET MVC oferuje alternatywę dla formularzy internetowych ASP.NET do tworzenia aplikacji internetowych. Jest częścią platformy .NET do tworzenia, wdrażania i uruchamiania aplikacji internetowych. Możesz tworzyć aplikacje internetowe i strony internetowe za pomocą HTML, CSS, jQuery, JavaSkrypt itp.

Poznaj MVC dzięki temu samouczkowi ASP.NET MVC, który obejmuje wszystkie podstawowe koncepcje MVC dla początkujących:

Dlaczego ASP.NET MVC?

Chociaż formularze internetowe okazały się bardzo skuteczne, Microsoft pomyślał o rozwojuping ASP.NET MVC. Głównym problemem związanym z formularzami internetowymi ASP.NET jest wydajność.

W Aplikacja internetowaistnieją cztery główne aspekty definiujące wydajność:

  • Problemy z czasem reakcji
  • Problem testowania jednostkowego
  • Dostosowywanie HTML
  • Możliwość ponownego użycia klasy związanej z kodem

ASP.NET MVC wyróżnia się pod względem powyższych parametrów.

Historia wersji MVC

ASP.NETMVC1

  • Wydany 13 marca 2009 roku
  • Działa na platformie .NET 3.5
  • Visual Studio 2008
  • Architektura wzorca MVC z silnikiem WebForm
  • Główne funkcje obejmują HTML i Testów jednostkowych, Pomocnicy Ajax, Routing itp.

ASP.NETMVC2

  • Ta wersja została wydana 10 marca 2010 r
  • Działa na platformie .NET 3.5, 4.0 i z Microsoft Visual Studio 2008
  • Zawiera funkcje takie jak pomocnicy szablonowi, pomocnicy interfejsu użytkownika z automatycznym rusztowaniem i konfigurowalnymi szablonami
  • Obsługuje atrybuty DataAnnotations w celu zastosowania walidacji modelu po stronie klienta i serwera

ASP.NETMVC3

  • Został wydany 13 stycznia 2011 roku
  • Działa na platformie .NET 4.0, XNUMX i nowszych Microsoft visual Studio 2010
  • Korzystanie z NuGet do dostarczania oprogramowania i umożliwia zarządzanie zależnościami na platformie
  • Ulepsz Swój JavaObsługa skryptów z walidacją jQuery i powiązaniem JSON
  • Oferuje funkcje takie jak silnik widoku Razor i ulepszone atrybuty adnotacji danych do walidacji modelu zarówno po stronie klienta, jak i serwera

ASP.NETMVC4

  • Ta wersja została wydana w sierpniu 2012 roku
  • Działa na platformie .NET 4.0, 4.5 oraz w środowisku Visual Studio 2010 i Visual Studio 2012
  • Ulepszenia domyślnych szablonów projektów
  • Oferuje funkcje takie jak szablon projektu mobilnego wykorzystujący jQuery Mobile, obsługę zadań dla kontrolerów asynchronicznych, pakietowanie, minifikację itp.

ASP.NETMVC5

  • Wydany 17 października 2013 r.
  • Działa w środowisku .NET 4.5, 4.5.1 oraz z programem Visual Studio 2012 i Visual Studio 2013
  • Obsługuje routing atrybutów w MVC

Cechy MVC

  • Łatwe i bezproblemowe testowanie
  • Pełna kontrola nad Twoim kodem HTML, JavaSkrypt i URLs
  • Wykorzystaj istniejącą dźwignię ASP.NET Udogodnienia
  • Nowa opcja prezentacji dla ASP.NET
  • Prostszy sposób programowania ASP.NET
  • Wyraźne oddzielenie logiki: Model, Widok, Kontroler
  • Rozwój oparty na testach
  • Wsparcie rozwoju równoległego

O czym należy pamiętać tworząc aplikację MVC

Oto kilka przydatnych rzeczy w tym samouczku ASP.NET MVC, o których musisz pamiętać podczas tworzenia aplikacji MVC:

  • Należy pamiętać, że ASP.NET MVC NIE zastępuje aplikacji ASP.NET opartych na formularzach internetowych
  • Podejście do tworzenia aplikacji MVC musi zostać określone na podstawie wymagań aplikacji i funkcji udostępnianych przez ASP.NET MVC, tak aby odpowiadało konkretnym potrzebom programistycznym.
  • Proces tworzenia aplikacji w ASP.NET MVC jest bardziej złożony w porównaniu z aplikacjami opartymi na formularzach internetowych.
  • Łatwość konserwacji aplikacji jest zawsze większa dzięki oddzieleniu zadań aplikacji.

Wzorzec architektoniczny MVC

Wzorzec architektoniczny MVC

MVC to wzorzec architektury oprogramowania, który opiera się na metodzie separacji obszarów zainteresowania. W tym modelu aplikacje .NET są podzielone na trzy powiązane ze sobą części: Model, Widok i Kontroler.

Celem wzorca MVC jest to, że każdą z tych części można opracować, przetestować we względnej izolacji, a także połączyć w celu stworzenia bardzo solidnej aplikacji.

Przyjrzyjmy się im wszystkim szczegółowo:

modele

Obiekty modelu to części aplikacji, które implementują logikę aplikacji domena danych. Pobiera i przechowuje stan modelu w bazie danych. Na przykład obiekt produktu może pobierać informacje z pliku baza danych, wykonaj na nim operację. Następnie zapisz informacje z powrotem do tabeli produktów na serwerze SQL.

odwiedzajacy

Widoki to komponenty służące do wyświetlania interfejsu użytkownika (UI) aplikacji, zwanego również modelem widoku w MVC. Wyświetlają one aplikację .NET MVC utworzoną na podstawie danych modelu.

Typowym przykładem jest widok edycji tabeli Item. Wyświetla pola tekstowe, wyskakujące okienka i pola wyboru na podstawie bieżącego stanu produktów i obiektów.

kontroler

Kontrolery obsługują interakcję użytkownika, współpracują z modelem i wybierają widok do renderowania interfejsu użytkownika. W aplikacji .NET MVC widok wyświetla jedynie informacje, a kontroler zarządza danymi wejściowymi i interakcjami użytkownika oraz reaguje na nie za pomocą filtrów akcji w MVC.

Na przykład kontroler zarządza wartościami ciągu zapytania i przekazuje te wartości do modelu.

Formularze internetowe a MVC

Parametry Formularze internetowe MVC
Model Formularze internetowe ASP.NET korzystają z modelu programowania sterowanego zdarzeniami. ASP.NET MVC wykorzystuje model programowania bazujący na wzorcach MVC.
Używany od Istnieje od 2002 roku Po raz pierwszy został wydany w 2009 roku
Obsługa stanu widoku ASP.NET Web Form obsługuje widok stanu w celu zarządzania stanem po stronie klienta. .NET MVC nie obsługuje stanu widoku.
URL rodzaj Formularz internetowy ASP.NET ma strukturę opartą na plikach URLs. Oznacza to, że nazwa pliku istnieje w URLi muszą istnieć fizycznie. ASP.NET MVC ma oparte na trasach URLco to znaczy URLktóre są przekierowywane do kontrolerów i akcji.
Składnia Formularze internetowe ASP.NET korzystają ze składni formularzy internetowych. ASP.NET MVC korzysta ze składni, którą można dostosować.
Typ widoku Formularz internetowy, widoki są ściśle powiązane Code za (ASPX-CS), czyli logiką. MVC, widoki i logika są zawsze przechowywane osobno.
Spójny wygląd i styl Posiada strony wzorcowe zapewniające spójny wygląd. ASP.NET MVC ma układy zapewniające spójny wygląd.
Code Wielokrotny użytek Formularz internetowy oferuje kontrolę użytkownika umożliwiającą ponowne wykorzystanie kodu. ASP.NET MVC oferuje częściowe widoki umożliwiające ponowne wykorzystanie kodu.
Kontrola HTML Less kontrolę nad renderowanym HTML. Pełna kontrola nad HTML
Zarządzanie państwowe Automatyczne zarządzanie stanem kontroli. Ręczne zarządzanie stanem.
Wsparcie TDD Wymagany słaby lub niestandardowy TDD. Zachęca i uwzględnia TDD.

Zalety ASP.NET MVC

  • Domyślnie aplikacje łatwe w utrzymaniu
  • Pozwala na wymianę dowolnego komponentu aplikacji.
  • Lepsze wsparcie dla rozwoju opartego na testach
  • Złożonymi aplikacjami można łatwo zarządzać dzięki podziałowi na Model, Widok i Kontrolery.
  • Oferuje solidny mechanizm routingu z wzorcem kontrolera przedniego
  • Oferuje lepszą kontrolę nad zachowaniem aplikacji dzięki eliminacji stanu widoku i formularzy serwerowych
  • Aplikacje .NET MVC są obsługiwane przez duże zespoły programistów i projektantów stron internetowych
  • Zapewnia większą kontrolę nad zachowaniem aplikacji. Wykorzystuje również zoptymalizowaną przepustowość dla żądań kierowanych do serwera

Wady ASP.NET MVC

  • Nie można zobaczyć podglądu strony projektu, takiej jak strona .aspx.
  • Musisz uruchomić program za każdym razem, aby zobaczyć jego rzeczywisty wygląd.
  • Zrozumienie przepływu aplikacji może być trudne
  • Jest to dość skomplikowane we wdrożeniu, więc nie jest idealną opcją dla małych zastosowań
  • Trudno jest nauczyć się MVC dla ASP.NET, ponieważ wymaga doskonałego zrozumienia wzorca MVC

Najlepsze praktyki przy korzystaniu z ASP.NET MVC

  • W przypadku dużego i złożonego kodu utwórz osobny zestaw dla MODELU, aby uniknąć niepożądanych sytuacji
  • Model powinien obejmować logikę biznesową, utrzymanie sesji, część sprawdzającą i część logiki danych.
  • VIEW nie powinien zawierać żadnej logiki biznesowej ani obsługi sesji, użyj ViewData, aby uzyskać dostęp do danych w View
  • Logika biznesowa i dostęp do danych nigdy nie powinny mieć miejsca w kontrolerze
  • Kontroler powinien odpowiadać jedynie za przygotowanie i zwrócenie widoku, wywołanie modelu, przekierowanie do akcji itp.
  • Usuń kod demonstracyjny z aplikacji podczas jej tworzenia (Usuń kontroler konta)
  • Do tworzenia znaczników HTML na podstawie widoku używaj tylko określonego silnika widoku, ponieważ jest to połączenie HTML i kodu programowania.

FAQ

Tak. GitHub Copilot może wygenerować klasę kontrolera z metodami akcji, atrybutami trasy i pasującymi widokami Razor. RevPrzed dodaniem do projektu sprawdź wygenerowany kod pod kątem poprawnego powiązania modelu i autoryzacji.

Asystenci uczenia maszynowego mogą mapować strony formularzy internetowych na kontrolery i widoki, tłumaczyć kod źródłowy na metody akcji oraz sygnalizować użycie ViewState. Deweloper nadal weryfikuje routing, powiązanie modelu i każdą zmigrowaną regułę biznesową.

ViewData to słownik obiektów z kluczem w postaci ciągu znaków, który przetrwa jedno żądanie. ViewBag to dynamiczny wrapper ViewData. TempData wykorzystuje stan sesji i przetrwa jedno przekierowanie, dlatego służy do przesyłania danych między dwoma kolejnymi żądaniami.

Silnik routingu dopasowuje przychodzące URL względem szablonów zarejestrowanych w RouteConfig. Gdy szablon pasuje, MVC wybiera kontroler i akcję, wiąże wszelkie parametry i wywołuje akcję, aby zwrócić ActionResult.

Razor to kompaktowa składnia do osadzania kodu C# lub VB.NET w plikach .cshtml lub .vbhtml. Używa znaku @ do przełączania się między HTML a kodem źródłowym, zapewnia czytelność szablonów i kompiluje się do szybkich, silnie typizowanych klas w czasie wykonywania.

Klasyczny ASP.NET MVC działa w oparciu o pełną platformę .NET Framework i Windows tylko. ASP.NET Core MVC działa na platformie .NET Core Windows, Linux i macOS, wykorzystuje ujednolicony model kontrolera z interfejsem API sieci Web i oferuje wbudowaną funkcję wstrzykiwania zależności.

Użyj ASP.NET Identity lub zewnętrznego dostawcy, takiego jak Azure AD do logowania. Udekoruj kontroler lub akcję atrybutem [Authorize], aby ograniczyć dostęp, i użyj parametrów roli lub zasad w celu uzyskania bardziej szczegółowych reguł.

Utwórz instancję kontrolera w metodzie testowej, wstrzyknij fałszywe lub pozorowane usługi za pomocą konstruktora, wywołaj akcję i potwierdź, że zwrócony ActionResult pasuje do oczekiwanej nazwy widoku, modelu lub celu przekierowania.

Podsumuj ten post następująco: