Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Podobné dokumenty
KIV/PIA 2013 Jan Tichava

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

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

Web frameworks v praxi

Platformy / technologie. Jaroslav Žáček

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Spring framework 2.0. Roman Pichlík CZJUG

(Enterprise) JavaBeans. Lekce 7

Co by měl umět dobrý vývojář. Petr Adámek Home Credit International a.s.

Platformy / technologie. Jaroslav Žáček

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

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

Web frameworks v praxi Tomáš Krátký

Technologie Java. Jaroslav Žáček

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

Ruby on Rails: zapomeňte na Javu

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

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

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

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

Přizpůsobení JSTL pro Google App Engine Datastore

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

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

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

Architektura aplikace

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

UNIVERZITA PARDUBICE

Web Frameworks Java Server Faces. Petr Aubrecht CA

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

Webové programování je CHALENGE! Milan Čapoun, Samuel Šramko

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

Systémová administrace portálu Liferay

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

Multiplatformní osobní organizér v jazyce Java

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

KIV/PIA Semestrální práce

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

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

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

Nástroje pro průběžnou integraci a testování

Server-side technologie pro webové aplikace

Tvorba informačních systémů

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

Možnosti návrhu webových aplikací. Lukáš Gemela, A11N0101P

Úvod do Groovy pro Java experty

Maven. Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

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

Tvorba informačních systémů

Ant aneb Ferda Mravenec, práce všeho druhu

JAVA V Hibernate Java, letní semestr

Tvorba informačních systémů

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

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

Architektury informačních systémů

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Michal Krátký, Miroslav Beneš

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Webová aplikace pro

Využití EJB 3.0 při tvorbě podnikových aplikací

Sem vložte zadání Vaší práce.

Obsah. Předmluva Začínáme: překlad, spuštění a ladění 27

Session Beans. Petr Aubrecht CA. Vtipy budou tentokrát o krizi:

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

Architektury informačních systémů

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition vývoj webových aplikací

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition

Využití JBoss Fuse ve skandinávské energetice

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

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

Enterprise Java Beans 3.0

Systém evidence knih v obecní

Technologie Java. Jaroslav Žáček

Webové programování a Open Source. Open-source. Liberix o.p.s

RESTful web service v Javě

Tvorba informačních systémů

X33EJA Enterprise Java

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

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

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

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

Použití databází na Webu

Co je nového v Java EE 6

Dynamické programovací jazyky

Využití chemie v procesu testování webových aplikací vytvořených pomocí technologií PHP a Java

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

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Komponentní technologie

Statická analýza kódu - za kód bez chyb

Jak správně na Hibernate. Martin Hlavatý

Databáze EMS podacích lístků

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Quality assurance a testovací nástroje v praxi. Bohumír Zoubek bohumir.zoubek@profinit.eu

Na tomto místě bude oficiální zadání vaší práce

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

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Online galerie: využití J2EE s JPA Petr Bludský

Web Services na SOAP

Transaction API + webové frameworky + další poznámky. Petr Aubrecht CA

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

Transkript:

Nástroje a frameworky pro automatizovaný vývoj Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Proces vývoje webové aplikace Předepsaná adresářová struktura. Kompilace zdrojových kódů. Vytvoření archivu s předepsanou strukturou (WAR, EAR). Umístění archivu (kopírováním) na aplikační server.

Apache Ant Softwarový nástroj pro automatizované sestavení buildů. Podobný nástroji Make z unixového prostředí. Platformě nezávislý. Pro sestavení používá XML, kde je definován proces automatizace. Soubory pojmenovány build.xml.

Ant pro.net?

Ant pro.net dotnetexec - Spouštět skripty nunit - Spouštěn NUnit testy nant - Not Ant ->NAnt, buildovací nástroj pro.net msbuild - spouštět nástroj MSBuild wix - automatizované vytvoření MSI instalátorů

Maven Označován jako Ant na steroidech. Oproti Ant umí vyjádřit závislost na jiných projektech. Používá soubor pom.xml (Project Object Model). Obsahuje i tzv. Archetypy.

Závislost na jiných projektech

Závislost na jiných projektech

Maven archetypy

Integrace JUnit do Projektu

Apache Ivy Původně jako subprojekt pro Ant Zajišťuje hlídání závislostí na projektu Sám stahuje určenou verzi knihoven (za pomoci IDE) čím se tedy liší do Mavenu?

Funkční testování

Nástroje pro podporu testování Selenium - framework pro funkční testování webových aplikací. Podporuje jazyky Java,.NET, PHP, Python, Ruby, Perl. Problémové místo - pluginy pro prohlížeč.

Zavedení Selenia Tester pomocí pluginu v prohlížeči nahraje sled kroků pro testování. Selenium převede nahrané makro do podoby zdrojového kódu. Tester vytvoří testovací třídu a umístí do ní vygenerovaný zdrojový kód.

Architektura

https://www.youtube.com/watch?v=fkuvav9u7vu

Integrace v cloudu V současnosti jsou nabízeny řešení PaaS (Platform as a Service). Nabízí kompletní prostředí pro deploy webové aplikace. Příklad: Heroku, OpDemand.

Frameworky pro vývoj - Java

Java a Frameworky Výhody: Zrychlení vývoje Zavedení ověřených principů Nevýhody: Obcházení architektury Kompatibilita

http://en.wikipedia.org/wiki/comparison_of_web_application_frameworks

Podle čeho vybrat?

