JHacks
[ start | index | login or register ]
topics > tapestry

tapestry

Created by stoned. Last edited by kocka, 2 years and 99 days ago. Viewed 1,642 times. #6
[diff] [history] [edit] [rdf]
labels
attachments
>>http://jakarta.apache.org/tapestry

faj: java alapú web framework (lásd még struts, webwork2, >>http://waferproject.org )

alfaj: komponens alapú web framework (mint pl. jsf)

jellemzők: Szakítás a hagyományos MVC paradigmával, komponens alapú fejlesztésre helyezve a hangsúlyt. Eltérően a hagyományos MVC-vel, az alkalmazás fejlesztőjének nem kell törődnie az URL paraméterekkel, a Session objecttel, úgy általában a Servlet API-val (Természetesen ettől függetlenül lehetőség van az API elérésére). Ennek következtében az evolúció ezen szakaszában a framework által generált URL-ek nem túl kereső- és bookmark barátok, de ez a közeljövőben változni fog, és egyébként is van workaround.

Sok ötletet merít az Apple féle WebObjects nevű projektből, így akik azt ismerik, a Tapestry-t is ismerősnek találják majd.

A rugalmas felépítésnek köszönhetően rengeteg előnnyel rendelkezik a többi fajhoz képest:

  • Parameter binding. A framework automatikusan bindingeli (hunglish rulez again) a request parametereket a fejlesztő által írt java osztályok property-jeihez. Ehhez kapcsolódik egy nagyon király validation facility, ahol magát a validáció logikáját is meghatározhatjuk (ha nem elég az a pár default validation bean, amit már születéskor tartalmaz a szervezet), csakúgy, mint a tüneteket (look & feel).
  • Session handling. Lehetőség van a "régimódi" session kezelésre, azaz a session objektumban eltárolni a session adatait, de köszönhetően a persistent component property-knek, a tökölés a sessionnel nagyban lecsökkenthető. A persistent component property azt jelenti, hogy minden komponens deklarálhat property-ket, amik ha persistentként vannak deklarálva, a framework gondoskodik arról, hogy a session során ezek megőrizzék értéküket. Ennek köszönhetően a hosszútávú memóriában észlelhető zavarok is csökkenthetőek.
  • Valid HTML templates. A bestia külső felépítése nagyban megkönnyíti a fodrászok, mani- és pedikűrösök, esetleg plasztikai sebészek munkáját. A Tapestry template-ek érvényes (X)HTML file-ok, amit egy mezei, Java-hoz, tag library-khez mit sem értő web designer is könnyen elkészíthet, sőt, az operáció előtt lehetőség van a végeredmény azonnali tesztelésére html böngészők segítségével.
  • High level of reuse. Már születéskor tartalmazza a fejlesztéshez >>elengedhetetlen komponenseket (framework library), egyéb hasznos komponenseket (contrib library), és még wml komponenseket is (wml library). Saját library-k készítése és felhasználása gyerekjáték. Ezek fejlesztése (legjobb tudomásom szerint) jóval egyszerűbb, mint a JSP tag-libraryk fejlesztése.
  • Line precise error reporting. Ez kemény. Ha beteg megmondja hol fáj, mi fáj, és még a vércsoportját is közli. Najó, kicsit kevésbé elvontan tartalmaz egy komponenst a framework, ami megjelenít minden információt egy el nem kapott kivétel esetén. Erősen addiktív feature. >>példa kórlap .
  • Dokumentáció. Sokáig nagy hibája volt a fajnak, hogy belső felépítését csak néhány beavatott, igen képzett kutató ismerte. Az kutatáshoz újonnan hozzákezdő zöldfülűeknek nagy gondot okozott a megszokott MVC arhitektúráktől eltérő fejlesztési model. Szerencsére manapság sokkal több információ áll rendelkezésre a lelkes fejlesztők számára. A cikk végén felsorolásra kerülnek a lelőhelyek is. A dokumentációkon kívül - jó opensource hagyományokhoz híven - a levelező lista igen segítőkész és hatékony.
  • IDE support (Csak eclipse egyelőre, de hát az A java ide nem? ;-)). Bár Tapestry alkalmazások könnyedén fejleszthetők egy pőre vim segítségével is, de a >>http://spindle.sourceforge.net project sok-sok unalmas gépeléstől és hibakereséstől mentesíti a fejlesztőt. A spindle alkotója szerencsére nem esett abba a hibába, hogy egy WYSIWYG típúsu szörnyet készítsen. Ehelyett code completion, egy-két wizard található benne, és egy saját builder, ami képes (elvileg) minden hibát észlelni a html template-ekben és component descriptorokban.
Számos előnye mellett néhány hátránnyal is rendelkezik a faj, amik elsőrorban szociális problémák (lassan múló beilleszkedési zavarok):
  • Learning curve. A hagyományos MVC-hez szokott fejlesztőknek eltarthat egy darabig, amíg hozzászoknak az inkább a swinghez, mintsem a Model2 MVC-hez hasonló fejlesztési modelhez.
  • Nem mainstream. A Struts mellett nehezen jut szóhoz. A struts gyakorlatilag a szabvány J2EE view layer technológia. Mint általában a szabványoknál, nem feltétlenül a legfejlettebb megoldás, de sokan használják.
  • A SUN helyett az apache áll mögötte. Nem rossz társaság az apache group (bár vannak furcsa szokásaik), mégsem olyan erőteljes szervezet, mint a SUN. A SUN mostanában kezdi erőltetni a JSF nevű új technológiáját, ami elmondások szerint egy a tapestry-hez hasonló szörnyeteg, de igazi developer toolok nélkül esélytelen a fejlesztés JSF-el. Mivel erős lobbi áll mögötte (SUN és más tool developers) várhatóan jobban elterjed majd, mint a kis Tapestry :-(
Néhány lelőhely bővebb információkra éhezőknek: Minta alkalmazások:
no comments | post comment
snipsnap.org | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt