7. září 2008

JSF s NetAdvantage

Pro poslední projekt jsme se rozhodli použít JSF. Jedná se o intranetovou aplikaci s velkým důrazem na vzhled a funkčnost grafického rozhraní, takže jsme si řekli, že by to nemuselo být špatné to udělat pomocí JSF. Moc zkušeností s JSF jsme v týmu neměli, takže jsme se rozhodli použít nějakou komerční JSF distribuci, zejména kvůli podpoře. Nakonec jsme vybrali NetAdvantage for JSF (máme verzi 2008 Volume 1) od firmy Infragistics.

S NetAdvantage pracujeme celkem intenzivně dva měsíce, což už je doba na nějaké to shrnutí. Jako každé řešení, tak i toto má svoje výhody a nevýhody.

Výhody

  • podpora AJAXu - programátor nemusí nic vědět o AJAXu a může bez problémů dělat AJAXové aplikace. AJAXové chování lze ovlivnit jednak pomocí atributů jednotlivých komponent resp. tagů a nebo pomocí Java API z managed beanů. Už žádný Javascript, vše funguje úplně parádně samo.

  • kvalitní podpora - komponenty NetAdvantage se kupují na dobu jednoho roku a je možné si vybrat různé úrovně podpory. My máme tu základní úroveň, což znamená, že můžeme psát na fórum a nebo přímo jim s případnými problémy. Odezvy na naše dotazy jsou hodně dobré, řekněme v průměru do jednoho dne. Většinou odpovídají ještě v rámci dne (řekl bych, že někteří členové týmu jsou z východní Evropy, takže mají stejnou pracovní dobu jako my).

  • web grid (tabulka) - tabulku používáme velice často, a proto když jsme vybírali mezi různými distribucemi, tak jsme právě na tabulky dávali velký důraz. Tabulka od NetAdvantage toho umí opravdu hodně, to se nám již potvrdilo.

  • grafy - ty jsme zatím nepoužily, ale stačí se podívat do ukázek a člověk uvidí opravdu hodně velké množství všech různých typů grafů. Stačí si jen vybrat...

  • podpora Apache MyFaces a Sun RI JSF - NetAdvantage fungují nad oběma základníma implementacemi JSF. My jsme nejdříve používali Sunovskou verzi a pak jsme přešli na MyFaces verzi. Důvod? Zatím spíše subjektivní - MyFaces více žije, rychleji se opravují případné problémy a hlavně bychom rádi postupně začali využívat další komponenty (Tomahawk, Tobago, ...) od MyFaces.

  • podpora prohlížečů - vzhled a chování komponent je odladěné pro všechny nejpoužívanější prohlížeče.

  • velké množství skinů - NetAdvantage nabízí velké množství (cca 15) barevných skinů, takže není až tak velký problém s návrhem grafického rozhraní aplikace dle svých požadavků.

  • hotfixy - každý software má své chyby a nejinak je tomu u NetAdvantage. V průměru každý měsíc až dva měsíce vychází nový hotfix, který opravuje reportované chyby. Toto bych řekl, že celkem funguje.


Nevýhody

  • dokumentace - celkově mi dokumentace nepřijde moc kvalitní. JavaDoc sice existuje, ale skoro bez popisu. Zbylá dokumentace obsahuje pouze základní informace a některé věci tam ani nejsou, např. komponenta ig:link. Součástí instalace jsou i ukázky včetně zdrojových kódů, takže pro první seznámení to stačí. Horší kvalita dokumentace je vyvážena podporou ze strany výrobce komponent. Abych byl spravedlivý, tak zde musím uvést, že když jsem začínal s NetAdvantage, tak jsem začínal i s JSF, takže jsem dost často neřešil ani tak problémy s NetAdvantage jako spíše s JSF.

  • AJAX a MyFaces Orchestra spolu moc nefungují - používám MyFaces Orchestra kvůli konverzacím (viz minulý článek) a jak se ukázalo, tak neexistuje žádný standard pro implementaci AJAXu v JSF komponentách. Zatím to tedy dohromady moc nefunguje (některá AJAXová volání nesprávně ukončují konverzaci), snad se to nějak vyřeší (1, 2, 3)

  • podpora pouze JSF 1.1 - v současné verzi komponent NetAdvantage je podporována pouze JSF verze 1.1. JSF 1.2 budou podporovány od další verze.

  • komponenta ig:dropDownList nefunguje s konvertery - komponenta ig:dropDownList je náhradou za standardní JSF komponentu h:selectOneMenu, ovšem s podporou AJAXu. Bohužel ig:dropDownList nefunguje správně s konvertery, takže se s tím úplně dobře nepracuje.


Ještě toho budeme hodně zkoušet, takže pravděpodobně tento článek bude mít své pokračování. Zatím jsme třeba ještě nezapojili jiné komponenty třetích stran než od NetAdvantage, takže jsem zvědavý na vzájemnou kompatibilitu.

Další zajímavé zdroje:

1 komentář:

Petr Jůza řekl(a)...

Netrvalo to dlouho a vyšla nová verze 2008 Volume 2, která již má podporu JSF 1.2.