Podle čeho vybrat? Produktivita vývojářů Dostupnost vývojářů Jak vypadá tzv. učící křivka Jak vypadá samotný projekt Dostupnost vývojářů Aktuální trendy

Google Trends

Trendy

Požadavky na technologii Template (umí integrovat šablony) Využití komponent AJAX Plug-iny, nebo Add-on Škálovatelnost Podpora testování ze strany frameworku

Požadavky na technologii i18n a i10n (internacionalizace, lokalizace) Validace Jak je kvalitní dokumentace Kolik knih je na trhu k dispozici Podpora budování REST architektury Podpora mobilní platformy

Porovnání pomocí matice http://bit.ly/jvm-frameworks-matrix

Výsledek

Popularita

KLASIFIKACE FRAMEWORKŮ

Výhody a nevýhody Grails GWT Ruby on Rails Spring MVC Vaadin Wicket Tapestry

Grails Výhody Pro vývojáře Java jednoduchý přechod k jinému jazyku Jazyk Groovy Dostupné pluginy pro všechny typy aplikací Nevýhody Návody jsou zaměřeny na bývalé Java vývojáře Stack trace bývá velmi nepřehledný

GWT Výhody Vývoj v Javě, GWT vytvoří JavaScript jádro aplikace jako generovaný kód Jednoduché na naučení, podpora standardních nástrojů Silná podpora komunity Nevýhody Musíte znát dobře Javu Dlouhá doba kompilace, problematické testování Více se blíží JSP knihovně tagů (JSTL) než webovému frameworku

Ruby On Rails Výhody Pro vývojáře webu Velmi dobrá dokumentace Podpora komunity Nevýhody Bez optimalizace je pomalý Větší nároky na testování (dynamický jazyk) Vývojové prostředí, debugging Kolik znáte v Ostravě firem, které programují v Ruby?

Spring MVC Výhody Jednoduchá konfigurace (anotace) Velmi dobrá integrace s ostatními technologiemi (JSP, JSTL, Tiles, JSON) Podpora REST modelu Nevýhody Složitější debugging (bez použití JRebel, Spring Roo) Pro AJAX (je) byla vyžadována externí knihovna

Vaadin Výhody Využívá GWT API Podpora komunity Výborná podpora UI (Themes, Layouts) Tvorba GUI přímo Java kódem Nevýhody Velké nároky na paměť, vše se ukládá do session Záštitu nad vývojem má komerční organizace, ne komunita Nevhodný pro embeded zařízení a jednoduché webové prohlížeče

Wicket Výhody Snadné použití pro vývojáře pracující s Javou Těsná vazba mezi stránkami a pohledy Komunita (Apache projekt) Nevýhody V základu orientován na Stateful přístup HTML šablona je dohromady s Java kódem Problém sehnat vývojáře Problém při tvorbě nestandardních řešení na míru

Tapestry Výhody Live Class a Template Reloading Rychlý a škálovatelný Výborně zpracovaný systém výjimek Nevýhody Moc se nepoužívá Anotace vs. konvence

Spring MVC

Služby nad jádrem Spring Mode-View-Controller - implementace návrhového vzoru MVC do architektury aplikace. Data Access - pro podporu persistence - podporuje JPA, JDBC, Hibernate, MyBatis. Security - původně samostatný projekt, vytváří security realm pro aplikaci. Transaction Manager - podporuje transakční zpracování na všech úrovních.

JBoss Seam(2) Integruje ověřené technologie a přístupy (EJB 3.0, JSF 1.2, POJO, AJAX) Součástí frameworku je ORM Zaměřený na Stateful přístup Používá Dependency Injection V základu podporuje JUnit, TestNG Silný nástroj - JBoss Tools

JBoss Seam(2) - Model

JBoss Seam(2) - View

JBoss Seam(2) - Výsledek

Dependency Injection (IOC)

Struts 2 Striktní MVC, toto rozdělení kopíruje i architektura:

JavaServer Faces Request-driven MVC framework, zaměřený na tvorbu UI. Obsahuje hlavní části: FacesServlet Backing Bean Samotná JSF stránka, využívající technologii Facelets

Charakteristika Pro malé projekty je velmi vhodný. U větších projektů se stává nepřehledný (Backing Beans). Často se kombinuje s jinými frameworky (Spring, Struts). Velmi silná technologie - facelety

Facelety

Frameworky pro Persistenci

Proč řešit persistenci Atomicity hlavně transakce Consistency dodržení stavů (je ta objednávka opravdu ve stavu rozpracována?) Isolation aby se neovlivnila jiná data než dotčená Durability ukládání na jiné než RAM paměti

Persistence v AS Webová aplikace několik kontextů více uživatelů aplikace mezi sebou spolupracují vícevláknová architektura

Hibernate Mapuje doménový objektový model na relační databázi. Reprezentuje tedy persistentní vrstvu, projekt je opensource. Obsahuje konfigurační soubor (metadata) který mapuje objekty na db tabulky. Implementuje metody, které persistenci řídí.

Architektura

HQL Pro manipulaci s daty se využívá Hibernate Query Language. Inspiroval se v Java Persistence Query Language. from bank.account account where account.owner.country = 'CZ' and account.owner.name = 'Jarek'

Problémy Hibernate Jaké vymoženosti SŘBD nemohu využít, pokud mapuji pouze s Hibernate? Znáte nějaké jiné nevýhody Hibernate?

MyBatis (ibatis) Funkce stejná jako Hibernate, logika přístupu odlišná. Nemapuje objekty na tabulky, ale metody na SQL příkazy. Může tedy využít i uložené procedury databáze.

Mapování