Wybór technologii: AngularJS, Vaadin, ewentualnie coś innego.

0

Mam zamiar zrobic pewien system w formie aplikacji internetowej, coś w rodzaju panelu administracyjnego.

Nie spodziewam się zbyt wielu użytkowników, jednak z racji tego, że system może być używany dość intensywnie chciałbym aby był on wygodny w użytkowaniu. Powiedzmy, że pewnym wzorcem jeżeli chodzi o to kryterium są dla mnie aplikacje desktopowe. Bardzo istotnym kryterium jest również szybkość developmentu.

Ogólnie mówiąc nastawiam się raczej na bogaty interfejs użytkownika. Taki, który może posiadać wieloetapowe formularze, trochę bardziej złożone filtry i który byłby zdolny do zapamiętania stanu aplikacji (np. parametry filtrowania powinny byc zapamietywane po to aby uzytkownik po opuszczeniu jakiegos widoku i powrocie do niego nie musial znowu wprowadzac parametrow filtrowania).

Z powyższego względu szukam odpowiedniej technologii front-endowej. Na początku myślałem o AngularJS, ale dość ciekawe wrażenie robi Vaadin. Czy ktoś z tego korzystał? Jak wygląda szybkość developmentu w porównaniu do AngularJS? A moze jest coś innego godnego uwagi?

1

Trochę chaotyczny mój post wyszedł ale co tam...

Akurat używam AngularJS w pracy, a Vaadina w inżynierce. Przeczytałem sporą część dokumentacji V., nie przerabiałem jeszcze pisania po client-side.
Co do Vaadina:

  • popełniłem błąd nie pisząc UI deklaratywnie
  • integracja ze Springiem to bajka, naprawdę ;)

Nie spodziewam się zbyt wielu użytkowników, jednak z racji tego, że system może być używany dość intensywnie chciałbym aby był on wygodny w użytkowaniu. Powiedzmy, że pewnym wzorcem jeżeli chodzi o to kryterium są dla mnie aplikacje desktopowe. Bardzo istotnym kryterium jest również szybkość developmentu.

^ czyli Vaadin

Ogólnie mówiąc nastawiam się raczej na bogaty interfejs użytkownika. Taki, który może posiadać wieloetapowe formularze, trochę bardziej złożone filtry i który byłby zdolny do zapamiętania stanu aplikacji (np. parametry filtrowania powinny byc zapamietywane po to aby uzytkownik po opuszczeniu jakiegos widoku i powrocie do niego nie musial znowu wprowadzac parametrow filtrowania).

^Zarówno Vaadin i Angular będą OK.

  • denerwuje mnie... nawigacja, jest bardzo fajna klasa Navigator, która przechodzi z widoku do widoku, zmienia URLa itp. Fajnie, ale chodzenie po wewnętrznych widokach jest słabe. Dodatkowo wybór konkretnego widoku na podstawie URL, np. pobierajac ID z adresu jest... nieprzyjemne.

  • Ogólnie da się to wszystko "jakoś" zrobić, jednak czasem pisząć kod w Vaadinie mam odzucie, że robię coś nieładnie, ale po prostu muszę to tak zrobić

  • Finowie płacą za rozwiązanie bugów ;) https://docs.google.com/spreadsheets/d/1OfR2T_K2LwnemKSPh6xbxVKEOTX2pH1FfVVT2QINSZ8/edit#gid=0

  • Szybkość developmentu... to zależy od wyglądu głównie. Jeśli klientowi odpowiada theme "Valo" (taki motyw w V.) to ok, ale jeśli każda pierdoła ma być inaczej - Angular zdecydowanie będzie lepszy.
    Oczywiście, trzeba wtedy ingerować w CSSy (albo w SASSa), a jak trzeba już się w tym bawić to wolę Angulara i HTMLa.

  • Zwróć uwagę, że niektóre pluginy są płatne (Spredsheet, TestBench, TouchKit) i może nie będzie Ci to odpowiadać.

Co do Angulara, podoba mi się, że ma masę pluginów, trochę... backendowe podejście a sam kod kod jest uporządkowany i zmodularyzowany. Na pewno warto go znać.

Osobiście wybrałbym Vaadina, dla backendowca to zbawienie ;)

1

Pisałem w Vaadin, AngularJS i aktualnie ReactJS i muszę powiedzieć, że najlepiej i najłatwiej tworzy mi się rozwiązania właśnie w ReactJS jest to bardzo prostu lib w zrozumieniu i wykorzystaniu.
Często pisząc w Vaadin czułem, że niektóre rozwiązania to nakładanie gaci przez głowę a już max wkurw był jak nauczyłem się Vaadin i musiałem stworzyć custom component = poznanie GWT (a fu)

AngularJS fajny bo kompletne rozwiązanie ale isolated scope i errory z digest loop to jakiś horror do tego funkcje linkujące, compilujące, transclude......ehhhh

Pamiętaj, że dużo zależy czy chcesz brać komponenty gotowe np tabelka czy tworzyć od nowa. Np my korzystamy z ExtJS oraz KendoUI które są i tak w natywnym javascript

Ile ludzi tyle opini..

1

Ostatnio uczę się biblioteki OpenUI5. Na licencji Apache v2. Produkt ma już kilka lat, wcześniej był własnościowym produktem od SAP. Można poczytać:
https://openui5.hana.ondemand.com/#docs/guide/99ac68a5b1c3416ab5c84c99fefa250d.html

Język to oczywiście JavaScript. Wydaje mi się to takim Angularem, tyle że API prawdopodobnie dłużej pozostanie stabilne.

Przykładowe aplikacje w toolkicie mobilnym:
https://openui5.hana.ondemand.com/#demoapps.html

Kontrolki mobilne wyglądają tak:
https://openui5.hana.ondemand.com/explored.html

Są też desktopowe/portal (commons).

Ciekawą cechą jest wygodna integracja z usługami OData2. Można je udostępnić za pomocą np. Apache Olingo:
https://olingo.apache.org/
Póki co używałem ze zwykłym RESTem. Backend był w Spring MVC.

1

Jak dla mnie wymagania idealnie spełnia JSF z Primefaces

2

Ja również polecam ReactJS. Rozwiązanie tego pokroju daje programiście dużo swobody (pozostałe narzędzia nie narzuca Ci framework, lecz możesz dobrać to co Ci się najbardziej podoba). Poza tym w przypadku Reacta super jest myślenie skoncentrowane na tworzeniu komponentów. Jeśli ktoś miał już wcześniej styczność z tworzeniem widgetów pod frameworki desktopowe to wtedy poczuje się jak w domu :-)

1

Tak naprawdę dużo zależy jaki model bardziej ci pasuje. Vaadin to java i jeżeli nie potrzebujesz pałować się z GWT pisanie z wykorzystaniem podstawowych komponentów jest bardzo, ale to bardzo proste.
Angular to znowuż czysty JS ze wszystkimi zaletami jak i wadami. Pisałem w obu, co do Vaadin nawet popełniłem kilka "większych" tekstów. Jeżeli miałbym wybierać to stawiałbym, przy założeniu, że ma być to szybki projekt na Vaadin+Spring.

1 użytkowników online, w tym zalogowanych: 0, gości: 1