Co nowego w Sencha GXT 3?

Długo oczekiwana kolejna wersja Ext GWT ukazała się niedawno pod nową nazwą: Sencha GXT 3. Obsunięcie wydania było dość spore, bo jak dobrze pamiętam, pierwsze wzmianki o GXT 3 mówiły jeszcze o wakacjach 2011. Czy warto było czekać? Jakie zmiany przynosi nowa wersja? Zaraz się o tym przekonamy.

GXT 3 miało w założeniach skupić się na integracji z rozwiązaniami, które pojawiły się w GWT 2.x. Ext GWT 2 pojawiło się jeszcze za czasów GWT 1.5, gdzie takie dobrodziejstwa jak RequestFactory, UiBinder, Autobean, Code Splitting czy wiele innych, były dopiero w zamysłach twórców GWT. Ext GWT wprowadzało więc własne rozwiązania, niektóre dość ciekawe, np. wsparcie Java Beans za pomocą BeanModel’i. Z czasem jednak w GWT pojawiały się natywne mechanizmy, które rozwiązywały poszczególne problemy na nieco niższym poziomie, chociażby mechanizm Autobean, który jest silnie wykorzystywany przez GWT RequestFactory. Kod Ext GWT był jednak tak zaprojektowany, że korzystanie z nowych udogodnień było bardzo trudne albo zupełnie niemożliwe.

Sencha GXT 3 przynosi więc nam przede wszystkim wsparcie dla mechanizmów GWT 2.x, ale oprócz tego dorzuca jeszcze wiele innych ciekawostek. Mamy więc:

  • GWT Events & Handlers – System wysyłania i obsługi zdarzeń wykorzystuje teraz standardowe mechanizmy i zdarzenia z GWT.
  • GWT Based Rendering – Cykl życia komponentów w Ext GWT 2 nieco różni się od tego z GWT. Przede wszystkim w Ext GWT drzewo DOM było modyfikowane dopiero po inicjalizacji komponentu, co często sprawiało problemy w odwoływaniu się do tych komponentów w kodzie. Niezbędne były listenery oczekujące na zainicjowanie komponentu, aby można było wywołać na nim pewne akcje. Z kolei inne metody były dostępne tylko przed inicjalizacją komponentu, co sprawiało że w kodzie pojawiał się niezły bałagan. W Sencha GXT 3 jest teraz tak jak w „czystym” GWT, czyli drzewo DOM modyfikowane jest już w momencie tworzenia komponentów interfejsu, dzięki czemu wspomniane wyżej problemy już nie występują.
  • Full UiBinder Support – W końcu doczekaliśmy się też wsparcia dla UiBinder’a, co pozwala na deklaratywne tworzenie elementów widoku w plikach XML. Co ciekawe, twórcy Sencha GXT poszli nieco dalej i rozszerzyli możliwości UiBinder’a, zrobili to jednak w konsultacji z twórcami GWT, którzy wprowadzą te modyfikacje w nadchodzącym wydaniu GWT 2.5.
  • Improved Model Support – Wynalazki typu ModelData, BeanModelData, TreeModel z Ext GWT zostały zastąpione teraz wsparciem dla Autobean z GWT. Przede wszystkim pozwala to na łatwą integrację z GWT RequestFactory w komponentach GXT.
  • Cell Enhancements – Popularne komponenty GXT takie jak ListView, Tree, Grid, TreeGrid, korzystają teraz z Cell API wprowadzonego w GWT 2.1. Dzięki temu generowanie bardziej zaawansowanych widoków oraz dużych ilości danych jest teraz prostsze i o wiele szybsze.
  • Custom Theming – Każdy, kto próbował wcześniej modyfikować wygląd komponentów GXT, wie jakie to jest bolesne. Spowodowane to było przez to, że każdy element GXT sam generował swój kod html oraz nazwy styli CSS. Zastosowanie Apperance pattern z GWT znacznie uprości tworzenie nowych szablonów kolorystycznych bądź całkowitą zmianę wyglądu pewnych elementów interfejsu.
  • Plugin-free Charting – Nowe GXT doczekało się w końcu własnych mechanizmów rysujących wykresy. Co najważniejsze, wykresy są rysowane za pomocą natywnych rozwiązań dostępnych w przeglądarkach, jak SVG czy VML. To wszystko bez dodatkowych zależności w bibliotekach!
  • State API – Nowe API do zarządzania stanem komponentów wspiera teraz mechanizmy HTML5 takie jak local storage, dzięki którym pewne dane o stanie aplikacji będzie można zapisywać bezpośrednio w przeglądarce.
  • Sandboxing – Sencha GXT 3 zostało tak zaprojektowane aby w jednej aplikacji możliwe było osadzenie kilku wersji tej biblioteki. Dzięki temu skończą się problemy wynikające z aktualizacji GXT. Co ważne, Sencha GXT 3 może egzystować obok Ext GWT 2, co pozwoli na mniej bolesną migrację.

W końcu GXT doczekało się też wydań maven’owych umieszczanych w centralnym repozytorium przez ekipę Sencha. Aktualne wydanie Sencha GXT 3 dostępne jest pod artefaktem:

<dependency>
  <groupId>com.sencha.gxt</groupId>
  <artifactId>gxt</artifactId>
  <version>3.0.0</version>
</dependency>

Uwagę zwraca też nieco przebudowany Showcase GXT demonstrujący najważniejsze komponenty biblioteki. Źródła zostały podzielone teraz na większą ilość plików, co znacząco zwiększyło ich czytelność.

Wygląda więc na to, że zmiany poszły w dobrym kierunku i z całą pewnością warto poświęcić trochę czasu na migrację aplikacji do nowej wersji. Sam pewnie już wkrótce zabiorę się za napisanie pierwszego kawałka kodu w Sencha GXT 3!

Skomentuj

1 Komentarze.

  1. Bardzo fajne podsumowanie. Warto dodać, że API biblioteki też zostało bardzo przemodelowane i pisanie aplikacji z GXT3 jest bardziej developer friendly :)

Skomentuj


UWAGA - Możesz używać HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CommentLuv badge