Google Web Toolkit. Powinieneś wiedzieć... Przydatna będzie podstawowa znajomość JAVA.
|
|
- Mikołaj Janicki
- 6 lat temu
- Przeglądów:
Transkrypt
1 Google Web Toolkit Czyli AJAX na szynach Google Web Toolkit (GWT), to nowe dziecko Google, wydane na świat niespełna dwa lata temu. Swoją karierę GWT rozpoczął na sympozjum JavaOne w 2006 roku i od tego czasu jego popularność lawinowo wzrasta. Niedawno ogłoszono, że GWT ściągnęło już ponad milion użytkowników. Można zaryzykować stwierdzenie, że świat Javy oszalał na punkcie GWT. Dowiesz się... Jakie są zalety GWT. Poziom trudności Dlaczego w dzisiejszym świecie Web 2.0 GWT się liczy? Odpowiedź jest prosta, daje możliwości wykorzystania rozbudowanych i dojrzałych narzędzi języka Java, przy pracy z JavaScript em. Dzięki GWT, możemy teraz refaktorować swój JavaScript, debugować go, używać mechanizmu podpowiadania nazw i składni. Już samo to, daje duże możliwości w pracy z JavaScriptem, ale GWT idzie dalej! Wyobraźmy sobie, że możemy wykorzystać w JavaScript cie wszystkie zalety silnie obiektowego języka wysokiego poziomu, a przy tym dalej tworzyć kod zrozumiały dla przeglądarek internetowych. To jest np. możliwość używania interfejs ów, typowania zmiennych (a co za tym idzie i przeładowania konstruktorów czy metod) i wielu, wielu innych. Posiada cechy, które zawiera język Java, a które nie są dostępne w JavaScript. Jak to możliwe? To niesamowicie proste, GWT pozwala Ci tłumaczyć aplikacje napisane w Javie na JavaScript, przy zachowaniu pełnej kontroli nad wynikowym kodem. W artykule tym dowiesz się, co tak naprawdę to oznacza i dlaczego jest to tak rewolucyjne. Cała treść podzielona została na cztery części: wprowadzenie do GWT gdzie poznasz podstawowe informacje, jak rozpocząć pracę z GWT; Powinieneś wiedzieć... Przydatna będzie podstawowa znajomość JAVA. pierwsza aplikacja gdzie pokażemy jak to działa, ale na razie tylko po stronie klienckiej; GWT i RPC / AMFPHP gdzie przedstawimy bardziej zaawansowany przykład, w którym komunikujemy się z serwerem; dodatkowe informacje gdzie wejdziemy mocniej w szczegóły, które, mamy nadzieję, przekonają do GWT tych jeszcze nieprzekonanych. Listing 1. Uruchamiamy projectcreator Wprowadzenie do GWT Teraz, gdy już wiemy, że Google Web Toolkit to narzędzie do tłumaczenia kodu Java na Java- Script, warto wspomnieć, że to także doskonały framework, którego zaletą jest prostota w wykorzystaniu AJAX. Tak naprawdę GWT składa się z trzech części, zamkniętych w pojedynczych plikach JAR (Java ARchiwe): gwt user.jar to paczka przechowująca gotowe do wykorzystania w środowisku JS komponenty i narzędzia; gwt servlet.jar paczka implementująca mechanizmy pozwalające na ko- C:\gwt>projectCreator overwrite eclipse SmallBear ant smallbear out c:\workspace\ smallbear w wyniku czego powinniśmy zobaczyć: Created directory c:\workspace\smallbear\src Created directory c:\workspace\smallbear\test Created file c:\workspace\smallbear\smallbear.ant.xml Overwriting existing file c:\workspace\smallbear\.project Overwriting existing file c:\workspace\smallbear\.classpath a następnie aplicationcreator poleceniem: C:\gwt>applicationCreator overwrite eclipse SmallBear out c:\workspace\smallbear w wyniku czego powinniśmy zobaczyć: pl.rmalinowski.client.smallbear Created directory c:\workspace\smallbear\src\pl\rmalinowski Created directory c:\workspace\smallbear\src\pl\rmalinowski\client Created directory c:\workspace\smallbear\src\pl\rmalinowski\public Created file c:\workspace\smallbear\src\pl\rmalinowski\smallbear.gwt.xml Created file c:\workspace\smallbear\src\pl\rmalinowski\public\smallbear.html Created file c:\workspace\smallbear\src\pl\rmalinowski\client\smallbear.java Created file c:\workspace\smallbear\smallbear.launch Created file c:\workspace\smallbear\smallbear shell.cmd Created file c:\workspace\smallbear\smallbear compile.cmd 46 06/2007
2 GWT munikację serwera napisanego w Javie z aplikacją napisaną w JS. (My nie używamy); gwt dev windows.jar lub gwt dev linux. jar serce GWT, mechanizmy tłumacząca Javę na JS. Aby rozpocząć pracę z GWT musimy: mieć zainstalowaną wirtualną maszynę Java (min wersja 1.4), jeśli jej nie masz, ściągnij i zainstaluj Sun Java Standard Edition SDK ( index.jsp); ściągnąć Google Web Toolkit package ( html); posiadać podstawy w rozumieniu języka Java 1.4. Do pracy przydatny będzie też edytor tekstu, posiadający możliwości analizowania składni Java, my używać będziemy Eclipse, ponieważ ma on bezpośrednie wsparcie dla i w GWT. GWT nie trzeba instalować, wystarczy ściągnąć i rozpakować np. do katalogu c:\gwt. Wraz z GWT dostajemy narzędzia do tworzenia szkieletu projektu i aplikacji zgodnej z zaleceniami developerów z Google. Prawidłowa aplikacja GWT składa się z: eclipse tworzy konfiguracje uruchamiającą projekt eclipsowy w trybie debug; out folder do zapisania plików wynikowych (domyślnie bieżący); overwrite nadpisuje istniejące pliki; ignore ignoruje istniejące pliki, (nie nadpisuje); classname pełna nazwa tworzonej startowej klasy aplikacji. Pierwsza aplikacja Przechodzimy do stworzenia pierwszej aplikacji w GWT. Jeśli pojawiły się już jakieś niejasności, to ten krok prawdopodobnie większość z nich rozwieje. Na początku stwórzmy nowy projekt w Eclipse. W tym celu klikamy: Menu > File > New > Project. Z wyświetlonych kreatorów wybieramy Java Project, nazywamy go SmallBear i klikamy na przycisk Finish, zapamiętując położenie naszego nowo powstającego projektu, (ramka Contents pole Direcotry) w naszym przypadku to c:\workspace. Teraz przechodzimy do nadpisania tak powstałego zalążka nowego projektu, przez szkielet generowany przy użyciu narzędzi GWT. Uruchamiamy projectcreator poleceniem: (Listing 1.). Po wykonaniu przedstawionych komend i odświeżeniu projektu w Eclipse, pliku HTML, w którym osadzana zostanie nasza aplikacja JS, musi tu też zostać zainicjowany podstawowy moduł GWT; plik nazwa_mojego_modułu.gwt.xml, w którym opisane są dodatkowe parametry dla translatora GWT; klasy, implementującej interfejs EntryPoint, jest to miejsce w którym rozpoczyna pracę nasz program. Przyjrzymy się teraz, jak działają wspomniane narzędzia: Rysunek 1. Widok szkieletu aplikacji GWT w Eclipse projectcreator tworzy szkielet nowego projekt, jego składnia to: ProjectCreator [ ant projectname] [ eclipse projectname] [ out dir] [ overwrite] [ ignore] gdzie: ant generuje Ant buildfile do kompilacji źródeł (.ant.xml będzie dodany); eclipse generuje projekt eclipsowy out folder do zapisania plików wynikowych (domyślnie bierzący); overwrite nadpisuje istniejące pliki; ignore ignoruje istniejące pliki, (nie nadpisuje); applicationcreator tworzy szkielet startowej aplikacji, jego składnia to: ApplicationCreator [ eclipse projectname] [ out dir] [ overwrite] [ ignore] classname gdzie: Rysunek 2. Widok działającej aplikacji w trybie HostedMode 47
3 Rysunek 3. Widok działającej aplikacji w przeglądarce Firefox (WebMode) Rysunek 4. Przeglądanie serwisów AMFPHP. szkielet aplikacji GWT powinien wyglądać tak, jak na Rysunku 1. Warto w tym miejscu zauważyć, że tworząc aplikację, klasę startową umieściliśmy w pakiecie client. Jest to zalecane przez developerów Google i jeśli tego nie zrobimy, skrypt generujący schemat aplikacji powinien pokazać nam mniej więcej taki komunikat: (Listing 2.). Warto o tym pamiętać, by w przypadku takiego przeoczenia nie marnować czasu na zastanawianie się, gdzie popełniliśmy błąd. Ponieważ skorzystaliśmy z generatora szkieletu aplikacji, tak przygotowany projekt możemy od razu uruchomić. Do wyboru mamy dwa tryby: HostedMode i WebMode. Tryb HostedMode jest trybem w pełni zarządzanym przez GWT, oznacza to, że możemy tu debugować uruchamiany kod i śledzić kolejne jego kroki, analizując dokładnie to, co dzieje się z powołanymi do życia zmiennymi czy obiektami. Tryb WebMode to już domyślny tryb, w jakim będzie pracować nasza aplikacja, czyli wskazana przez nas przeglądarka internetowa. Developerzy GWT dają nam gwarancję, że aplikacja uruchamiana w trybie Hosted, będzie działała identycznie jak w trybie Web. Warto tu zauważyć, że oznacza to też, że niezależnie od tego, czy uruchomimy nasz skrypt w Internet Explorerze czy też w Firefoksie, będzie on działał tak samo. Aby uruchomić aplikację w trybie Hosted wywołujemy wygenerowany w katalogu domowym projektu skrypt SmallBear shell, efekt oczekiwany widoczny jest na Rysunku 2. Aby uruchomić aplikację w trybie Web uruchamiamy skrypt SmallBear compile, który to jednak nie otworzy nam domyślnej przeglądarki, a jedynie przetłumaczy aplikację Java na JavaScript. Wynik tego tłumaczenia widoczny jest w katalogu www (jest to domyślny katalog generowania JS można to zmienić). Warto zauważyć, że tak wygenerowana aplikacja, jest zwykłą stroną html, którą możemy otworzyć bezpośrednio na dysku twardym, innymi słowy, nie potrzebujemy do tego serwera WWW. Efekt uruchomienia pliku SmalBear.html w przeglądarce Firefox widoczny jest na Rysunku 3. Prześledźmy teraz kod programu (Listing 3.), aby sprawdzić co się tak naprawdę stało. Stworzyliśmy klasę SmallBear, która implementuje interfejs EntryPoint. EntryPoint to miejsce, w którym rozpoczyna pracę aplikacja. Pisząc dokładniej, przy ładowaniu strony internetowej, w pierwszej kolejności ładowane jest i inicjowane środowisko GWT (plik gwt.js). W kroku następnym ładowana jest nasza aplikacja, a po zakończeniu uruchamiana jest metoda onmoduleload. Tu rozpoczyna się praca programu. Jak widać, nie ma tu trudności, w kroku 1. tworzony jest nowy przycisk z etykietką Click me, w kroku 2. tworzona jest pusta etykieta. Następnie oprogramowujemy zdarzenie onclick przycisku button krok 3., tworząc do tego calu tak zwaną klasę anonimową, czyli klasę bez nazwy, implementującą metodę onclick (4). Metoda ta zostanie wywołana za każdym razem, gdy przycisk button zostanie kliknięty. Sprawdzamy tu, czy etykieta label jest wciąż pusta (5), jeśli tak, to ustawiamy nowy tekst do wyświetlania (6), jeśli nie (7) to czyścimy nazwę etykiety (8). Na koniec jeszcze wstawiamy przycisk (9) i etykietę (10) na stronę tak, by użytkownik mógł je zobaczyć. Na koniec warto jeszcze spojrzeć na to, jak wygląda plik htmlowy (Listing 4.]. Ciekawsze miejsca to (1), gdzie dodajemy wygenerowany przez GWT kod JavaScript aplikacji. (2) to opcjonalne włączenie emulatora historii, dzięki tej linii kodu w przyszłości będzie można używać przycisku przeglądarki cofnij mimo, że nie doszło ani razu do przeładowania strony internetowej. W punkcie (3) tworzona jest tabelka z dwoma identyfikatorami slot1i slot2, łatwo skojarzyć to z punktami (9,10) Listingu 3., by zauważyć, że jest to miejsce, gdzie zostaną wstrzyknięte przycisk i etykieta aplikacji. Dzięki takiemu zapisowi możemy two /2007
4 GWT rzyć oddzielnie własną strukturę HTML, wypełniając tylko odpowiednie elementy, w pełni zarządzanymi przez GWT obiektami. Aby upewnić się, że wszystko jest zrozumiałe, proponujemy dokonać własnych zmian w kodzie, sprawdzając, jak zareaguje (albo czy w ogóle zareaguje) na to aplikacja GWT. Po więcej ciekawych przykładów wykorzystania GWT odsyłamy na stronę domową projektu: http: //code.google.com/webtoolkit/documentation/ examples/. Warto obejrzeć dema, zanim przejdziemy do następnego tematu. GWT i HTTPRequest Jak na razie pokazaliśmy jedynie, że tłumaczenie Javy do JavaScrpt u działa, ale nie było w tym nic z asynchronicznej komunikacji z serwerem (AJAX). Powoli przejdziemy do wywoływania zdalnych metod na serwerze PHP. Zaczniemy od odrobiny teorii. Dla naszych potrzeb, komunikacją z serwerem w GWT, zajmuje się klasa HTTPRequest. Posiada ona cztery statyczne metody implementujące asynchroniczną wymianę informacji. W poniższym przykładzie wykorzystamy tylko jedną z nich: asyncget(string url, gdzie: ResponseTextHandler handler) url to to URL (musi być adresem bezwsględnym) handler to obiekt, który zostanie poinformowany w momencie odpowiedzi serwera. Aby w najprostszy z możliwych sposobów zaprezentować działanie powyższego, zmieńmy bazową aplikację tak, by na zdarzenie kliknięcia pobierała informację o naszym numerze IP z witryny whatismyip.org/. W tym celu zmieniamy implementację metody onclick w klasie SmallBear (patrz Listing 5.), tak by w kroku 1. zapytać serwer o nasz numer IP, w kroku 2. zareagować na odpowiedź serwera, wyświetlając odpowiedź w kroku 3. JavaScriptowy alert. To nam wystarczy, by upewnić się, że komunikacja asynchroniczna działa. GWT i AMFPHP Potrafimy już wysyłać i odbierać proste dane z serwera. Bardziej skomplikowane struktury danych trzeba niestety serializować. My do tego celu będziemy używać formatu JSON (JavaScript Object Notation), który doczekał się implementacji parserów w większości znanych języków programowania, a napewno w PHP i GWT. Pozostaje nam tylko odebrać komunikat po stronie PHP, zdeserializować go, przetworzyć zapytanie i wysłać odpowiedź do GWT. Sprawa prosta, ale dla bardziej zaawansowanych aplikacji, gdy serwer implementować będzie wiele zdalnie wywoływanych metod, należałoby przewidzieć możliwość dobrego zarządzania takimi metodami. Z pomocą przychodzi dojrzała już aplikacja AMFPHP. AMFPHP w wersji 1.9 na dzień pisania tego artykułu był dostępny jedynie na blogu twórcy projektu ( (dla niecierpliwych Listing 2. Komunikat skryptu generującego schemat aplikacji Please use 'client' as the final package, as in 'com. example.foo.client.myapp'. It isn't technically necessary, but this tool enforces the best practice. link bezpośredni: uploads/amfphp-1.9.beta zip). Po ściągnięciu wystarczy rozpakować archiwum do katalogu hdocs serwera apache i przejść do katalogu bazowego aplikacji, czyli {$HTDOC_DIR/amfphp/services. To tutaj będziemy umieszczali nasze usługi dla GWT. Zasada działania AMFPHP jest bardzo prosta, jeśli wywołamy na serwerze www zapytanie postaci: json.php/myservice.myremotemethod/arg1/ arg2 to zostanie ono obsłużone w następujący sposób: AMFPHP powoła do życia instancje klasy MyService (której definicja musi znajdować się w pliku MyService.php w katalogu /services); sprawdzi, czy myremotemethod jest metodą ze zdefiniowanym zdalnym dostępem; uruchomi metodę myremotemethod z argumentami arg1, arg2 odpowiednio deserializując parametry, jeśli trzeba; na koniec serializuje i zwraca wynik. R E K L A M A
5 Rysunek 5. Debugowanie aplikacji GWT w Eclipse IDE Przykład klasy implementującej prosty serwis dla AMFPHP widać na Listingu 5. W Punktach:1., 2. i 3. definiujemy odpowiednio nazwę udostępnianej metody, jej opis i zdalny typ dostępu. Punkt 4. to już implementacja metody, której nazwę zdefiniowaliśmy w Punkcie 1. Dla tak zdefiniowanego serwisu, możemy uruchomić dostarczoną przez AMFPHP przeglądarkę do testowania usług. Wystarczy otworzyć plik browser/index.html i powinniśmy zobaczyć jak AMFPHP widzi nasz serwis (Rysunek 4.). Tu możemy też, po raz pierwszy, sprawdzić czy działa on poprawnie. Przetestujmy metodę getsum, wpisując w odpowiednie pola wybrane wartości i uruchamiając metodę poprzez naciśnięcie przycisku call. Wynik spodziewany, widoczny jest na Rysunku 4. Pozostaje teraz wywołać daną metodę poprzez aplikację GWT. Po stronie AMFPHP serializacja i deserializacja robiona jest automatycznie, po stronie GWT musimy obsłużyć ją sami. Do tego przykładu wykorzystamy wbudowaną w GWT bibliotekę (com.google.gwt. json.json). Aby móc ją wykorzystać, musimy do pliku SmallBear.gwt.xml (w tym przypadku plikten znajduje się w katalogu c:\workspace\ smallbear\src\pl\rmalinowski\) dodać dodatkowy wpis: <inherits name= 'com.google.gwt.json.json'/> Poinformuje on kompilator GWT, że do wygenerowanego JavaScript u należy dodać wskazaną bibliotekę. Użycie biblioteki wygląda następująco: serializacja: JSONNumber jsonnumber = new JSONNumber(12.0); // zwraca zakodowaną wartość //numeryczną JSONNumber.toString(); deserializacja : try { JSONObject jsonobject = (JSONObject) JSONParser.parse( jsonstringwith SerializedObject); catch (JSONException e) { Window.alert('JSON parse error!'); Możemy teraz przejść do etapu komunikacji z serwerem AMFPHP. W tym celu URL z Listingu 5., kroku 1., zamieniamy zgodnie z szablonem przedstawionym powyżej. Wywołanie zdalnej metody powinno wyglądać jak na Listingu 7. Tak przygotowaną aplikację możemy już uruchamiać. Dodatkowe informacje Przedstawiony przykład komunikacji GWT z PHP jest bardzo prosty i dla bardziej zaawansowanych aplikacji wymaga rozbudowania. Zanim zdecydujemy się, czy używać GWT we własnych projektach, warto jeszcze zapoznaćsię z kilkoma dodatkowymi funkcjonalnościami, jakie zapewnia ten framework. Debugowanie Uruchamiając aplikację GWT w tzw. hosted mode, mamy możliwość debugowania jej, co oznacza, że możemy śledzić krok po kroku jak wykonuje się aplikacja, jeszcze przed przetłumaczeniem jej na JavaScript. Używając eclipse wystarczy z menu wybrać Run > Debug a następnie z listy Java Aplication wybrać nazwę projektu i kliknąć w przycisk Debug. Jeśli wcześniej zostały ustawione breakpoint y, to powinniśmy zobaczyć widok podobny do ekranu z Rysunku 5. Rysunek 6. Wynik testów jednostkowych w Eclipse IDE Testy jednostkowe GWT wspiera również testy jednostkowe. Wraz z narzędziami ProjectCreator i AplicationCreator dostajemy JunitCreator. Jest to 50 06/2007
6 GWT narzędzie do automatycznego generowania testów i osadzenia ich we wskazanym projekcie. Składnia JunitCreator-a to: JUnitCreator junit pathtojunitjar module modulename [ eclipse projectname] [ out dir] [ overwrite] [ ignore] classname gdzie: junit określa ścieżkę do junit.jar (wymagane); module nazwa testowanego modułu GWT (wymagane); eclipse tworzy konfiguracje integrujący junit z eclipse; out folder do zapisania plików wynikowych (domyślnie bierzący); overwrite nadpisuje istniejące pliki; ignore ignoruje istniejące pliki, (nie nadpisuje); classname pełna nazwa tworzonej klasy testowej. Aby móc przeprowadzać testy jednostkowe projektu SmallBear uruchamiamy junitcreator : C:\gwt>junitCreator junit c:\junit\ junit.jar module pl.rmalinowski. SmallBear eclipse SmallBear out c: \workspace\smallbear pl.rmalinowski. client.smallbeartest Używając junitcreator a należy wskazać ścieżkę dostępu do biblioteki junit.jar, w tym przypadku jest to c:\junit\junit.jar. Jeśli nie posiadasz biblioteki junit.jar, możesz ją ściągnąć ze strony projektu ( lub użyć biblioteki wbudowanej w eclipse: ({$ECLIPSE_DIR\plugins\ org.junit_3.8.1\junit.jar) wynik to: Listing 8. Po odświeżeniu projektu w oknie eclipse, powinniśmy zobaczyć nowy katalog test, a w nim wygenerowany test. Klikając prawym przyciskiem na pl.rmalinowski.client.smallbeartest, a następnie wybierając Debug as > Java application rozpoczynamy test aplikacji. (Test uruchomić możemy również, wybierając z menu Run > Debug > Junit > SmallBearTest). Do wyboru mamy dwa rodzaje testów, testy w trybie hosted i web. Tak jak to zostało już na początku wspomniane, pierwszy tryb wykonuje aplikację bez tłumaczenia jej na JS, a drugi tryb najpierw konwertuje Javę do JS i dopiero wtedy ją uruchamia. W tym przypadku testy zostaną wykonane już na domyślnym kodzie JS. Rysunek 6. przedstawia ekran, prezentujący wynik sumaryczny uruchomionych testów. JavaScript Native Interface GWT nie byłby tak popularny, gdyby zamykał drzwi tym, którzy chcieliby mimo wszyst- Listing 3. Plik SmallBear.java package pl.rmalinowski.client; // klasy, które będziemy wykorzystywać w tym przykładzie import com.google.gwt.core.client.entrypoint; import com.google.gwt.user.client.ui.button; import com.google.gwt.user.client.ui.clicklistener; import com.google.gwt.user.client.ui.label; import com.google.gwt.user.client.ui.rootpanel; import com.google.gwt.user.client.ui.widget; // i jeszcze to co będzie wykorzystywane w następnych przykładach import com.google.gwt.user.client.httprequest; import com.google.gwt.user.client.window; import com.google.gwt.user.client.responsetexthandler; import com.google.gwt.json.client.jsonexception; import com.google.gwt.json.client.jsonnumber; import com.google.gwt.json.client.jsonparser; public class SmallBear implements EntryPoint { public void onmoduleload() { final Button button = new Button("Click me"); //(1) final Label label = new Label(); //(2) button.addclicklistener(new ClickListener() { //(3) public void onclick(widget sender) { //(4) if (label.gettext().equals("")) //(5) label.settext("hello World!"); //(6) else //(7) label.settext(""); //(8) ); RootPanel.get("slot1").add(button); //(9) RootPanel.get("slot2").add(label); //(10) Listing 4. Plik SmallBear.html <html> <head> <title>wrapper HTML for SmallBear</title> <style> body,td,a,div,.p{font family:arial,sans serif div,td{color:# a:link,.w,.w a:link{color:#0000cc a:visited{color:#551a8b a:active{color:#ff0000 </style> <script language='javascript' src='pl.rmalinowski. SmallBear.nocache.js'></script> <! (1) > </head> <body> <iframe src="javascript:''" id=" gwt_historyframe " style="width:0;height:0;border:0"></iframe> <! (2) > <h1>smallbear</h1> <p> This is an example of a host page for the SmallBear application. (...). </p> <table align=center> <tr> <td id="slot1"></td><td id="slot2"></td> <! (3) > </tr> </table> </body> </html> 51
7 Listing 5. Przykład asynchronicznej komunikacji button.addclicklistener(new ClickListener() { public void onclick(widget sender) { HTTPRequest.asyncGet(" new ResponseTextHandler() { //(1) public void oncompletion(string responsetext) { //(2) Window.alert("My ip is: " + responsetext); //(3) ); ); Listing 6. Przykład klasy implementującej serwis wamfphp <?php class MyService{ function MyService(){ $this >methodtable = array( "getsum" => array( //(1) "description" => "Returns sum of two int", //(2) "access" => "remote"//(3) ) ); public function getsum($a, $b) { //(4) return $a + $b;?> Listing 7. Przykład klasy komunikującej się z serwisem AMFPHP button.addclicklistener(new ClickListener() { public void onclick(widget sender) { JSONNumber arg1 = new JSONNumber(12.0); JSONNumber arg2 = new JSONNumber(100.0); String url = " "/"+arg2.tostring(); HTTPRequest.asyncGet(url, new ResponseTextHandler() { //(1) public void oncompletion(string responsetext) { //(2) try { JSONNumber jsonnumber = (JSONNumber) JSONParser.parse(responseText); Window.alert("Sum = " + jsonnumber.getvalue()); catch (JSONException e) { Window.alert("JSON parse error!"); ); ); Listing 8. Wynik użycia biblioteki wbudowanej w eclipse Created directory c:\workspace\smallbear\test\pl\rmalinowski\client Created file c:\workspace\smallbear\test\pl\rmalinowski\client\smallbeartest.java Created file c:\workspace\smallbear\smallbeartest hosted.launch Created file c:\workspace\smallbear\smallbeartest web.launch Created file c:\workspace\smallbear\smallbeartest hosted.cmd Created file c:\workspace\smallbear\smallbeartest web.cmd ko uruchamiać natywny kod JavaScript. Kiedy zachodzi taka potrzeba? Przede wszystkim w przypadku, gdy mamy już napisane sporo w JS i w nieinwazyjny sposób chcielibyśmy połączyć taki kod z GWT. Inną potrzebą wykorzystania JSNI, jest przekazywanie parametrów z PHP do GWT. Możemy wtedy generować stronę, w której osadzany jest moduł GWT z wygenerowanym przez PHP kodem JS np.: Array wypełnionymi danymi, a poprzez JSNI odwoływać się do tej tablicy. Podsumowanie Przedstawiliśmy zaledwie zarys możliwości, jakie daje Google Web Toolkit. Nic nie wspomnieliśmy o prostocie dodawania dodatkowych komponentów do naszej aplikacji, a pojawia się ich coraz więcej. Nie zostało też wspomniane o zarządzaniu historią przeglądarki, dzięki czemu, nawet jeśli cała interakcja z użytkownikiem przebiega na jednej nieprzeładowanej stronie, to cały czas mamy do dyspozycji przycisk cofnij, który może dla nas zapamiętywać poprzednie stany aplikacji. Nie wspomnieliśmy też o jednym z najważniejszych, że GWT to opensource. Odsyłamy do stron projektu ( google.com/webtoolkit/), gdzie wszystkie te i wiele innych informacji można doczytać. Na koniec postaramy się jeszcze odpowiedzieć na jedno pytanie. Kiedy warto wybrać GWT? Przede wszystkim, gdy planujemy stworzyć rozbudowaną aplikację kliencką. Przy naprawdę małych skryptach, tam gdzie istotna jest wielkość ściąganego przez przeglądarkę kodu, GWT nie jest dobrym wyborem. Zawsze, gdy tylko zaczynamy myśleć, jak ułatwić użytkownikowi administrowanie naszym sklepem, czy CMS'em. Tam gdzie rodzą się pomysły na dynamiczne pojawianie się list rozwijanych, automatyczne uzupełnianie nazw artykułów, czy choćby walidacja kodów pocztowych, tam też jest miejsce dla GWT. Najlepsze jednak jest to, że kod GWT napisany raz, działa na wielu przeglądarkach, a jeśli nie działa, jest duże prawdopodobieństwo, że za chwilę będzie wszystko w porządku. Dlatego jeśli tylko mamy wybór, uczyć się JS, czy uczyć się Javy pod kątem GWT, proponujemy wybrać GWT. RAFAŁ MALINOWSKI ( zawodowo pracuje jako Java EE 5 projektant i programista, bierze udział w kilku projektach opensource rozwijanych w technologii PHP i Flash /2007
Google Web Toolkit. Piotr Findeisen
Google Web Toolkit Piotr Findeisen findepi@students.mimuw.edu.pl Czym jest GWT kompilator Javy do Javascriptu biblioteki Java/Javascript emulacja części java.lang i java.util webowe okienka narzędzia do
Bardziej szczegółowoGoogle Web Toolkit Michał Węgorek ZPO 2009
Google Web Toolkit Michał Węgorek ZPO 2009 Plan prezentacji Czym jest GWT? Co daje GWT motywacja Po co tłumaczyć Javę do JavaScriptu? - AJAX niebezpieczeństwa - Przewaga GWT nad AJAX - RPC - Utrzymywanie
Bardziej szczegółowoNarzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer
Bardziej szczegółowoWYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy
Bardziej szczegółowoProgramowanie Urządzeń Mobilnych. Laboratorium nr 7, 8
Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem
Bardziej szczegółowoProgramowanie Obiektowe GUI
Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu
Bardziej szczegółowoArchitektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
Bardziej szczegółowoProgramowanie wielowarstwowe i komponentowe
Programowanie wielowarstwowe i komponentowe JSF 2 wprowadzenie Konfiguracja Eclipse - dodanie szablonu XHTML dla potrzeb JSF 1. Otwórz menu Window/Preferences. Następnie z drzewka wybierz Web/HTML Files/Editor/Templates.
Bardziej szczegółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium JavaServer Pages Celem ćwiczenia jest zbudowanie kilku prostych stron internetowych z użyciem technologii JSP. Podczas ćwiczenia wykorzystany zostanie algorytm sortowania bąbelkowego
Bardziej szczegółowoSposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
Bardziej szczegółowoWarsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika
Warsztaty AVR Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR Dariusz Wika 1.Krótki wstęp: Eclipse to rozbudowane środowisko programistyczne, które dzięki możliwości instalowania
Bardziej szczegółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,
Bardziej szczegółowoGeneratory pomocy multimedialnych
Generatory pomocy multimedialnych Storna 1 Instalacja generatorów oraz praca z generatorem puzzli, memory oraz grupowania.* *Projekt jest całkowicie finansowany z programu Kapitał Ludzki, III Wysoka jakoś
Bardziej szczegółowoWPROWADZENIE DO JĘZYKA JAVA
WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny
Bardziej szczegółowoMateriały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoTestowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.
Testowanie I Cel zajęć Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie oprogramowania Testowanie to proces słyżący do oceny
Bardziej szczegółowoWprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować
Bardziej szczegółowoProgramowanie w Javie
Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student
Bardziej szczegółowoJava pierwszy program w Eclipse «Grzegorz Góralski strona własna
Strona 1 z 9 «Przykładowe zadania do cz. III ćwiczeń z genetyki Java pierwsze kroki w programowaniu (01)» Kategoria: java, Tagi: eclipse - java - programowanie. Autor: Grzegorz, napisał dnia: February
Bardziej szczegółowoTechnologia Flash cieszy się coraz większą popularnością. Liczba dostępnych
Flash i PHP 01 Technologia Flash cieszy się coraz większą popularnością. Liczba dostępnych narzędzi do tworzenia prostych oraz złożonych interaktywnych animacji wzrasta z dnia na dzień. Trzeba przyznać,
Bardziej szczegółowoProgramowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy
Bardziej szczegółowo16) Wprowadzenie do raportowania Rave
16) Wprowadzenie do raportowania Rave Tematyka rozdziału: Przegląd wszystkich komponentów Rave Tworzenie nowego raportu przy użyciu formatki w środowisku Delphi Aktywacja środowiska Report Authoring Visual
Bardziej szczegółowoĆwiczenie 1. Kolejki IBM Message Queue (MQ)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając
Bardziej szczegółowoZaawansowane aplikacje internetowe - laboratorium
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest
Bardziej szczegółowoProgramowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Bardziej szczegółowo5.4. Tworzymy formularze
5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania
Bardziej szczegółowoWskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Bardziej szczegółowoObiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
Bardziej szczegółowoREFERAT O PRACY DYPLOMOWEJ
REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,
Bardziej szczegółowoPomoc dla systemu WordPress
Pomoc dla systemu WordPress Ten plik pomocy przeznaczony jest dla pluginu stat24 w wersji 0.2. W tym pluginie porzucono wsparcie dla starszych wersji WordPress (niższych niż 1.5) oraz zrezygnowano z opcji
Bardziej szczegółowoUruchamianie bazy PostgreSQL
Uruchamianie bazy PostgreSQL PostgreSQL i PostGIS Ten przewodnik może zostać pobrany jako PostgreSQL_pl.odt lub PostgreSQL_pl.pdf Przejrzano 10.09.2016 W tym rozdziale zobaczymy, jak uruchomić PostgreSQL
Bardziej szczegółowoI. Informacje ogólne. Jednym z takich systemów jest Mambo.
MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację
Bardziej szczegółowoJava jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
Bardziej szczegółowoInstalacja systemu zarządzania treścią (CMS): Joomla
Instalacja systemu zarządzania treścią (CMS): Joomla Na stronie http://www.cba.pl/ zarejestruj nowe konto klikając na przycisk:, następnie wybierz nazwę domeny (Rys. 1a) oraz wypełnij obowiązkowe pola
Bardziej szczegółowoInstalacja i konfiguracja serwera IIS z FTP
Instalacja i konfiguracja serwera IIS z FTP IIS (Internet Information Services) jest to usługa dostępna w systemach z rodziny Windows Server, pozwalająca na obsługę i utrzymanie własnych stron WWW oraz
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Bardziej szczegółowoBackend Administratora
Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona
Bardziej szczegółowoPHP: bazy danych, SQL, AJAX i JSON
1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji
Bardziej szczegółowoZ pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:
Zasady grupy (GPO) Windows Server 2008 R2 Zasady grupy to potężne narzędzie udostępnione administratorom systemów Windows w celu łatwiejszego zarządzania ustawieniami stacji roboczych. Wyobraźmy sobie
Bardziej szczegółowoMicrosoft.NET: ASP.NET MVC + Entity Framework (Code First)
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta
Bardziej szczegółowoPodczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Bardziej szczegółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowoJava: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń
Bardziej szczegółowoEnterprise JavaBeans (EJB)
Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z sesyjnymi komponentami Enterprise JavaBeans. Zilustrowane będą różnice między komponentami stanowymi i bezstanowymi. Pokazane będzie
Bardziej szczegółowoCzym są właściwości. Poprawne projektowanie klas
Z akcesorów get i set korzysta każdy kto programuje w C#. Stanowią one duże udogodnienie w programowaniu obiektowym. Zapewniają wygodę, bezpieczeństwo i znacząco skracają kod. Akcesory są ściśle związane
Bardziej szczegółowoMAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z
WordPress : Omówienie I Instalacja Na początek, dlaczego byłbyś zainteresowany wykorzystaniem WordPressa razem z PhoneGap? Zapytałbym: "Dlaczego byś nie?" Moim zdaniem WordPress jest jednym z najłatwiejszych
Bardziej szczegółowoOpenLaszlo. OpenLaszlo
OpenLaszlo Spis Treści 1 OpenLaszlo Co to jest? Historia Idea Architektura Jako Flash lub DHTML Jako servlet lub SOLO Jak to działa? Język LZX Struktura programu Skrypty Obiekty i klasy Atrybuty i metody
Bardziej szczegółowoĆwiczenie 1. Przygotowanie środowiska JAVA
Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.
Bardziej szczegółowoWINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.
WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. Gdy już posiadamy serwer i zainstalowany na nim system Windows XP, 7 lub 8 postawienie na nim serwera stron WWW jest bardzo proste. Wystarczy
Bardziej szczegółowoProgramowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]
JAVA wprowadzenie do programowania (3/3) [1] Czym jest aplikacja Java Web Start? Aplikacje JAWS są formą pośrednią pomiędzy apletami a aplikacjami Javy. Nie wymagają do pracy przeglądarki WWW, jednak mogą
Bardziej szczegółowoLaboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Bardziej szczegółowoZadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.
T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http. HTTP (ang. Hypertext Transfer Protocol) protokół transferu plików
Bardziej szczegółowoDokumentacja systemu NTP rekrut. Autor: Sławomir Miller
Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji
Bardziej szczegółowo2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK
Zaawansowane aplikacje internetowe EJB 2 Celem tego laboratorium jest pokazanie, w jaki sposób aplikacje stworzone w różnych technologiach mogą korzystać z funkcjonalności udostępnianej przez komponenty
Bardziej szczegółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoDodatki. Dodatek A Octave. Język maszyn
Dodatki Dodatek A Octave Przykłady programów zostały opracowane w środowisku programistycznym Octave 3.6.2 z interfejsem graficznym GNU Octave 1.5.4. Octave jest darmowym środowiskiem programistycznym
Bardziej szczegółowoPakiety i interfejsy. Tomasz Borzyszkowski
Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji
Bardziej szczegółowoAplikacje Internetowe
Aplikacje Internetowe ITA-103 Wersja 1 Warszawa, październik 2008 Spis treści Wprowadzenie i-4 Moduł 1 Podstawy HTML 1-1 Moduł 2 Kaskadowe Arkusze Stylów CSS 2-1 Moduł 3 Podstawy JavaScript 3-1 Moduł 4
Bardziej szczegółowoSesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka
Sesje, ciasteczka, wyjątki Nie sposób wyobrazić sobie bez nich takich podstawowych zastosowań, jak logowanie użytkowników czy funkcjonowanie koszyka na zakupy. Oprócz tego dowiesz się, czym są wyjątki,
Bardziej szczegółowoĆwiczenia 9: Zarządzanie konfiguracją Zadania:
Ćwiczenia 9: Zarządzanie konfiguracją Zadania: Konfiguracja repozytorium CVS: 1. Ściągnij i zainstaluj serwer CVS: CVSNT (www.cvsnt.org). 2. W konfiguracji repozytoriów (Panel Sterowania -> CVSNT) wybierz
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoSpis treści. FAQ: /PL Data: 30/06/2015. Instalacja polskiej wersji LOGO! Soft Comfort. 1 Pobranie pliku 2
Spis treści 1 Pobranie pliku 2 2 Konfiguracja ustawień w LOGO! Soft Comfort..... 5 Doradztwo techniczne: simatic.pl@siemens.com 1 1 Pobranie pliku Instalację aktualizacji należy rozpocząć od ściągnięcia
Bardziej szczegółowoWprowadzenie do Doctrine ORM
Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,
Bardziej szczegółowoAnna Wrona, Janis Paraschidis, Igor Klimer. 6 kwietnia 2009
Politechnika Wrocławska Informatyka 6 kwietnia 2009 Dlaczego GWT? Dlaczego GWT Troszeczkę historii Zalety i wady GWT Zawartość GWT Duża popularność technologii Słaba kompatybilność przeglądarek (Internet
Bardziej szczegółowoPHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Bardziej szczegółowoZrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski
Uniwersytet Warszawski 6 kwiecień 2009 Spis Treści 1 MVC Jak to wygląda w JavascriptMVC 2 Prawie jak klasy 3 Hierarchia Widoki Kontrolery Modele 4 Struktura katalogów Generatory kodu Generatory dokumentacji
Bardziej szczegółowoInstrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.
Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie
Bardziej szczegółowoREFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoLaboratorium 1 Wprowadzenie do PHP
Laboratorium 1 Wprowadzenie do PHP Ćwiczenie 1. Tworzenie i uruchamianie projektu PHP w Netbeans Tworzenie projektu Uruchom środowisko NetBeans. Stwórz nowy projekt typu PHP Application (File->New Project,
Bardziej szczegółowoProgramowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści
Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne
Bardziej szczegółowoAplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Bardziej szczegółowoASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3
3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0
Bardziej szczegółowoInstrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse
Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek
Bardziej szczegółowoProcedura wygenerowania paczki instalacyjnej oprogramowania F-Secure
1 Procedura wygenerowania paczki instalacyjnej oprogramowania F-Secure Niestety firma F-Secure nie udostępnia paczki instalacyjnej EXE lub MSI do instalacji oprogramowania F-Secure Client Security. Paczkę
Bardziej szczegółowoD:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
Bardziej szczegółowoxmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />
1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism
Bardziej szczegółowoFlex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008
Flex 3 Piotr Strzelczyk Wydział EAIiE Katedra Automatyki Kraków, 2008 Flex 3 czyli co to jest? RIA (Rich Internet Application) Jest to aplikacja webowa posiadająca moŝliwości aplikacji desktopowej. UmoŜliwia
Bardziej szczegółowoJavadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka
Javadoc Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Wprowadzenie do Javadoc Treść prezentacji: http://students.mimuw.edu.pl/~as219669/javadoc.pdf Zadania: http://students.mimuw.edu.pl/~as219669/zadanie.rar
Bardziej szczegółowoS P I S T R E Ś C I. Instrukcja obsługi
S P I S T R E Ś C I Instrukcja obsługi 1. Podstawowe informacje o programie.................................................................................... 2 2. Instalacja programu.....................................................................................................
Bardziej szczegółowoKancelaria instalacja programu
Kancelaria instalacja programu Program Kancelaria można zainstalować w wersji przeznaczonej na pojedynczy komputer (dane zgromadzone przez użytkownika nie będą udostępniane innym pracownikom firmy) lub
Bardziej szczegółowoJQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...
JQuery jquery (jquery.com) to jedna z najbardziej popularnych bibliotek/frameworków do javascript. Jej popularność oczywiście znikąd się nie bierze. Dzięki tej bibliotece jesteśmy w stanie o wiele szybciej
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po
Bardziej szczegółowoJAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Bardziej szczegółowoAPLIKACJA SHAREPOINT
APLIKACJA SHAREPOINT Spis treści 1. Co to jest SharePoint?... 2 2. Tworzenie nowej witryny SharePoint (obszar roboczy)... 2 3. Gdzie znaleźć utworzone witryny SharePoint?... 3 4. Personalizacja obszaru
Bardziej szczegółowoInformatyka II. Laboratorium Aplikacja okienkowa
Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.
Bardziej szczegółowoTomasz Greszata - Koszalin
T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołów HTTP oraz HTTPS i oprogramowania IIS (ang. Internet Information Services).
Bardziej szczegółowoInstrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID
Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.
Bardziej szczegółowoCertyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA
Certyfikat Certum Basic ID Instrukcja dla użytkowników Windows Vista wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.
Bardziej szczegółowoKrótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.
GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans
Bardziej szczegółowoTECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty
1. Co to jest funkcja? Funkcja jest oddzielnym blokiem kodu, który może być wielokrotnie wykonywany w danym programie, poprzez jej wielokrotne wywoływanie. Do funkcji przekazujemy przeważnie jakieś argumenty,
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoBudowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości
Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym
Bardziej szczegółowoZmiana logo. Dziękujemy za wybór naszych rozwiązań. apjoo od Apláuz. Wspólnie przebrniemy przez proces konfiguracji strony www i wstawiania treści.
Użytkownicy i hasła Dostęp do zaplecza umożliwia rozbudowany system zarządzania użytkownikami. 1. Konta użytkowników tworzy się wybierając z menu Użytkownicy > Menedżer użytkowników na stronie głownej
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Bardziej szczegółowoZakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów
Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii
Bardziej szczegółowo