Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY MVC vs MVP
Úvod Definice problému: Jak uspořádat funkcionalitu uživatelského rozhraní do modulů, abychom mohli jednoduše měnit jednotlivé části? Odpověď: Oddělit datový model, zobrazování a vstup
Definice MVC Architektura MVC dělí aplikaci na 3 logické části tak, aby je šlo upravovat samostatně a dopad změn byl na ostatní části co nejmenší. Tyto tři části jsou Model, View a Controller. Model reprezentuje data a business logiku aplikace, View zobrazuje uživatelské rozhraní a Controller má na starosti tok událostí v aplikaci a obecně aplikační logiku.
Definice MVC II Model –Doménová logika, model neví o Controlleru ani o View Controller –Obsahuje logiku pro prezentační vrstvu, řízení interakce, rozhoduje co vykreslí View View - zobrazení výstupu uživateli
Historie Počátky již v 70. letech Desktop aplikace – objevuje se MVP (Model, View, Presenter) 90. léta – příchod webu – oživení MVC
Použití Druhy webových aplikací: –Plně AJAXové (Gmail) –Klasická webová aplikace (HTML) –Kombinace (AJAX pouze jako doplněk) MVC frameworky –Nette, Zend –JSF, Java Swing, Flex, ASP.NET Web Forms, Windows Forms, …
MVC Controller –Řídí View –Validace uživatelského vstupu –Žádá data od modelu
MVP Presenter –Řídí View –Žádá data od Modelu View –Validace uživatelského vstupu –Obsahuje UI komponenty
MVC vs MVP MVC MVP
MVP – Supervising Controller Controller = Presenter Původní implementace MVP
MVP – Passive View View je pouze řízen Presenterem Celá prezentační logika je v Presenteru, včetně validace
Autonomous View Alternativa k MVC Kombinace UI a logiky Charakteristické pro drag&drop vývoj Pouze pro malé projekty
Presentation Model = Model-View-ViewModel Nepatří přímo do MVC Komunikace přes Presentation-Model Presentation-Model implementuje Adapter
PAC Alternativa k MVC Presentation – stará se o vstup a výstup Abstration – logický stav komponenty Control - prostředník
PAC II
Související návrhové vzory Observer – synchronizace Model a View (event driven) Page Controller, Front Controller Command Strategy
Použité zdroje a literatura Wikipedia: Model–view–controller Wikipedia: Model-view-presenter Model-View-Controller Addison Wesley: Patterns of Enterprise Application Architecture
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Tato prezentace byla vytvořena v rámci projektu OBZORY Autor: Václav Purchart Předmět: Tvorba webových aplikací Datum: