ASP.net – Wzorzec MVC, co to takiego jest ?

Loading Likes...

Prędzej czy później spotykasz się ze wzorcem projektowym M V C, wówczas zadajesz sobie pytanie : “Co to takiego ?” “Na co to komu?” natomiast później, co z resztą jest najważniejsze “Jak z tego korzystać ? “.
W tym artykule postaram Ci się nakreślić, chociaż podstawowe ramy, w taki sposób abyś mógł/mogła zrozumieć jakie jest wykorzystanie oraz zastosowanie tego wzorca.

Głównym założeniem pracy z MVC, było połączenie pracy backendowca i forntendnowca w jedną spójną całość, tak aby synteza tych dwóch “światów” przebiegała bez “zakłóceń” oraz dawała rezultat w postaci kodu , który jest czytelny i zrozumiały.

Tak jak już zapewne wiesz, front-endowiec odpowiedzialny jest za utworzenie widoku (strony internetowej), pobranie danych od użytkownika, gównie poprzez formularz, natomiast back-endowiec te dane przetwarza,przykładowo sprawdza czy podany login i hasło znajdują się w bazie danych, dlatego separacja tych dwóch “dziedzin” jest niemożliwa i należało pomyśleć o rozwiązaniu, które sprawi, że korelacja pomiędzy nimi będzie najbardziej efektywna.

Jednak do rzeczy. Cóż to takiego jest to MVC ?
To nic innego, jak skrót od : M – Model, V – View ( widok ), C – Controller ( kontroler).
Konkretnie: z każdego projektu wyodrębniamy te 3 warstwy.

Większy projekt przy którym pracuje kilka osób z użyciem MVC lub bez, można porównać do różnicy w programowaniu strukturalnym a obiektowym, jest to pewien przeskok, jednak po zapaleniu się zielonej lampki w głowie, praca staje się zdecydowanie łatwiejsza, a wcześniejsze problemy, nawet te duże zwyczajnie już nie istnieją 🙂

Teraz powiem coś więcej o 3 głównych warstwach:

View – widok.

Jak się zapewne domyślasz jest to strona internetowa, napisana w języku html, jednak i tu Cię mogę zaskoczyć, nie do końca, ponieważ w zależności w jakim języku piszesz, znajdują się tam elementy C# ( w moim przypadku ASP.NET C#,zamiast C# może to być też Visual Basic).
Połączenie C# i HTML nosi nazwę Razor, a plik posiada wówczas rozszerzenie .cshtml
Dzięki takiemu rozwiązaniu, możemy korzystać ze wszelakich dobrodziejstw jakie oferuje nam C#. Pomyśl nad problemem kiedy w bazie masz 100 artykułów,a Ty w jednym divie stosujesz pętlę foreach i za jej pomocą w dosłownie kilku linijkach wyświetlasz całą zawartość bazy ( to tak w wielkim skrócie, abyś mógł zrozumieć siłę !!! tego połączenia).

Model

To miejsce w którym przeważnie znajduje się klasa ze swoimi właściwościami, którym możesz nadać odpowiednie wartości.(te wartości mogą przyjść np z formularza – zapisanie ich odbędzie się kontrolerze).
Bez sensu byłoby pisać więcej na ten temat i teoretyzować, dlatego w tym miejscu zapraszam Cię do kolejnego wpisu, o widokach silnie typowanych ( i nie tylko), abyś na konkretnym przykładzie mógł/mogła ujrzeć mechanikę tego wzorca, ponieważ jak wiemy, na przykładach człowiek uczy się najwięcej 🙂

Controller

Controller można nazwać “mózgiem całego organizmu”.Jest to klasa, która posiada metody. Metoda w kontrolerze to Akcja, każda z akcji zwraca widok o takiej samej nazwie ( taka jest przyjęta konwencja, ale można to dowolnie modyfikować, co oczywiście jest proste,ale wiąże się z dodatkowym nakładem pracy).
Cóż mogę więcej dodać ? Controller jest pomostem pomiędzy Widokiem a Modelem. Kiedy, przykładowo, otrzymujemy dane z formularza, możemy je zapisać w klasie, która znajduje się w modelu, a tym samym, nowe dane zapisać w bazie danych. Tutaj, również zapraszam Cię do kolejnego wpisu na naszym blogu,w szczególności o samym kontrolerze czy routingu,gdzie dokładniej zostanie wyjaśnione jego działanie.

Jestem świadomy tego,że abyś dokładnie zapoznał się z mechaniką działania wzorca MVC, potrzebujesz pełnej interakcji z przykładami, które oczywiście znajdziesz na naszym blogu, jednak nic nie nauczy Cię bardziej, jak własna praca, a rozwiązywanie własnych błędów które popełnisz, będzie tego ukoronowaniem 🙂 Pozdrawiam 🙂

You May Also Like

About the Author: Karol Cichoń

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Facebook
Inline
Inline