MVC (Model-View-Controller)

Podobné dokumenty
Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Projekt Kreslítko X36ASS

Analýza a Návrh. Analýza

IS pro podporu BOZP na FIT ČVUT

Design systému. Komponentová versus procesní architektura

Návrh uživatelského rozhraní

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

CineStar Černý Most Praha

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Architektura softwarových systémů

5. Metody návrhu uživatelského rozhraní

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

TÉMATICKÝ OKRUH Softwarové inženýrství

D R U P A L V O J T Ě C H K U S W O J T H A

Základní informace. Operační systém (OS)

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Zobrazte si svazy a uspořádané množiny! Jan Outrata

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

Databázové patterny. MI-DSP 2013/14 RNDr. Ondřej Zýka,

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Architektury Informačních systémů. Jaroslav Žáček

Architektura. Vedení sesterské dokumentace

Vydávání stanovisek k ICT projektům dle usnesení vlády č. 889 z

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Problémové domény a jejich charakteristiky

Sledování výkonu aplikací?

Modelování procesů s využitím MS Visio.

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Architektury Informačních systémů. Jaroslav Žáček

Úvod do problematiky vývoje Vývoj informačních systémů

Principy objektového návrhu. Přednáška 8, LS 2013/2014

Databázové patterny. RNDr. Ondřej Zýka

Programování II. Modularita 2017/18

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Aneb kde jsme a kam jdeme. odbor Hlavního architekta egovernmentu Ondřej Felix Pavel Hrabě Tomáš Šedivec

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

Aneb kde jsme a kam jdeme. odbor Hlavního architekta egovernmentu Ondřej Felix Pavel Hrabě Tomáš Šedivec

1. Integrační koncept

Systémy pro podporu rozhodování. Hlubší pohled 2

2. Systémová analýza SA návrhová část projektu = příručka projektu - systémový přístup k analýze problémů, nejdůležitější etapa projektu - podrobné st

Architektury informačních systémů

Architektury informačních systémů

Tvorba informačních systémů

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Objektově orientované databáze. Miroslav Beneš

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

Architektura aplikace

Předmluva 11. Poděkování 11 O autorech 12 Úvodem 12 Komu je tato kniha určena 13 Jak byste měli tuto knihu číst 13 Web 14

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

ADOit. IT architektura a řízení IT služeb. Luděk Kryšpín, Lukáš Dvořák, PADCOM, s.r.o.

MVVM pro desktop i web

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

SOFTWAROVÉ INŽENÝRSTVÍ 1

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Specifikace softwarového díla & Časový plán implementace. pro. MEF Editor

1.05 Informační systémy a technologie

architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu

PV167 Projekt z obj. návrhu IS. 26. března 2008

Testování Java EE aplikací Petr Adámek

A7B39WPA Webové podnikové aplikace. Zdeněk Kouba Petr Aubrecht Petr Křemen

Architektura GIS KMA/AGI. Karel Jedlička

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

SOAP & REST služby. Rozdíly, architektury, použití

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Tvorba informačních systémů

Základní registry ČR

1.05 Informační systémy a technologie

Operační systém. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

Mobile application developent

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Common Object Request Broker Architecture

SPECIFICKÁ PRAVIDLA PRO ŽADATELE A PŘÍJEMCE

C# &.NET. Cvičení Mgr. Filip Krijt.

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Uživatelská příručka + základní informace o IS o ISVS

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Základy počítačových sítí Model počítačové sítě, protokoly

Výměnný formát XML DTM DMVS PK

Vývoj informačních systémů. Přehled témat a úkolů

Základy objektové orientace I. Únor 2010

RESTful API TAMZ 1. Cvičení 11

MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY DIPLOMOVÁ PRÁCE NÁVRHOVÉ VZORY V SOA

Projektový management

Disková pole (RAID) 1

Směrování VoIP provozu v datových sítích

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

Učíme se maturitní otázku Organizování z výkladové prezentace. Zpracoval Ing. Jan Weiser

Diagram datových toků - DFD

Metodika analýzy. Příloha č. 1

Vývoj informačních systémů. Přehled témat a úkolů

Simluátor Trilobota. (projekt do předmětu ROB)

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

6 Objektově-orientovaný vývoj programového vybavení

Transkript:

MVC vs PAC

MVC (Model-View-Controller) Architektonický vzor zabývající se uživatelským rozhraním Odděluje doménovou (bussiness) logiku a uživatelské rozhraní do tří nezávislých komponent: Model View Controller Velice populární, ale existují různé definice a variace Detaily jsou častým předmětem diskuzí a sporů

