ASP .NET ModelViewController – wprowadzenie – część 1

Poniższy tekst przedstawia podstawy i filozofię, która stoi za MVC.

ASP .NET MVC jest dodatkiem do ASP .NET można go pobrać stąd.

Co to jest  Model View Controller (MVC) Framework?

MVC jest wzorcem, który dzieli implementacje na trzy główne komponenty: model, view(widok) oraz kontroler (controller).

  • Modele w frameworku MVC odpowiadają za utrzymanie stanu. Bardzo często stan jest zapisywany do bazy danych. Na przykład model może stanowić klasa Towar, która odpowiada za reprezentację danych przechowywanych w bazie SQLowej.
  • Widoki odpowiadają we frameworku MVC za wyświetlanie interfejsu użytkownika. Widoki w w aplikacjach webowych to wszelkiego rodzaju formularze, listy. Służą do wyświetlania danych zawartych w modelu.
  • Kontroler to część aplikacji odpowiadająca za obsługę interakcji z użytkownikiem, manipulowanie modelem oraz decyzje o wyborze jaki widok ma zostać przedstawiony użytkownikowi. Kontroler jest odpowiedzialny za wszystko co się dzieje w widoku, który służy tylko do prezentacji danych.

Testowanie

Jedną z zalet użycia wzorca MVC jest bardzo czysta separacja pomiędzy poszczególnymi komponentami, która powoduje, że aplikacje są o wiele łatwiejsze do testowania. Separacja pozwala na budowanie testów z góry, ponieważ już na samym początku wiadomo jaka będzie architektura aplikacji.

Okazuje się, że ASP .NET MVC bardzo łatwo się mockuje ( szczególnie IHttpRequest / IHttpResponse ) oznacza to, że można przetestować kontroler bez odpalania go np.: w procesie serwera www, przez to trwa to bardzo krótko i można w łatwy sposób użyć NUnit.

Czyste adresy URL – SEO friendly

Framework MVC zawiera komponent mapujący, który pozwala na budowanie aplikacji z czystymi URLami. Pozwala na zbudowanie adresów, które nie zawierają w sobie rozszerzeń( np .aspx) i są bardzo przyjazne dla SEO. Na przykład bardzo łatwo jest zamapować adres /towar/edytuj/125 do akcji “Edytuj” w klasie TowaryController ( trzeba uważać z odmianami!!! – liczby mnogie).

Wszystko co jest w ASP .NET zostaje

W MVC nadal można używać normalnych plików .ASPX, .ASCX oraz .Master jako szablonów widoków. Szczególnie jeśli chodzi o zagnieżdżone strony master, <%= %>, kontrolki deklaratywne, szablony, data-bindig, lokalizacje i tak dalej. MVC nie używa domyślnego zachowania nazywanego jako post-back. Zamiast tego wszystkie posty(GET, POST) czy inne żądania są kierowane do odpowiedniej akcji w kontrolerze. Oznacza to także brak viewstate, czy cyklu życia strony dla .aspx będących widokami mvc( mam nadzieję, że wyjdzie to w jednym z następnych artykułów).

ASP .NET MVC całkowicie wspiera istniejącą funkcjonalność tzn: autentykacja forms/windows, autoryzacja URL, membership/role, cachowanie wyników i danych, zarządzanie stanem sesji i profilów, monitorowanie zdrowia aplikacji, konfigurację, architekturę providerów itd.

Inni też to mają

MVC jest wzorcem szeroko używanym w świecie webowym: Ruby on Rails, CakePHP i wiele innych. Staje się standardem dla aplikacji webowych pozwalającym tworzyć solidne rozwiązania, wreszcie ASP .NET dołączyło do tego klubu.