Web framewrks v praxi František Řezáč
Agenda Spiler Představení a vymezení rzsahu Máme prblém? Pstup pr výběr framewrku Naši favrité C si myslím já Diskuze
Přednášející Fakulta aplikvaných věd ZČU (kd se zeptá, klik mě stál diplm, bude vylučen z přednášky) U vzniku 3 velkých prjektů (v sučasnsti další v přípravě) Nejvíce 3 rky suvislé práce na prjektu (vývj + údržba) 7 let prfesinálně ve web applicatin vývji, hlavně Java EE Technlgicky neutrální (ale Java rulezzz) Tapestry, JSF, Wicket, Spring (MVC, Webflw), GWT
Vymezení hlubky Víte, c je framewrk Víte, prč jsu framewrky důležité Znáte architektnické pjmy MVC, ORM, DAO, DI apd. Máte představu JavaEE, hlavně servlet technlgii Znáte trchu histrie
Vymezení šířky Java eksystém (a blízké klí) Mnh nvých jazyků cílí na JVM Java výjáři emigrují jen k něklika alternativám Velké infrmační systémy Malá zkušenst s marketingvými pžadavky Z phledu vědeckéh IT jsu marketingví zákazníci nezajímaví
Vaše čekávání C čekáváte d dnešní přednášky? Vaše zkušensti s webvými aplikacemi Vaše platfrma (J2EE,.Net, Rails, LAMP, )? Vaše zkušensti s nn-web framewrks? Spring, Hibernate, Vaše zkušensti s web framewrks? Struts, JSF, Seam, Wicket, Stripes, GWT, Flex, Vaadin, ZKss
Máme prblém?
dmain Spring framewrk Naše typická architektura web web services business services data - access O/R mapping integratin Database ther services
Prblém
Prblém Apache Tapestry OpenXava Apache Wicket Oracle ADF AppFuse Play! Aranea Richfaces Cntext Framewrk RIFE Eclipse RAP Apache Shale FrmEngine Apache Sling Grails Apache Struts Ggle Web Tlkit SmartClient Hamlets Spring IceFaces Stripes ItsNat ThinWire JavaServer Faces Vaadin JBss Seam Wavemaker Jspx-bay WebObjects JVx WebUI WebWrk ManyDesigns Prtfin ZK OpenLaszl ztemplates
Jak vlastně vybírat? Craig McClanahan (autr Struts, autr pzdějších servlet specifikací) Emigrace k Rails James Gsling (autr Javy) Hates JSF with passin. ale technické a emční vztahy je při výběru framewrku t NEJMENŠÍ!
Pdstatná kritéria Typ framewrku vs. typ aplikace Snadný vývj Dstupnst lidí/expertů na trhu Kmunita spjená s prjektem Buducnst prjektu (radmap) Technické vlastnsti jiná?
Typy web aplikací Primárně View internetvé aplikace s vysku dstupnstí a pžadavky na škálvatelnst Typicky View&Write intranetvé aplikace, bvykle určené pr mezenu mnžinu lidí, bvykle se slžitější business lgiku Vysce interaktivní internetvé aplikace Prdukty, udržvané p 5 10 let Legacy backend a další, pkud přestaneme zjedndušvat
Typy web framewrků Push-based framewrks (Request-based) Struts 1/2, Rails, Stripes, Pull-based framewrks (Cmpnent-based) JSF, Tapestry, GWT, ASP.NET, ZKss RIA framewrks Flex, OpenLaszl, JavaFX, Micrsft Silverlight, Java Web Start,
Snadný vývj Jak rychle pchpíte základní kncepty? Jak rychle se naučíte framewrk pužívat? Minimalizuje framewrk nepříjemná překvapení? Pužíváte-li už nějaký framewrk, liší se ten nvý kncepčně?
Dstupnst lidí na trhu Jaká je dstupnst lidí se znalstí framewrku na trhu? Jaká je jejich kvalita? Jaká je jejich cena? Jaká je dstupnst expertů pr daný framewrk na trhu? Jaká je jejich cena?
Kmunita Existuje splečnst zaštiťující prjekt? Seam (jbss), JSF (Oracle), ASP.NET (Micrsft) Jak je na tm mailing list? příliš mnh prblémů? příliš mál dtazů? relevantní dpvědi? Frekvence nvých verzí? Využití v reálném světe? Existují pr framewrk kvalitní knihy?
Buducnst vs. údržba Jak ambiciózní jsu cíle prjektu? C zpětná kmpatibilita? Je jedním z cílů vývjářů framewrku? Jsu jedntlivé verze zpětně kmpatibilní? Existují jasné a přesné návdy pr upgrade? Jak snadn lze framewrk testvat? Udrží se framewrk minimálně něklik let?
Technické vlastnsti Přecházíte-li z jinéh framewrku Má nvý vše, c jste cenili v půvdním? Nebudu vám důležité věci chybět?
Technické vlastnsti Vytváříte-li nvu aplikaci Je t vývj na zelené luce? Musíte se integrvat d existujícíh prstředí? Neklade tat integrace na vás nějaká mezení? Neztíží vám framewrk integraci? Nejsu vám všechny ty features na btíž? Není framewrk až příliš restriktivní? nelze vládat Javascript, URL,
Technické vlastnsti Pdpra pr AJAX Integrace Javascriptu Bkmarking a URL Validace I18N View language Page decratin Testvatelnst Kvalita, chybvst Výknnst jiné
Srvnání Matt Raible http://bit.ly/jvm-framewrks-matrix
Srvnání
Důležité jsu VÁHY u jedntlivých kritérií!
Naši favrité
JSF Výhdy JEE standard Širká pdpra, stabilita Řada kmpnent, nástrjů, rzšíření Nevýhdy JEE standard Perfrmance, kmplexnst Dkumentace, kmunita
Wicket Výhdy Není tak slžitý, jak JSF Dbrá pdpra Ajax Dbrá skinvatelnst, příjemný přechd pr Java prgramátry Nevýhdy Není tak slžitý, jak JSF Výkn Spíše knihvna kmpnent, než framewrk
Tapestry Výhdy Live Class relading Vývj klade velký důraz na výknnst a stabilitu Vynikající reprting výjimek Nevýhdy Žádné nabídky práce Jak JS knihvnu natvrd Prttype One-man-shw
GWT Výhdy Píšeme Javu prdukuje se ptimalizvaný JS Snadn se učí a vyvíjí se standardními nástrji Velmi aktivní kmunita Nevýhdy Velice btížně testvatelné Pmalá kmpilace Spíše knihvna kmpnent než framewrk
Spring MVC Výhdy Jednduchá knfigurace Bezprblémvá integrace s mnha view technlgiemi (JSP, FreeMaker, Excel, ) Vynikající pdpra pr REST Nevýhdy Nemá zabudvaný instant relad (JRebel) Nemá tevřený vývjvý prces (SpringSurce) AJAX vyžaduje knihvnu třetí strany
C si myslím já
Hlavní hráči
Rztříštěnst Java
Buducnst (2012++) Z minuléh rku: desktp (Adbe Air, Titanium, ) Ttální zaměření na mbilní platfrmy Nvé technlgie Scial je už standard HTML 5 Hlavně ffline Integrace
Nevěřte reklamním trikům Buďte patrní při četbě (ne)kritických blgů Věřte vývjářům, nejlépe těm zkušeným, kteří framewrk pužívají v prdukci Všechn si sami vyzkušejte Pkud váháte, zkuste pužít více než jeden framewrk
Vybírejte s rzvahu Existují různé typy aplikací s velmi rzdílnými nárky! Žádný nástrj není univerzální! Něčí názr je prstě jen názr! Vlte velké hráče! Udělejte prttyp jde vám t těžk? Zahďte framewrk!
www.prfinit.eu Děkuji za pzrnst