Google Web Toolkit. Powinieneś wiedzieć... Przydatna będzie podstawowa znajomość JAVA.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Google Web Toolkit. Powinieneś wiedzieć... Przydatna będzie podstawowa znajomość JAVA."

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 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ółowo

Google Web Toolkit Michał Węgorek ZPO 2009

Google 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ółowo

Narzę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 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ółowo

Podstawy technologii WWW

Podstawy 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ółowo

WYKONANIE 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. 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ółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie 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ółowo

Programowanie Obiektowe GUI

Programowanie 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ółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury 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ółowo

Programowanie wielowarstwowe i komponentowe

Programowanie 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ółowo

Aplikacje WWW - laboratorium

Aplikacje 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ółowo

Sposoby 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. 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ółowo

Warsztaty 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 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ółowo

Aplikacje WWW - laboratorium

Aplikacje 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ółowo

Generatory pomocy multimedialnych

Generatory 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ółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE 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ółowo

Materiał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 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ółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdował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ółowo

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Testowanie 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ółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie 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ółowo

Programowanie w Javie

Programowanie 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ółowo

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Java 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ółowo

Technologia Flash cieszy się coraz większą popularnością. Liczba dostępnych

Technologia 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ółowo

Programowanie 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 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ółowo

16) Wprowadzenie do raportowania Rave

16) 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) Ć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ółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane 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ółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie 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ółowo

5.4. Tworzymy formularze

5.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ółowo

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.

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. 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ółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy 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ółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT 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ółowo

Pomoc dla systemu WordPress

Pomoc 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ółowo

Uruchamianie bazy PostgreSQL

Uruchamianie 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ółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. 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ółowo

Java jako język programowania

Java 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ółowo

Instalacja systemu zarządzania treścią (CMS): Joomla

Instalacja 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ółowo

Instalacja i konfiguracja serwera IIS z FTP

Instalacja 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ółowo

Programowanie obiektowe

Programowanie 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ółowo

Ję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. 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ółowo

Backend Administratora

Backend 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ółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: 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ółowo

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Z 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ółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.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ółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas 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ółowo

Konstruktory. 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. 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ółowo

Java: 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 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ółowo

Enterprise JavaBeans (EJB)

Enterprise 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ółowo

Czym są właściwości. Poprawne projektowanie klas

Czym 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ółowo

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

MAMP: 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ółowo

OpenLaszlo. OpenLaszlo

OpenLaszlo. 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 Ć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ółowo

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

WINDOWS 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ółowo

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Programowanie 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ółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 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ółowo

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Zadanie1: 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ółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja 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ółowo

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

2) 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ółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje 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ółowo

Dodatki. Dodatek A Octave. Język maszyn

Dodatki. 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ółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety 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ółowo

Aplikacje Internetowe

Aplikacje 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ółowo

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Sesje, 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: Ć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ółowo

Programowanie w języku Python. Grażyna Koba

Programowanie 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ółowo

Spis treści. FAQ: /PL Data: 30/06/2015. Instalacja polskiej wersji LOGO! Soft Comfort. 1 Pobranie pliku 2

Spis 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ółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie 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ółowo

Anna Wrona, Janis Paraschidis, Igor Klimer. 6 kwietnia 2009

Anna 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ółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: 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ółowo

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski

Zrą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ółowo

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.

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. 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ółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT 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ółowo

Laboratorium 1 Wprowadzenie do PHP

Laboratorium 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ółowo

Programowanie 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 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ółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje 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ółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.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ółowo

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Instrukcja 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ółowo

Procedura wygenerowania paczki instalacyjnej oprogramowania F-Secure

Procedura 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ółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\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ółowo

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

xmlns: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ółowo

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Flex 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ółowo

Javadoc. 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 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ółowo

S P I S T R E Ś C I. Instrukcja obsługi

S 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ółowo

Kancelaria instalacja programu

Kancelaria 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ółowo

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

JQuery. $('#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ółowo

Ję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. 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ółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. 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ółowo

APLIKACJA SHAREPOINT

APLIKACJA 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ółowo

Informatyka II. Laboratorium Aplikacja okienkowa

Informatyka 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ółowo

Tomasz Greszata - Koszalin

Tomasz 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ółowo

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID

Instrukcja 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ółowo

Certyfikat 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 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ółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Kró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ółowo

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

TECHNOLOGIE 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ółowo

Wykład 8: klasy cz. 4

Wykł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ółowo

Budowa 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 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ółowo

Zmiana 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.

Zmiana 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ółowo

Aplikacje w środowisku Java

Aplikacje 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ółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres 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ółowo

Podstawy technologii WWW

Podstawy 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