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

Podobné dokumenty
Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

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

INFORMAČNÍ SYSTÉMY NA WEBU

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

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

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

PA165: Úvod do Java EE. Petr Adámek

Web Services na SOAP

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Úvod do Web Services

Architektura aplikace

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

IS pro podporu BOZP na FIT ČVUT

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

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

Architektura softwarových systémů

Web frameworks v praxi

Proč Angular JS framework?

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

(Enterprise) JavaBeans. Lekce 7

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

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Web frameworks v praxi Tomáš Krátký

Mobile application developent

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

KIV/PIA 2013 Jan Tichava

Elektronická podpora výuky předmětu Komprese dat

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

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

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

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Ruby on Rails. VŠE, Jiří Hradil

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

X33EJA Enterprise Java

Tvorba informačních systémů

1. Struktura stránky, zásady při psaní kódu, MVC pattern. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008)

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

Databázové a informační systémy

Microsoft Azure Workshop

Michal Krátký, Miroslav Beneš

OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application

Platformy / technologie. Jaroslav Žáček

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Tvorba přizpůsobivých webových rozhraní

KIV/PIA Semestrální práce

Business Intelligence

Domino 10 nové komponenty a související témata (node.js, ES )

SYLABUS IT V. Jiří Kubica. Ostrava 2011

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

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

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Common Object Request Broker Architecture

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Formy komunikace s knihovnami

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Architektura GIS KMA/AGI. Karel Jedlička

Drupal. Svobodný redakční systém. duben 2007 Jakub Suchý 1

MVVM pro desktop i web

Kapitola 1 První kroky v tvorbě miniaplikací 11

Stručný obsah. Část I Úvod. Část II Komponenty

Ruby on Rails: zapomeňte na Javu

Budte chytří při vytváření aplikací

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce. Bakalářská práce Hodnocení restaurací

PV239/WP. Vývoj univerzálních Windows Store aplikací. Mgr. David Gešvindr MCSD: Windows Store MCSE: Data Platform MCT MSP

Michal Augustýn ALWIL Software Microsoft Most Valuable Professional

Webové služby. Martin Sochor

<Insert Picture Here> Vývoj portálových řešení v Javě

Docházka 3000 evidence pro zaměstnance z více firem

Aleš Rybák, Jiří Kadlec. Pluginy budoucnosti

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Geografické informační systémy ArcGIS Pavel Juška (jus011) 4. března 2010, Ostrava

Tvorba informačních systémů

RESTful API TAMZ 1. Cvičení 11

Stručný úvod pro programátory. Michal Kuchta

DUM č. 11 v sadě. 36. Inf-12 Počítačové sítě

Michal Augustýn Microsoft Most Valuable Professional

Responzivní web. Co je mobilní verze webové stránky?

Technologie Java. Jaroslav Žáček

Pokročilé Webové služby a Caché security. Š. Havlíček

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Python XML a Web 1 PGS

InternetovéTechnologie

Novinky IPAC 3.0. Libor Nesvadba Karel Pavelka

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

OpenID Connect. Martin Kuba

Hlavní rysy produktu MapInfo Professional

WCF. IW5 - Programování v.net a C# WCF

Building Your Own Real Remote Experiment Controlled by a Mobile or Touch Enabled Device

Nové jazykové brány do Caché. Daniel Kutáč

XAMARIN 10 PRAKTICKÝCH ZKUŠENOSTÍ. Roman Fischer

Transkript:

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

O čem to bude Three-Tier aplikace MVC frameworky Komponentově orientované frameworky Apache Wicket

Three-Tier (1) webový klient, desktopový klient, speciální terminál,... výkonné jádro aplikace s business logikou databáze, externí systémy,...

Three-Tier (2) Rozdělení presentation service Více prezentačních vrstev Prezentační vrstva fyzicky oddělená od servisní (SOA web services, REST) Rozdělení service persistence Abstrakce zdroje dat = jeho snadná výměna (nejen jiná DB, také externí systém)

MVC (1) Controller Je mozkem aplikace, provádí operace s daty skrz Model, vybírá View. Model Přímo pracuje s databází (příp. jiným úložištěm). View Formátuje data na výstup.

MVC (2)

Dvojí MVC Pohled 1 - MVC vs. Three-Tier MVC tvoří celou aplikaci asi většina malých a středních aplikací Pohled 2 MVC vs. komponentově orientované z MVC se použije Controller a View, Model je nahrazen servisní vrstvou pokročilé aplikace, nejčastěji asi ty, které poskytují web services (SOAP, REST, )

Komponentově orientovaný FW (1) Oproštění od request-response principu webu URL nereprezentuje nutně celou stránku, může reprezentovat její malou část, resp. konkrétní akci. Přiblížení desktopové aplikaci (à la Google)

Komponentově orientovaný FW (2) Stránka se skládá z mnoha komponent Jsou nezávislé komponenta má vlastní controller s přístupem k servisní vrstvě a vlastní view (přiblíženo termínům MVC) komponenty o sobě navzájem nemusí vědět (ale mohou, pokud chtějí komunikovat) přidání/odebrání/výměna/úprava komponent na stránce je hračka v porovnání s MVC hlavní výhoda Jsou znovupoužitelné

Komponentově orientovaný FW (3) Bookmarkable requesty klasika, reprezentují stránku, mohou mít parametry Non-bookmarkable requesty reprezentují akci na komponentě mohou reprezentovat i stránku pak není přístupná přes stálé URL (někdy vhodné) po provedení akce vykreslení stejné stránky (nebo její části AJAX) vykreslení jiné stránky (non-bookmarkable) redirect na bookmarkable

Komponentově orientovaný FW (4)

Apache Wicket Pouze Java a XHTML, žádné rozsáhlé XML konfigurační soubory Snadná spolupráce HTML kodér + Java kodér AJAX zdarma Odkazy, tlačítka, našeptávače, modální popup okna, záložkové panely, časované obnovení,... Toto bez nutnosti sáhnout na JavaScript Pro exotické případy lze udělat vlastní komponentu Kamarádí s tlačítkem Zpět

Apache Wicket základy TicketDetailPage.html TicketDetailPage.java

Apache Wicket AJAX (1) Pro vlastní našeptávač stačí přepsat jednu metodu

Apache Wicket AJAX (2a)

Apache Wicket AJAX (2b)

Apache Wicket tlačítko zpět odkazy obsahují číslo verze stránky verze stránek jsou na serveru serializované (v RAM nebo na disku) server je schopný se vrátit v historii tlačítko zpět funguje tak, jak uživatel očekává chování je přizpůsobitelné (nároky na paměť)

Výhody a nevýhody A. Wicket (1) Výhody znovupoužitelné, samostatné komponenty odolný vůči CSRF, back button a form refresh problémům Java kompilovaná rychlost (Twitter a Scala) libovolná životnost objektů rychlost staticky typovaná

Výhody a nevýhody A. Wicket (2) Nevýhody Nepěkné URL pro non-bookmarkable requesty Vyšší paměťová náročnost Java kompilovaná zdržuje libovolná životnost objektů možnost memory leaku ukecanější než modernější jazyky

Výhody a nevýhody A. Wicket (3) Jen jedno srovnání s Rails nebo Django k nalezení :( I recently converted a Rails site to Wicket. Wicket really cuts down on template spaghetti code. I can honestly say that wicket s OO approach is the right way of doing things for web application development. If anyone is interested in the site I mentioned, http://fabulously40.com/

The End