MVC - Komponenty Model Představuje data a doménovou logiku Zpravidla je pouze jeden na aplikaci Je nezávislý na ostatních komponentách View Představuje uživatelské rozhraní Zobrazuje výstup uživateli Často je více pohledů na jeden Model Controller Aplikační logika Obsluhuje a řídí vstupy uživatele Často úzce provázán s View

MVC - Diagram

MVC - Motivace udržitelnost Vyšší přehlednost a pochopitelnost kódu UI lze měnit za chodu aplikace a nezávisle na Modelu Za každou komponentu může zodpovídat jiná osoba (nebo tým) testovatelnost Každou komponentu lze testovat a debugovat nezávisle na ostatních Zamezení duplikace kódu Více pohledů na jedna data (jeden Model)

MVC - Verze Aktivní Model upozorňuje příslušné pohledy na svou změnu Realizováno návrhovým vzorem Observer Pasivní Controller upozorňuje příslušné pohledy na změny modelu, které vyvolal

PAC (Presentation-Abstraction-Control) Hierarchie spolupracujících agentů Každý agent má tři komponenty: Presentation (view) Abstraction (přístup k datům) Control (aplikační logika)

PAC Komponenty agenta Presentation Viditelné rozhraní Komunikuje pouze s Control Abstraction Spravuje datový model a přistupuje do něj Komunikuje pouze s Control Control Komunikuje s Abstraction a Presentation Dále také komunikuje s Control ostatních agentů

PAC Agenti (1) Každý agent řeší specifický aspekt funkcionality aplikace Tři druhy agentů Top-level Jádro systému Z UI má ty komponenty, které se nedají zařadit do podsystémů např. dialogy či menu Bottom-level Určitý sémantický koncept aplikace (jedna funkce) Např. vykreslování grafu, včetně operací (zoom) Intermediate-level Koordinace více pohledů na ta samá data Umožňuje otevírání a zavírání těchto view Přeposílá zprávy o změnách na datech

PAC Agenti (2) Agenti nabízí jak horizontální (na vrstvy), tak vertikální (funkcionalita) dekompozici systému Agent může být něco o velikosti jednoho objektu, ale také celého systému Agenti mají vlastní stav Agenti by měli tvořit stromovou strukturu Jeden Top-level agent Více Intermediate-level agentů Ještě více Bottom-level agentů Agenti níže jsou závislí na agentech výše až k Top-level

MVC vs PAC MVC Model View + Controller View obsluhuje výstup Controller obsluhuje vstup View má určitou logiku (znalost modelu) View přijímá data přímo z Modelu PAC Abstraction Presentation + Control Presentation obsluhuje vstup i výstup Presentation je zcela bez logiky (templatovací systém) Presenter přijímá data z Abstraction přes Control hierarchická, vrstevnatá architektura

MVC vs PAC MVC výhody PAC výhody Oddělení funkcionality od UI Oddělení funkcionality od UI Menší složitost systému Výkonnost - menší režie Oddělené zpracování vstupu a výstupu MVC nevýhody Provázanost Views a Modelu Snadno rozšiřitelné (přidání agenta) Snadno upravitelné (úprava agenta) (Nevyžaduje změny po celém systému) Podpora multitaskingu Low coupling Vhodné pro tvorbu složitých UI - složení z jednotlivých agentů bez porušení zapouzdření PAC nevýhody Větší složitost systému Rychlost - komunikace agentů Riziko rozpadu systému do příliš velkého množství agentů (pro které se navíc musí napsat další, koordinující agenti).

HMVC Hierarchical Model View Controller Hybrid MVC a PAC Hierarchická struktura jako u PAC Vnitřní struktura agentů jako u MVC

Zdroje http://www.garfieldtech.com/blog/mvc-vs-pac http://msdn.microsoft.com/en-us/library/ff649643.aspx http://zdrojak.root.cz/clanky/uvod-do-architektury-mvc/ http://icpc.felk.cvut.cz/web/slides/y36ass/prezentace/2_presentationabstrac tioncontroll.pdf http://assets.cambridge.org/97805218/17332/sample/9780521817332ws.pdf http://moosehead.cis.umassd.edu/cis390/slides/08_pac.pdf http://www.cs.ucy.ac.cy/courses/epl603/intro4.pdf http://goo.gl/78kqp http://kirankawalli.110mb.com/patternexamples.pdf http://en.wikipedia.org/wiki/presentation-abstraction-control http://en.wikipedia.org/wiki/model View Controller