[WG.net] Wzorzec Model View Controller (MVC)

Prezentacja z XX spotkania grupy WG.net (XI PGU SqlSever) omawiająca wzorzec MVC.

Scenariusz problemu - Edycja danych

Jednym z najczęstszych przypadków tworzenia aplikacji jest umożliwienie użytkownikowi interakcji z danymi - formatkowy edytor danych. Zakres wymaganej funkcjonalności obejmuje bardzo często następujące wymagania:

  • Zapytanie do bazy - wszystkie / tylko wybrane
  • Przepisanie danych do kontrolek - problemy z DBNull, null, etc
  • Obsługa słowników
  • Obsługa akcji Edit/Add/Remove/BrowseDictionary
  • Sprawdzenie poprawności
  • INSERT/UPDATE/DELETE do bazy

Implementacja całości wymagań w jednym pliku asp/php/form etc powoduje nieczytelność kodu. Przeglądanie, a co ważniejsze koszt utrzymywania kodu rośnie coraz szybciej wraz ze wzrostem dodatkowej funkcjonalności.

Rozwiązanie - wzorzec MVC

Rozwiązaniem problemu jest zastosowanie wzorca Model View Controller (MVC). Polega to na podzieleniu wymaganej funkcjonalności/odpowiedzialności na 3 komponenty:

  • Model – przetwarzane dane
  • View – prezentacja danych
  • Controller – sterowanie przepływem danych – logika aplikacji

Dokładny podział odpowiedzialności jest zależny od konkretnego wariantu wzorca czy implementacji. Dla przykładu rozważmy odpowiedzialność "sprawdzenie poprawności danych". Można włączyć ją do modelu gdy nie jest ona trywialna, a powiązana ściśle z modelem. Walidację można włączyć do widoku, gdzie poszczególne kontrolki mogą ją wykonywać. W przypadku skomplikowanego sprawdzania odpowiedzialność może przejąć kontroler.

Warianty

Wzorzec MVC posiada wiele wariantów, dostosowywanych do konkretnych technologii, metodyk programowania czy właściwości języka. Zanim zacznie się tworzenie własnej implementacji, warto przejrzeć najpopularniejsze Frameworki MVC przeznaczone dla swojej platformy programistycznej. Zazwyczaj takie gotowce zawierają dodatkową funkcjonalność jak pojemniki IoC, definiowanie przepływem logiki aplikacji, ułatwienia typowych operacji programisty, etc.

[Prezentacja 20080214_XX_WG_WzorzecMVC.zip] oraz [Ww.WgNet.MvcCalc.zip]

Opublikowane 16 lutego 08 03:29 przez Wojciech Gebczyk
Filed under: , , ,

Komentarze:

# ris said on lutego 16, 2008 18:19:

Można pobrać kod źródłowy i prezentację?

# Wojciech Gebczyk said on lutego 16, 2008 22:10:

Oczywiscie, wlasnie wrzucilem pliki na serwer i podlinkowalem.

# dotnetomaniak.pl said on kwietnia 29, 2009 10:12:

Dziękujemy za publikację - Trackback z dotnetomaniak.pl

Komentarze anonimowe wyłączone

About Wojciech Gebczyk

Code Sculptor.