2008-08-27 13 views
16

Chciałbym stworzyć opartą na bazie danych interaktywną aplikację webową AJAX, która ma niestandardowy (specyficzny rodzaj zdarzeń, edycja) systemu kalendarzy. Wymagałoby to sporo JavaScriptu i AJAX-a i pomyślałem o Google Web Toolkit dla interfejsu i Ruby on Rails po stronie serwera.Czy powinienem używać Google Web Toolkit do mojej nowej aplikacji webowej?

Czy Google Web Toolkit jest niezawodny i dobry? Jakie mogą być ukryte zagrożenia, jeśli wybiorę Google Web Toolkit? Czy można go łatwo połączyć z Ruby on Rails po stronie serwera? Czy powinienem spróbować użyć bezpośrednio biblioteki JavaScript, takiej jak jQuery?

Nie mam żadnego doświadczenia w tworzeniu stron internetowych, za wyjątkiem kodu HTML, ale jestem doświadczonym programistą (C++, java, C#) i chciałbym używać tylko darmowych narzędzi do tego projektu.

Odpowiedz

12

RoR jest tak naprawdę jedną z rzeczy, do których GWT jest przystosowany do pracy, o ile właściwie używasz REST. To jest w książce aplikacji Google Web Toolkit Applications. Możesz zobaczyć demo z książki, używając tego rodzaju pomysłu: here. To nie znaczy, że nie będziesz miał żadnych problemów, ale myślę, że wsparcie jest zdecydowanie na to.

Istnieje prosty projekt ułatwiający RoR/GWT, aby znaleźć here (licencja MIT). Nie miałem jeszcze okazji tego wypróbować, ale wygląda na to, że włożono w to sporo myśli. Jeden błąd polega na tym, że wygląda na to, że nie został jeszcze w pełni przetestowany w wersji 2.1 Rails, tylko 2,0, więc możesz napotkać kilka (prawdopodobnie niewielkie i możliwe do naprawienia) błędy.

1

Można kodować wszystko w Javie przy użyciu GWT i można zintegrować z nim istniejące biblioteki javascript innych firm. To jest bardzo dobre. Nigdy jednak nie używałem RoR, więc nie mogę nic na ten temat powiedzieć.

1

Jeśli masz doświadczenie w Javie, ale nie w JavaScript/CSS, to GWT będzie ratował życie (chyba że chcesz się ich oczywiście nauczyć). CSS ma tak wiele drobnych szczegółów. Często zdarza się, że spędzamy pół dnia, ustalając niewspółosiowość 2 pikseli, która występuje tylko w IE6.

Nie jestem pewien, jak łatwo byłoby użyć ROR na zapleczu ... Jest to możliwe, jestem pewien, ponieważ komunikacja GWT ajax to tylko serwlety. Zapewniają jednak bardzo dobrą funkcjonalność przesyłania obiektów Java w jedną i drugą stronę, której nie będzie można używać, jeśli serwer nie używa również Java.

0

Można również wziąć pod uwagę Grails ("Groovy on Rails"), który daje korzyści z frameworka Rails i użycia Java VM.

2

Jeśli znasz JAVA i masz gdzieś go obsługiwać (jak tomcat lub pojemnik glassfish), polecam to znacznie więcej niż używanie Ruby na zapleczu. Głównym powodem jest to, że możesz udostępniać wszystkie swoje obiekty i używać wbudowanego mechanizmu RPC. Zrobiłem to dla wielu naszych projektów i jest to ogromna oszczędność czasu, nie wspominając już o tym, że kod jest mniej podatny na błędy, ponieważ nie konwertujesz twoich obiektów java na nic, a potem z powrotem.

Połączyłem mój GWT z Railsami wcześniej, używając funkcji to_json w Railsach, a następnie czytając JSON w GWT. To wszystko jest obsługiwane, ale jest o wiele bardziej irytujące niż samo tworzenie back-end w JAVA.

Oczywiście, jeśli masz tani hosting, to kontenery Java są prawie wykluczone, w takim przypadku sądzę, że Rails byłoby następnym najlepszym rozwiązaniem.

2

GWT jest bardzo wysokiej jakości z wielką społecznością. Jednak musisz znać CSS, jeśli chcesz dostosować wygląd rzeczy (będziesz) - CSS może zrobić dużo układu, tak jak zwykła sieć, jeśli chcesz.Biblioteki takie jak GWT-ext lub ExtGWT mogą nieco pomóc, ponieważ mają wspaniały "gotowy do użycia" wygląd, ale za cenę (dodatkowy rozmiar do twojej aplikacji).

4

Jeśli chcesz zintegrować GWT z backendami innych niż Java, takimi jak ROR, PHP itp., Powinieneś pamiętać, że GWT 1.5 obsługuje teraz typy nakładek JavaScript. Ta funkcja umożliwia pisanie klas, które można odwzorować za pomocą natywnych obiektów JavaScript w celu łatwego udostępnienia metod dostępu do właściwości tych obiektów i innych rozszerzonych funkcji.

Zobacz ten link aby uzyskać więcej informacji: JavaScript Overlay Types

więc można powrócić JSON zakodowane dane z backend poprzez AJAX wzywa, analizować go w obiekt JavaScript, a następnie uzyskać dostęp do danych za pośrednictwem kodu GWT Java przy użyciu nakładki klasy, które stworzyłeś. Lub kiedy renderujesz swoją stronę, możesz renderować statyczne dane konfiguracyjne jako Obiekty JavaScript i wczytać je za pomocą tego mechanizmu, zamiast wykonywać połączenie AJAX, aby pobrać dane.

1

Ostatnio napisałem o niektórych z the disadvantages of GWT. Głównymi wadami są: długi cykl wdrażania zmian w niektórych częściach aplikacji i dość stroma krzywa uczenia się. Jako doświadczony programista Java, drugi powinien być mniejszym problemem i jeśli używasz osobnego backendu, pierwszy jest również łagodzony (ponieważ kompletna redeploy jest wymagana przede wszystkim przy zmianie "serwera" części aplikacji).

1

GWT to wspaniałe ramy z dużym potencjałem. Pamiętaj jednak, że wciąż jest całkiem nowy. Istnieje kilka nierozwiązanych błędów, które mogą cię naprawdę irytować i zwykle wymagają brzydkich obejść, aby się przedostać. Społeczność jest świetna, ale prędzej czy później prawdopodobnie pojawi się kilka problemów, na które Google nie może odpowiedzieć.

Ale hej, mówię, idź za to. Potencjał GWT jest niesamowity i założę się, że przyszłość będzie jasna.

1

Zdecydowanie powinieneś używać GWT do nowego projektu (całkiem łatwo go użyć w starym projekcie).

Z mojego doświadczenia wynika, że ​​bardzo szybko można się uczyć i używać. Skompilowany kod javascript jest znacznie lepszy niż wszystko, co można napisać ręcznie, i działa też szybko.

Inną korzyścią jest możliwość debugowania masz kodu (co jest do cholery z samym javascript)

1

Ten blog ma wejść z wielu doświadczonych użytkowników GWT i mają kilka świetnych punktów dyskusji. Osobiście mam ogromne doświadczenie w zakresie różnych frameworków UI. Dodam moje dwa centy. Spójrzmy na podstawowych zalet i wad GWT

Fundamental Advantage

GWT trwa programowanie warstwy internetowej Java. Tak więc oczywiste zalety Javy zaczynają działać. Zapewni to programowanie zorientowane obiektowo. Zapewni także doskonałe sprawdzanie debugowania i kompilacji. Ponieważ generuje kod HTML i JavaScript, będzie miał również zdolność ukrywania pewnej złożoności w swoim generatorze.

Fundamental Wada

Wadą zaczyna się od tej samej instrukcji. GWT przenosi programowanie warstwy internetowej do JAVA. Jeśli znasz JAVA, prawdopodobnie nigdy nie będziesz szukał alternatywnego języka do napisania swojej logiki biznesowej. Jest samowystarczalny i świetny.Ale jeśli chodzi o pisanie konfiguracji dla aplikacji JAVA. Używamy plików właściwości, bazy danych, XML itp. Nigdy nie przechowujemy konfiguracji w pliku klasy JAVA. Zastanów się, dlaczego?

Dzieje się tak, ponieważ konfiguracja jest statyczna. Często wymaga hierarchii. Powinien być czytelny. Nigdy nie wymaga kompilacji. Nie wymaga znajomości języka programowania JAVA. Krótko mówiąc, jest to inna gra w piłkę. Teraz pytanie brzmi, w jaki sposób odnosi się do naszej dyskusji?

Pomyślmy teraz o stronie internetowej. Czy myślisz, że pisząc stronę, piszemy logikę biznesową? Absolutnie nie. Strona internetowa to tylko konfiguracja. Jest to konfiguracja hierarchicznych kontenerów i pól. Musimy napisać logikę biznesową dla danych, które będą przechwytywane i wyświetlane na stronie internetowej, a nie tworzyć samej strony internetowej.

Poprzedni akapit jest bardzo mocnym stwierdzeniem. To wyjaśni, dlaczego strony internetowe oparte na HTML i XML są nadal najbardziej popularne. XML to najlepszy sposób na pisanie konfiguracji. Ramy muszą umożliwiać wyraźne oddzielenie strony internetowej od logiki biznesowej (cel struktury MVC). W ten sposób projektant stron internetowych będzie mógł zastosować swoje umiejętności wizualizacji i artyzmu, aby tworzyć wspaniałe strony internetowe, po prostu konfigurując XML i nie przejmując się zawiłościami języka programowania. Programiści będą mogli wykorzystać swoją najlepszą w biznesie JAVA do pisania logiki biznesowej.

Wreszcie, porozmawiajmy o reperkusje w zakresie bezpośrednich. GWT łamie tę zasadę, więc musi zakończyć się niepowodzeniem. Koszt opracowania aplikacji GWT będzie bardzo wysoki, ponieważ do pisania stron internetowych będziesz potrzebować programistów obsługujących wiele języków. Wymagany wygląd i styl będą bardzo trudne do osiągnięcia. Czas zmiany strony internetowej będzie bardzo wysoki z powodu niepotrzebnej kompilacji. I wreszcie, od kiedy piszesz strony internetowe w języku JAVA, bardzo łatwo jest uszkodzić je logiką biznesową. Nieświadomie wprowadzisz złożoności, których należy unikać.

+4

To nie jest miejsce do jastrząb swoje technologie w łamanym angielskim – Yarin

+0

Po wykorzystaniu GWT w wielkim projekcie otoczeniu biznesowym, przez 6 miesięcy zgadzam się mocno. GWT to NIEPOWODZENIE. – rapadura

0

Nasz zespół niedawno to samo pytanie, a my zdecydowaliśmy się iść z GWT, zwłaszcza, że ​​wtyczki projektant sprawiło pracy z GWT bardziej dostępnym dla specjalistów non-java w zespole. Ktokolwiek wybiera ten wybór, po prostu uważaj, NIE używaj wtyczki GWT Designer !! Nie został zaktualizowany (przynajmniej w ciągu roku), aby utworzyć aplikację GWT zgodną z IE8.

Nasz zespół już prawie zakończone nasze układy aplikacji, które były doskonale pracujących w FF, Chrome i Safari. Potem wybuchły w IE. Program IE 7 ładował strony częściowe (ale nie zawierał elementów złożonych), a program IE8 nie był nawet w stanie załadować aplikacji. Po prostu wisiał.

Zaprojektowana wtyczka ma przyciski, które pozwalają użytkownikowi dodawać widżety CellTable, które nie są zgodne z IE (CellTable, DeckPanel, Horizontal Panel, Vertical Panel, itp.). Będą one powodować silny ból, gdy układy muszą być ponownie wykonane w Javie bez pomocy projektanta.

Doświadczeni użytkownicy GWT kocham go, ale wtyczki projektant zabije.