Blog
Blog HelionBlog HelionBlog HelionBlog Helion
  • Artykuły
  • Autorzy
  • Recenzje
  • Konkursy

MVC — wprowadzenie do wzorca

    Blog.helion.pl Artykuły MVC — wprowadzenie do wzorca
    NastępnyPoprzedni

    MVC — wprowadzenie do wzorca

    By Jerzy Piechowiak | Artykuły, Programowanie | Brak komentarzy | 15 grudnia, 2016 | 3

    Stworzenie aplikacji, w której da się jawnie rozdzielić warstwy: logiki, prezentacji oraz danych, nie jest zadaniem trywialnym. W przeszłości wielu mądrych ludzi rwało sobie włosy z głowy, rozpatrując to zagadnienie. 

    Jak oddzielić logikę biznesową od warstwy prezentacji, w sytuacji gdy użytkowana przez nas technologia operuje na event handlerach/callbackach przypisanych do określonych zdarzeń wybranych przez nas kontrolek? Gdzie w tym wszystkim powinien znaleźć się model danych? Co by się stało, gdybyśmy chcieli wydzielić powtarzalny fragment logiki biznesowej?

    Podobnych pytań jest sporo, ale odpowiedź można znaleźć, oczywiście przeglądając katalogi wzorców projektowych i dobrych praktyk. Nasza uwaga powinna skupić się na tzw. wzorcach architektonicznych, do których to zaliczany jest tytułowy MVC (model-view-controller), a także jego kolega MVVM (model-view-viewmodel). Dziś zajmę się tym pierwszym, natomiast do drugiego mam zamiar wrócić w kolejnym wpisie na blogu.

     

    Idea wzorca MVC

     

    Wzorzec MVC dba o to, by elementy naszej aplikacji (czy też strony internetowej) były odpowiednio odseparowane od siebie. Literka V, reprezentująca widok, jawnie sugeruje, że tego rodzaju wzorzec jest skierowany stricte do wdrożeń wykorzystujących GUI jako integralny element tworzonego rozwiązania.

    Dzięki podzieleniu aplikacji na trzy warstwy znacznie zwiększamy reużywalność kodu. Za pomocą MVC możemy np. kilkukrotnie użyć tego samego modelu danych czy też powtórzyć akcje kontrolera. Największy problem stanowi oczywiście widok, który w większości technologii jest tworzony częściowo statycznie. Poniżej skrócona charakterystyka poszczególnych elementów tego wzorca projektowego.

     

    Controller

     

    Kontroler to w pewnym sensie miejsce, od którego wszystko się zaczyna we wzorcu MVC (mimo że kryje się pod ostatnią literą nazwy).

    W normalnej aplikacji to właśnie kontroler jest swoistą pierwszą linią w aplikacji:

    • Przyjmuje dane przekazane przez użytkownika.
    • Na podstawie parametrów pobiera informacje z bazy danych/serwisu.
    • Dokonuje przetworzenia danych.
    • Wypełnia model.
    • Przekazuje model do widoku.
    • Reaguje na interakcje użytkownika stymulowane z poziomu widoku.

     

    To, co faktycznie robi kontroler, częściowo jest uzależnione od konkretnej implementacji.

     

    Model

     

    Dane przetworzone przez kontroler powinny trafić do modelu. Model przeważnie jest więc prostą klasą typu POCO (lub zestawem takich klas), która przechowuje przetworzone dane. W tego rodzaju klasach nie powinno być żadnej logiki biznesowej. Model jest przekazywany z kontrolera do widoku, co umożliwia obustronną komunikację między tymi elementami.

    Model powinien być maksymalnie prosty, bez zbędnych elementów. Klasy użyte w modelu nie powinny być klasami, które są używane np. w ORM-ie do bazy danych.

     

    Widok

     

    Ostatnim elementem układanki jest widok. To właśnie do niego ostatecznie trafia klasa modelu. Widok odpowiada za:

    • Wyświetlanie layoutu na podstawie modelu.
    • Obsługę interakcji użytkownika i przekazywanie jego żądań bezpośrednio do kontrolera.
    • Pobieranie danych wprowadzonych przez użytkownika w formularzu i przekazywanie ich dalej do kontrolera.

    Widok nie powinien być z kolei odpowiedzialny za jakiekolwiek operacje na modelu danych.

     

    ASP.NET MVC — najpopularniejsze „wdrożenie” wzorca MVC

     

    Na podstawie powyższych informacji już w tym momencie moglibyście przygotować poszczególne elementy tej architektury. Należy jednak pamiętać o pewnej dość istotnej informacji — coś musi obsłużyć MVC. Mechanizmy do obsługi MVC bywają bardzo często dużo bardziej skomplikowane od samej architektury, dlatego warto, w miarę możliwości, skorzystać z gotowych rozwiązań.

    Prawdopodobnie jednym z najpopularniejszych „wdrożeń” tego wzorca jest ASP.NET MVC. Warto przyjrzeć się tej technologii, ponieważ oferuje ona kilka interesujących rozwiązań, m.in. łatwą opcję wpięcia własnego kontenera IoC, wbudowany mechanizm routingu aplikacji czy też specjalną składnię Razor.

    Szczegółowe informacje na temat ASP.NET MVC można znaleźć na oficjalnej stronie projektu: http://www.asp.net/mvc.

     

    Jerzy Piechowiak

    Altcontroldelete.pl

     

    asp.net, Jerzy Piechowiak, mvc, programowanie, wzorce
    Avatar

    Jerzy Piechowiak

    Więcej postów od Jerzy Piechowiak

    Podobne posty

    • Przykładowa aplikacja webowa zaimplementowana w ASP .NET Core

      By Krzysztof Goljasz | Brak komentarzy

      W poprzednim artykule zainstalowaliśmy oraz stworzyliśmy pierwszą aplikację webową z wykorzystaniem frameworka .NET Core. Obecnie zajmiemy się zaimplementowaniem prostej aplikacji CRUD pracującej na silniku MS SQL Server zainstalowanym w systemie Linux.

    • Wprowadzenie do .NET Core: instalacja, konfiguracja, pierwsza aplikacja w systemie Linux

      By Krzysztof Goljasz | 1 komentarz

      W ostatnim czasie Microsoft wprowadził na rynek nowy framework o tajemniczej nazwie .NET Core, który jest na etapie intensywnego rozwoju (obecna wersja — 1.1.1). Czym jest .NET Core? To nowa wersja klasycznego frameworka .NET zCzytaj więcej…

    • Nie bój się refaktoryzacji!

      By Jerzy Piechowiak | Brak komentarzy

      Bardzo często w tytułach książek dla programistów można znaleźć określenia typu: „piękny kod”, „czysty kod”, „kod doskonały”, sugerujące, że możliwe jest napisanie programu, którego kod źródłowy jest po prostu idealny. Ale co właściwie znaczy to,Czytaj więcej…

    • Ninject — ciekawa alternatywa dla Autofaca

      By Jerzy Piechowiak | Brak komentarzy

      W poprzednim poście starałem się przedstawić podstawowe różnice między trzema głównymi sposobami rejestracji usług dostępnymi w Autofacu. Kontener ten oferuje szerokie możliwości, dobre czasy „wyciągania” usług, ma także grono wiernych użytkowników. Jednak jeśli spojrzymy na statystykiCzytaj więcej…

    • Autofac — różne sposoby rejestracji usług

      By Jerzy Piechowiak | 2 komentarze

      Gdy dobrych kilka lat temu zaczynałem programować w C#, nie miałem pojęcia o czymś takim jak kontener IoC. Każdy obiekt tworzyłem klasycznie — poprzez zastosowanie słowa kluczowego new: StringBuilder sb = new StringBuilder();

    NastępnyPoprzedni

    Znajdź post

    Bądźmy w kontakcie

    Książka dnia

    Algorytmy, struktury danych i techniki programowania dla programistów Java

    Autor: Piotr Wróblewski

    Cena: 33.50 zł 67.00 zł
    (Cena e-booka: zł zł)

    O 33,5zł taniej!

    kup teraz

    Ostatnie wpisy

    • Błyskawiczny kurs pisania skryptów powłoki
    • Przykładowa aplikacja webowa zaimplementowana w ASP .NET Core
    • Wprowadzenie do .NET Core: instalacja, konfiguracja, pierwsza aplikacja w systemie Linux
    • Grupa Helion zaprasza na szkolenia stacjonarne!
    • Hello World! Czym jest programowanie?

    Tagi

    .net agile altcontroldelete asp.net c# czysty kod debugowanie design patterns e-biznes emarketing Google Google Analytics hacking Jerzy Piechowiak kod kodowanie Krzysztof Marzec książka Maciej Dutko magazyn programista Magdalena Daniłoś marketing MVVM onepress organizacja czasu praca prograista programista programowanie prokrastynacja rafał kocisz reklama rozwój software craftsman SOLID startup techniki programowania testowanie video marketing visual studio WPF wzorce projektowe youtube zarządzanie czasem zarządzanie projektami

    Archiwum

    • lipiec 2017
    • czerwiec 2017
    • maj 2017
    • kwiecień 2017
    • marzec 2017
    • luty 2017
    • styczeń 2017
    • grudzień 2016
    • listopad 2016
    • październik 2016
    • wrzesień 2016
    • lipiec 2016
    • czerwiec 2016
    Blog wydawnictwa
    Informatyka w najlepszym wydaniu
    Strona wydawcy:
    www.helion.pl
    Księgarnia Helion.pl
    Nowości
    Bestsellery
    Promocje
    Bądźmy w kontakcie:
    Chcesz zostać autorem?
    Masz pytania do redakcji?
    Napisz do nas »
    • Artykuły
    • Autorzy
    • Recenzje
    • Konkursy
    Blog Helion