Das Google Web Toolkit eine Rundreise

Größe: px
Ab Seite anzeigen:

Download "Das Google Web Toolkit eine Rundreise"

Transkript

1 KAPITEL 2 Das Google Web Toolkit eine Rundreise In diesem Kapitel werde ich Ihnen das Google Web Toolkit und die grundsätzliche Arbeitsweise mit dem Toolkit vorstellen. Dabei ist es nicht das Ziel, jedes Feature ausführlich darzustellen, sondern Ihnen einen Überblick zu verschaffen. Wenn Sie mit dem Toolkit bereits vertraut sind, können Sie dieses Kapitel getrost überspringen. Download und Installation Alles, was Sie zum Arbeiten benötigen, ist das Toolkit, das Sie auf der Homepage (http://code.google.com/webtoolkit/) herunterladen können, und ein Java Runtime Environment ab Version 1.4. Nach dem Entpacken des Toolkits in das Dateisystem befinden sich dort einige Jar-Dateien, DLLs (bei der Windows-Version), so-dateien (bei der Linux-Version) bzw. jnilib-dateien (bei der Mac-Version). Außerdem finden Sie dort die Dokumentation, einige Beispiele und ein paar Batch-Dateien, die den Aufruf der Kommandozeilenwerkzeuge etwas komfortabler machen. Dieses Verzeichnis werde ich in Zukunft als GWT-Home bezeichnen. Das Google Web Toolkit ist also zunächst einmal nichts weiter als eine Sammlung von Bibliotheken und einigen Kommandozeilenwerkzeugen. Diese Werkzeuge stellen auch nichts weiter dar als einen komfortableren Weg, die main-methoden von Java-Klassen des GWT aufzurufen. Da das Toolkit in Java geschrieben ist, lässt es sich zudem sehr gut in jede Java-Entwicklungsumgebung integrieren. Arbeitsprinzip Wenn man eine Webanwendung mit Hilfe des Google Web Toolkits erstellen möchte, programmiert man gegen ein Java-API, das vom GWT zur Verfügung gestellt wird. Der eigene Quellcode wird mit Hilfe des GWT-Compilers nach JavaScript übersetzt. Die Packages java.lang und java.util werden dabei emuliert. Für das Ausführen einer mit dem GWT erstellten Webanwendung benötigt man daher später so gut wie keine Bibliotheken des GWT. Im Browser des Benutzers läuft die Anwendung völlig in JavaScript. 15

2 Nur auf dem Server wird eine Bibliothek des GWT benötigt, wenn man den Remote Procedure Call-Mechanismus des GWT verwendet das muss aber nicht zwingend der Fall sein. Durch die GWT-Shell wird der Entwickler bei der Umsetzung von GWT-Anwendungen unterstützt. Sie stellt eine Ablaufumgebung dar, in der die spätere Anwendung ohne ein Kompilieren nach JavaScript ausgeführt werden kann. Dazu bildet sie eine»schale«um einen Browser (Internet Explorer unter Windows und Firefox unter Linux). So ermöglicht das GWT auch das Debuggen einer Webanwendung, die später in JavaScript ablaufen wird. Das Google Web Toolkit setzt sich aus folgenden Bestandteilen zusammen: der GWT-Shell (mit einem integrierten Tomcat) als Entwicklungswerkzeug dem GWT-Compiler zur Übersetzung des Java-Quellcodes nach JavaScript dem GWT-API, gegen das wir die Webanwendung programmieren Projekt generieren Wenn man sich einem unbekannten Werkzeug oder einer neuen Programmiersprache nähert, war es schon immer ein bewährtes Vorgehen, mit einem Hallo-Welt-Beispiel zu beginnen. Das Google Web Toolkit macht es uns in dieser Hinsicht sehr einfach, weil das generierte Grundgerüst eines GWT-Projekts schon ein solches Beispiel ist. Um ein neues GWT-Projekt für die Eclipse-Entwicklungsumgebung zu erstellen, enthält das Toolkit zwei Kommandozeilenwerkzeuge, die ein Grundgerüst der Anwendung generieren können. Dabei ist projectcreator für das Erstellen eines nahezu leeren Eclipse-Projekts verantwortlich und applicationcreator für die eigentlichen Projektquellen. Das Eclipse-Projekt kann über den folgenden Befehl auf der Kommandozeile erstellt werden: projectcreator -eclipse HalloWelt -out HalloWelt Dazu kann man in das GWT-Home-Verzeichnis wechseln oder das GWT-Home-Verzeichnis der PATH-Variable hinzufügen, um den Befehl aus einem beliebigen Verzeichnis heraus aufzurufen. Im Ergebnis wird das Verzeichnis HalloWelt angelegt, und darin werden die beiden Verzeichnisse src und test erstellt. Außerdem werden die Dateien.classpath und.project erstellt, die die Eclipse-Umgebung konfigurieren. Das generierte Eclipse-Projekt erhält den Namen HalloWelt, wie von uns durch den Wert des Parameters eclipse vorgegeben. Als Nächstes werden die eigentlichen Java-Quellen mit dem folgenden Aufruf generiert: applicationcreator -eclipse HalloWelt -out HalloWelt de.gwtbuch.client.hallowelt Auch hier müssen wiederum der Name des Eclipse-Projekts und das Ausgabeverzeichnis angegeben werden. Zusätzlich wird der Name des zu erstellenden GWT-Moduls übergeben. Dieses muss im Package-Namen zwingend client enthalten. 16 Kapitel 2: Das Google Web Toolkit eine Rundreise

3 Das so generierte Projekt kann jetzt in Eclipse importiert werden. Dazu wird der Menüpunkt IMPORT (Kontextmenü oder Menü FILE) benutzt und im dann erscheinenden Dialog die Option»Existing Projects into Workspace«ausgewählt. Anschließend muss nur noch das Verzeichnis HalloWelt angegeben werden. Das Projekt HalloWelt wählt Eclipse automatisch aus. Die Projektstruktur Nach dem erfolgreichen Import des Projektes ist die in Abbildung 2-1 sichtbare Projektstruktur in Eclipse verfügbar. Abbildung 2-1: Die Standard-Projektstruktur in Eclipse Die beiden Batch-Dateien HalloWelt-compile und HalloWelt-shell kann man löschen, da sie für erste Tests mit der Eclipse-Entwicklungsumgebung nicht erforderlich sind und ich in späteren Kapiteln noch zeigen werde, dass man ganz gut ohne sie auskommt. Wer Eclipse nicht benutzt, ist aber auf diese beiden Befehle angewiesen. Damit lässt sich nämlich die GWT-Shell starten und das Projekt nach JavaScript kompilieren. In der Datei HalloWelt.launch speichert Eclipse die Run-Konfiguration für das Ausführen der GWT-Shell. Diese Datei ist dafür verantwortlich, dass sich bereits nach dem Import ein Eintrag HALLOWELT im Dialog für die Run-Konfigurationen befindet. Diesen muss man nur auswählen, und die Shell wird gestartet. Alle nötigen Einstellungen, wie der Classpath, die Parameter und die auszuführende Klasse, sind bereits automatisch eingetragen. Wird die Run-Konfiguration ausgeführt, startet die GWT-Shell und öffnet den Hosted-Browser. Die Projektstruktur 17

4 Die GWT-Shell verfügt über einen integrierten HTTP-Server, der standardmäßig auf Port 8888 gestartet wird. Außerdem enthält sie eine Konsole und in einer Baumstruktur angeordnete Log-Einträge. Der von der Shell gestartete Hosted-Browser verweist auf den URL Dieser URL wurde als Parameter für die GWT-Shell angegeben (beim Generieren in der Run-Konfiguration). Wenn man einen anderen Port benutzen möchte, kann man das in der Run-Konfiguration über den Parameter port ändern. Im Hosted-Browser ist das vom GWT generierte HalloWelt-Beispiel zu sehen (Abbildung 2-2). Abbildung 2-2: Die GWT-Shell und der Hosted-Browser Klickt man auf den Button Click me, erscheint neben dem Button der Text HelloWorld!, klickt man noch einmal, verschwindet der Text wieder. Also eigentlich nichts Spektakuläres aber für die Darstellung der Konzepte ideal geeignet. Wie in Abbildung 2-1 zu sehen ist, besteht das Projekt nur aus drei Quelldateien: der HTML-Datei HalloWelt.html, einer XML-Datei HalloWelt.gwt.xml und einer Klasse HalloWelt, die in der Java-Quelldatei HalloWelt.java definiert ist. Diese drei Dateien sorgen im Zusammenspiel dafür, dass das HalloWelt-Beispiel funktioniert. Die Host-Seite Die HTML-Datei HalloWelt.html ist die so genannte Host-Seite. Dabei handelt es sich um ein ganz normales HTML-Dokument, dessen leicht gekürzter Inhalt eigentlich völlig unscheinbar wirkt: 18 Kapitel 2: Das Google Web Toolkit eine Rundreise

5 Beispiel 2-1: Die Host-Seite des HalloWelt-Beispiels <html> <head> <title>wrapper HTML for HalloWelt</title> <script language='javascript' src='de.gwtbuch.hallowelt.nocache.js'></script> </head> <body> <iframe src="javascript:''" id=" gwt_historyframe" style="width:0;height:0;border:0"></iframe> <h1>hallowelt</h1> <p> This is an example of a host page for the HalloWelt application. You can attach a Web Toolkit module to any HTML page you like, making it easy to add bits of AJAX functionality to existing pages without starting from scratch. </p> <table align=center> <tr> <td id="slot1"></td><td id="slot2"></td> </tr> </table> </body> </html> Wie man sieht, ist es ein HTML-Grundgerüst bestehend aus head- und body-bereich. Im Kopf ist die JavaScript-Datei de.gwtbuch.hallowelt.nocache.js angegeben. Das Laden und Ausführen dieser Datei durch einen Browser sorgt dafür, dass unsere Anwendung geladen wird. Genauer gesagt sorgt sie dafür, dass die richtige JavaScript-Datei nachgeladen wird, die zum verwendeten Browser passt. Das iframe innerhalb der HTML-Seite wird in diesem Beispiel eigentlich nicht benötigt. Es ist nur dann erforderlich, wenn man die Browser-Historie auch innerhalb einer Ein- Seiten-Anwendung verwenden möchte. Außerdem fallen noch die beiden td-elemente mit den IDs slot1 und slot2 auf. Was man nicht findet, ist HTML-Quelltext, der den Button darstellen würde aber dazu gleich mehr. Die Moduldefinition Die XML-Datei HalloWelt.gwt.xml ist die Moduldefinition für unsere Mini-Ajax-Anwendung. Der Inhalt dieser Datei lässt sich am einfachsten begreifen, wenn man diese Datei als Konfigurationsdatei für den GWT-Compiler und die GWT-Shell betrachtet zur Laufzeit wird sie nicht benötigt. In diesem Beispiel ist sie sehr kurz: <module> <inherits name='com.google.gwt.user.user'/> <entry-point class='de.gwtbuch.client.hallowelt'/> </module> Die Projektstruktur 19

6 Das Element inherits gibt an, auf welchen Modulen unser eigenes Projekt basiert. In diesem Fall ist es nur der GWT-Kern. Der GWT-Compiler weiß nun, wo er nach den Quellen suchen muss, die wir in unserem Projekt verwenden. Dazu liest er die angegebene Moduldefinition ein (User.gwt.xml) und wertet sie aus. Dort können wiederum weitere Module angegeben sein, die dann ebenfalls eingefügt werden. Jede GWT-Anwendung, die in eine Host-Seite eingebunden werden soll, benötigt eine Einstiegsklasse. Im Element entry-point ist diese angegeben. Die Einstiegsklasse Die Einstiegsklasse muss das Interface com.google.gwt.core.client.entrypoint implementieren. Es verlangt die Implementierung der Methode onmoduleload. Diese Methode ist der Startpunkt unserer Ajax-Anwendung. Beispiel 2-2: Die Einstiegsklasse für das HalloWelt-Beispiel package de.gwtbuch.client; 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; public class HalloWelt implements EntryPoint { public void onmoduleload() { final Button button = new Button("Click me"); final Label label = new Label(); button.addclicklistener(new ClickListener() { public void onclick(widget sender) { if (label.gettext().equals("")) label.settext("hello World!"); else label.settext(""); ); RootPanel.get("slot1").add(button); RootPanel.get("slot2").add(label); Innerhalb der onmoduleload-methode werden ein Objekt vom Typ Button und ein Label erstellt. Außerdem wird am Button ein ClickListener registriert. Dessen Methode onclick wird immer dann ausgeführt, wenn der Anwender auf den Button klickt. In diesem Beispiel wird abhängig vom momentanen Text des Labels dessen sichtbarer Text modifiziert. 20 Kapitel 2: Das Google Web Toolkit eine Rundreise

7 Als Letztes werden die beiden Oberflächenkomponenten in die Host-Seite eingefügt. Dazu wird die Methode get der Klasse RootPanel benutzt. Das RootPanel entspricht dabei dem DOM des body-elements der HTML-Seite. Dort wurden die beiden td-elemente mit den IDs slot1 und slot2 definiert. Diese werden jetzt benutzt, um den Button und das Label in das DOM der HTML-Seite einzufügen. Der Hosted-Modus Ihnen wird sicher nicht entgangen sein, dass schon in der Host-Seite eine Datei benutzt wird, die es eigentlich gar nicht im Dateisystem gibt. Die JavaScript-Datei de.gwtbuch.hallowelt.nocache.js werden Sie beispielsweise vergebens suchen. Auch gibt es keine JavaScript-Datei, in der die Anwendungslogik zu finden ist. Für die Bereitstellung dieser Dateien sorgt die GWT-Shell. Sie kümmert sich auch darum, dass auf die HTML- Seite mit dem Pfad de.gwtbuch.hallowelt/hallowelt.html zugegriffen werden kann, obwohl diese ebenfalls nicht unter diesem URL existiert. Damit übernimmt die Shell zwei wesentliche Aufgaben: Zum einen sorgt sie dafür, dass statische Dateien über ihren später durch das Kompilieren festgelegten Pfad verfügbar sind (deshalb müssen sich diese alle im Verzeichnis public befinden). Zum anderen führt sie völlig dynamisch den Java-Quellcode aus, der später als kompiliertes JavaScript im Browser werkelt. Gerade der letzte Punkt ermöglicht es, den Java-Quellcode zu debuggen und gleichzeitig als JavaScript im Browser ablaufen zu lassen. Setzen Sie einfach einmal einen Breakpoint innerhalb der Methode onmoduleload (z.b. an der Zeile if (label.gettext().equals(""))). Starten Sie die GWT-Shell im Debug-Modus und klicken auf den Button. Sie werden feststellen, dass der Eclipse-Debugger an dieser Stelle stehen bleibt und die üblichen Debug-Funktionen von Eclipse verfügbar sind: Sie können sich schrittweise durch den Quellcode bewegen oder sich den Inhalt von Variablen ansehen. Abbildung 2-3: Debuggen der GWT-Anwendung in Eclipse Der Hosted-Modus 21

8 Der Hosted-Modus ist also eine Ablaufumgebung für unsere spätere Anwendung, ohne den Umweg über JavaScript-Dateien gehen zu müssen. Die Anwendung wird als Java- Bytecode ausgeführt. Dadurch ist es möglich, den Quelltext zu debuggen. Da die GWT- Shell im Hosted-Modus auch noch nicht physisch existierende Dateien bereitstellen kann, erreicht man sehr kurze Entwicklungszyklen. Ein in die Shell integrierter Server rundet das Gesamtkonzept der Shell ab. Damit lässt sich auch die spätere Serverkomponente abbilden. Wie kommt man nun aber an die später benötigten JavaScript-Dateien, um die Anwendung in fast jedem beliebigen Browser ablaufen zu lassen? Der Web-Modus Damit die Anwendung im Web-Modus laufen kann, muss das HalloWelt-Beispiel nach JavaScript übersetzt werden. Dazu kann der Button COMPILE des Host-Browsers benutzt werden. Das Ergebnis wird in das Verzeichnis www geschrieben. Man kann dieses Verzeichnis ändern, indem man beim Starten der GWT-Shell ein anderes Verzeichnis für den Parameter out angibt. Im Web-Modus wird also kein Java-Bytecode mehr ausgeführt, sondern JavaScript. Die Anwendung stellt sich im Browser dann so dar, wie es später im produktiven Einsatz der Fall sein wird. Die aktuelle Entwicklung des GWT ist inzwischen so weit fortgeschritten, dass es kaum noch Unterschiede zwischen beiden Modi gibt. Man wird allenfalls feststellen, dass die Anwendung im Web-Modus deutlich schneller abläuft als im Hosted-Modus. Ein nachvollziehbarer Effekt, da der Aufwand für die Emulation entfällt. Die generierten Dateien Auch hier werfen wir einen Blick auf die vom Google Web Toolkit generierten Dateien: Der Compiler hat ein Verzeichnis de.gwtbuch.hallowelt erstellt. Darin befindet sich neben der Host-Seite HalloWelt.html auch die Datei de.gwtbuch.hallowelt.nocache.js, die in der Host-Seite eingebunden wurde, aber bisher nicht zu sehen war. Das Script in dieser Datei stellt fest, in welchem Browser es ausgeführt wird, und lädt dann die zum Browser passende JavaScript-Datei nach. Momentan sind es fünf unterschiedliche Browser, die unterstützt werden: der Internet Explorer, Firefox, Mozilla, Opera und Safari. Auf diese Weise bekommt jeder Browser nur den Quellcode, der für ihn bestimmt ist. Damit reduziert sich die Größe der JavaScript-Datei deutlich. Andernfalls hätte man beispielsweise den Code für jede Eigenheit der Browser mit ausliefern müssen. Die Bezeichnungen der JavaScript-Dateien sehen etwas kryptisch aus beispielsweise 4DC3EF6A10631D3906D4BBB63F5F06BA.cache.js. Der Dateiname besteht aus einem Hashwert. Damit vermeidet man, dass bei einer neuen Version der Anwendung ein altes Script vom Browser geladen wird. Die Bezeichnung cache im Namen macht schon deut- 22 Kapitel 2: Das Google Web Toolkit eine Rundreise

9 lich, dass Browser diese Datei zwischenspeichern können natürlich muss dazu auf Seiten des Webservers etwas nachgeholfen werden. Da das einfache Beispiel keinen aktiven Server benötigt, können Sie sich die HTML-Seite auch einfach mal so im Browser ansehen. Sie werden feststellen, dass sich die Anwendung genauso verhält wie im Hosted-Modus nur dass es etwas schneller geht. Wenn Sie den JavaScript-Quellcode in lesbarer Form ausgeben möchten, dann benutzen Sie den Parameter PRETTY oder DETAILED für die Option style der GWT-Shell. Standardmäßig erfolgt die Ausgabe des generierten JavaScript-Quellcodes im Modus OBF (obfuscated) und ist nur schwer lesbar. Diese Änderung hat aber erst dann Auswirkungen, wenn sich der Ausgangsquelltext ändert. Anpassung der Oberfläche Das Beispiel hat natürlich zunächst ein sehr spartanisches Aussehen. Die Darstellung kann aber, wie in jeder Webanwendung, über Style-Informationen angepasst werden. Importieren von Stylesheets Natürlich wird man diese Information nicht direkt in die HTML-Seite schreiben, sondern in eine CSS-Datei auslagern. Einbinden kann man diese dann über eine Angabe unterhalb des head-elements: <link rel='stylesheet' href='hallowelt.css'/> Oder am besten gleich in der Moduldefinition: <stylesheet src='hallowelt.css'/> Das GWT sorgt dann dafür, dass dieses Stylesheet zur Laufzeit in die HTML-Seite eingefügt wird. Dieses Vorgehen hat einen entscheidenden Vorteil vor allem dann, wenn Sie selbst Module für andere Anwendungen erstellen: Es ist sichergestellt, dass Ihr Stylesheet immer mit ausgeliefert und in die HTML-Seite eingefügt wird. Ohne diesen Weg müssten Sie den Benutzern Ihres Moduls mitteilen, dass sie ein bestimmtes Stylesheet importieren müssen. Änderungen in der Moduldefinition werden erst dann wirksam, wenn man die GWT-Shell neu startet. GWT-Konvention für CSS-Klassen Die vom Google Web Toolkit zur Verfügung gestellten Oberflächenelemente (Widgets) sind zur Laufzeit natürlich nichts anderes als HTML. Allerdings sieht man den Elementen nicht auf den ersten Blick an, aus welchen HTML-Bausteinen (DIVs, Tabellen ) sie zusammengesetzt sind. Je nach Komplexität kann es sich auch um umfangreiche Kombi- Anpassung der Oberfläche 23

10 nationen von HTML-Elementen handeln. Eine Anpassung über Stylesheets wäre damit sehr aufwendig. Um dieses Problem zu lösen, verfügen die Widgets über Default-CSS- Klassen. Im eigenen Stylesheet muss man dann nur diese Klassen angeben und die gewünschten Anpassungen vornehmen. Zum einen findet man die CSS-Klassen der Widgets natürlich in der Dokumentation. Es gibt allerdings auch eine Namenskonvention: Alle CSS-Klassen beginnen mit dem Präfix gwt- gefolgt vom Namen des Widgets. Für den Button lautete der Name also gwt-button. Wenn ein Widget unterschiedliche Zustände hat, folgt nach diesem Namen noch eine Bezeichnung des Zustands. Bei einem ToggelButton können das folgende Zustände sein: up, down, up-hovering, down-hovering, up-disabled und down-disabled. Möchte man also das Aussehen eines gedrückten ToggleButtons ändern, muss die CSS-Klasse gwt-toggle- Button-down lauten. Der erste Teil des Klassennamens wird als Primärname bezeichnet. Man kann diesen über die Methode setstyleprimaryname überschreiben. Mit den Methoden addstylename und removestylename können weitere Klassen zu einem Element hinzugefügt oder entfernt werden. Möglich ist auch, die CSS-Klassennamen mit der Methode setstylename komplett zu ersetzen. Für unser HalloWelt-Beispiel könnte man das Aussehen des Buttons also ganz leicht über folgende Angaben in einem Stylesheet modifizieren:.gwt-button { font-weight: bold; color: #ffffff; background-color: #035D77; border: 1px solid #BDF80E; Elemente anordnen Das HalloWelt-Beispiel demonstriert einen Weg, wie man die Widgets innerhalb der HTML-Seite anordnen kann. Hier wurde die Struktur der Seite in HTML umgesetzt, und die GWT-Widgets wurden per RootPanel.get('ID') an den gewünschten Stellen eingefügt. Dieser Ansatz sorgt für eine starke Abhängigkeit von Host-Seite und GWT-Modul, da beide immer genau aufeinander abgestimmt sein müssen. Vorteil dieses Weges ist aber, dass sich die HTML-Seite deutlich schneller aufbaut als bei dem im Folgenden beschriebenen Weg. Man kann das GWT-Modul vollständig vom Inhalt der Host-Seite trennen. Diese reduziert sich damit auf ein minimales HTML-Dokument, in das unsere GWT-Anwendung eingefügt wird: <html> <head> <title>hallowelt</title> <script language='javascript' src='de.gwtbuch.hallowelt.nocache.js'></script> 24 Kapitel 2: Das Google Web Toolkit eine Rundreise

11 </head> <body> </body> </html> Um die gesamte Anordnung der Widgets muss man sich nun allerdings innerhalb des GWT-Moduls selbst kümmern. Dafür stellt das GWT eine ganze Reihe von Panels zur Verfügung (siehe Anhang für eine vollständige Übersicht). Mit folgendem Quelltext wäre ein ähnliches Aussehen des HalloWelt-Beispiels möglich: Beispiel 2-3: Vollständige Erstellung der Oberfläche ohne HTML in der Host-Seite // Elemente final Button button = new Button("Click me"); final Label label = new Label(); Label titel = new Label("HalloWelt"); titel.setstylename("titel"); Label text = new Label("This is an example..."); // Anordnung VerticalPanel vpanel = new VerticalPanel(); vpanel.add(titel); vpanel.add(text); HorizontalPanel hpanel = new HorizontalPanel(); hpanel.add(button); hpanel.add(label); vpanel.add(hpanel); vpanel.setcellhorizontalalignment(hpanel, HasHorizontalAlignment.ALIGN_CENTER); RootPanel.get().add(vPanel); // Verhalten button.addclicklistener(new ClickListener() { public void onclick(widget sender) { if (label.gettext().equals("")) { label.settext("hello World!"); else { label.settext(""); ); Die Texte der Seite werden als Labels umgesetzt, und dem Titel wird eine eigene CSS- Klasse zugeordnet. Damit ist es möglich, ganz gezielt dieses Element anzusprechen, um beispielsweise die Schriftgröße zu ändern. Die Anordnung auf oberster Ebene erfolgt durch ein VerticalPanel. Diesem Panel kann man beliebige weitere Widgets hinzufügen, die dann alle untereinander angeordnet werden. Die frühere Tabelle, in die der Button und das Label eingefügt wurden, wird jetzt durch ein HorizontalPanel umgesetzt. Damit sind diese Elemente ebenfalls nebenein- Elemente anordnen 25

12 ander angeordnet. Außerdem muss die Zelle des VerticalPanel, die das HorizontalPanel aufnimmt, noch so konfiguriert werden, dass der Inhalt zentriert wird. Im letzten Schritt wird dann das VerticalPanel der HTML-Seite hinzugefügt. Würde man sich das DOM der HTML-Seite ansehen, befindet sich dieses Panel nun direkt unterhalb des body-elements. In diesem Beispiel erfolgt die Initialisierung nach einem Muster: Zuerst werden alle Elemente konstruiert, anschließend wird deren Anordnung festgelegt und zum Schluss das Verhalten hinzugefügt. Ich bezeichne dieses Vorgehen als EAV-Muster. Damit wird der Quellcode für andere Entwickler übersichtlicher, und man findet sich auch selbst schneller im eigenen Code zurecht. (Nicht immer bestehen Oberflächen aus so wenigen Elementen wie hier!) Außerdem stellt man so sicher, dass bei der Umsetzung des Verhaltens alle Oberflächenkomponenten erstellt sind. Auswertung von Ereignissen Alle Ereignisse, auf die Oberflächenelemente reagieren können, sind über Listener auswertbar. Diese Listener sind eine höhere Abstraktionsebene, als es die Ereignisse darstellen, mit denen man üblicherweise in HTML zu tun hat (onclick, onmousedown ). Neben dem im Beispiel benutzten CklickListener gibt es auch spezielle Listener für Maus- und Tastatur-Ereignisse. Damit man nicht gezwungen ist, unbenutzte Methoden der Listener zu implementieren, stellt das GWT auch Adapter zur Verfügung. Adapter sind (eigentlich abstrakte) Klassen, die das jeweilige Listener-Interface implementieren. Als Benutzer muss man dann nur die gewünschten Methoden überschreiben, um auf Ereignisse reagieren zu können. Bereits im HalloWelt-Beispiel wurde der ClickListener als anonyme innere Klasse implementiert und beim Button registriert. Hier noch einmal der wesentliche Quellcode-Ausschnitt: button.addclicklistener(new ClickListener() { public void onclick(widget sender) { //... ); Das Interface wird direkt implementiert, indem der new-operator benutzt wird. Das so entstehende Objekt wird der Methode addclicklistener übergeben. Die Methoden des Interfaces müssen natürlich ebenfalls implementiert werden. Die Adapter werden nach dem gleichen Prinzip instanziiert. Innerhalb der anonymen inneren Klasse kann man auf die Eigenschaften der äußeren Klasse zugreifen. Lokale Variablen müssen zusätzlich als final deklariert werden. Bei Instanzvariablen ist das nicht nötig. Wenn es sich nicht um eine triviale Implementierung beim Ausführen der Methode des Listeners handelt, wird man die Aktion in der Regel an einen Controller weiterleiten. 26 Kapitel 2: Das Google Web Toolkit eine Rundreise

13 Grundsätzlich sollte man sich an das Muster der anonymen inneren Klassen halten, und zwar aus folgenden Gründen: Die Implementierung des Listeners und die auslösende Oberflächenkomponente sind an einer einzigen Stelle miteinander verknüpft. Man gerät so nicht in die Versuchung, den gleichen Listener an den unterschiedlichsten Stellen erneut zu verwenden der entstehende Code wird unwartbar werden. Man vermeidet das häufig anzutreffende Muster, bei dem die Klasse, die die Oberflächenkomponenten enthält, eine Flut an Listener-Interfaces implementiert. In diesen Methoden wird dann per Fallunterscheidung die gewünschte Aktion ausgeführt. Auch hier ist die Entstehung unwartbaren Codes vorprogrammiert, da eine solche Konstruktion sehr umfangreich werden kann. Man ist nicht gezwungen, jede Oberflächenkomponente, auf deren Ereignisse man reagieren möchte, als Instanzvariable zu definieren. Dadurch wird der Quellcode deutlich übersichtlicher. Außerdem kann man kaum in die Falle NullPointerException geraten, weil die Instanzvariable nicht initialisiert wurde. Wenn man neue aktive Komponenten (Button, Comboboxen ) zur Oberfläche hinzufügt oder davon entfernt, ist man nicht gezwungen, bestehenden Code»anzufassen«. Damit verringert sich die Möglichkeit, neue Fehler in die Anwendung einzubauen. Und: Java ist eine objektorientierte Programmiersprache. Man muss also keine Angst davor haben, ein Objekt zu erstellen. Allerdings gibt es eine einzige Bedingung, unter der man von diesem Vorgehen abweichen sollte. Nämlich dann, wenn sehr viele Listener-Objekte erstellt werden müssten. Diese verbrauchen nämlich Ressourcen, da jedes Mal ein Objekt erstellt wird. Das kann in Browsern durchaus ein Problem werden. Bei allen bisher umgesetzten Projekten konnte ich aber keine Stelle identifizieren, an der dieses Problem wirklich auftrat und wie Sie sich sicher vorstellen können, benutzt das Fitnesstagebuch eine ziemlich große Anzahl an anonymen inneren Klassen. Schon für die Drei-Monats-Ansicht sind das immerhin 93. Der Vollständigkeit halber hier das ursprüngliche HalloWelt-Beispiel nach dem Muster: Die Klasse, in der Widgets benutzt werden, implementiert auch die Listener-Interfaces. Beispiel 2-4: Antipattern: Die Klasse implementiert das ClickListener-Interface public class HalloWelt implements EntryPoint, ClickListener { private final Button private final Label button; label; public HalloWelt() { button = new Button("Click me"); label = new Label(); Auswertung von Ereignissen 27

14 Beispiel 2-4: Antipattern: Die Klasse implementiert das ClickListener-Interface (Fortsetzung) public void onmoduleload() { button.addclicklistener(this); RootPanel.get("slot1").add(button); RootPanel.get("slot2").add(label); public void onclick(widget sender) { if (sender == button) { if (label.gettext().equals("")) { label.settext("hello World!"); else { label.settext(""); Die Instanzvariablen sind hier als final deklariert. So bin ich gezwungen, diese schon im Konstruktor zu initialisieren, und vermeide zumindest die Falle NullPointerException. Entscheiden Sie selbst, welche Variante besser lesbar ist zumindest ein kleiner Anhaltspunkt für Wartbarkeit. Kommunikation mit einem Server Für den Datenaustausch zwischen der GWT-Anwendung im Browser und einem Server stellt das Google Web Toolkit unterschiedliche Wege zur Verfügung. Die beste Integration zwischen beiden Welten ist über den eingebauten Remote Procedure Call-Mechanismus möglich. Allerdings verlangt dieser, dass auch die Server-Implementierung in Java erfolgt. Aus diesem Grund und weil diese Form des Datenaustauschs in einem eigenen Kapitel ausführlich behandelt wird, werde ich einen Weg vorstellen, der grundsätzlich mit jedem beliebigen Server funktioniert. Dazu wird das HalloWelt-Beispiel so modifiziert, dass bei einem Klick auf den Button HTML-Quelltext aus einer Datei nachgeladen und an Stelle des Labels angezeigt wird. Man sollte HTML-Quelltext nur dann direkt, so wie im Folgenden dargestellt, in die eigene Webseite einfügen, wenn man den Inhalten vertrauen kann. Andernfalls hat man nämlich den ersten Schritt getan, um Angreifern den Weg in die Browser der Clients zu ermöglichen. Eine genauere Darstellung dieses Problems erfolgt in Kapitel Kapitel 2: Das Google Web Toolkit eine Rundreise

15 Hier zunächst der abgewandelte Quelltext für das Verhalten: Beispiel 2-5: Nachladen von HTML final RequestBuilder request = new RequestBuilder(RequestBuilder.GET, GWT.getModuleBaseURL() + "html.txt"); button.addclicklistener(new ClickListener() { public void onclick(widget sender) { try { request.sendrequest("", new RequestCallback() { public void onerror(request request, Throwable exception) { Window.alert("Fehler: " + exception.getmessage()); public void onresponsereceived(request request, Response response) { if (response.getstatuscode() == 200) { html.sethtml(response.gettext()); else { Window.alert("auch das ist ein Fehler!" + response.getstatuscode()); ); catch (RequestException e) { Window.alert("Fehler: " + e.getmessage()); ); Zunächst muss ein Objekt vom Typ RequestBuilder erstellt werden. Dahinter verbirgt sich das bekannte XMLHttpRequest-Objekt. Allerdings muss man sich hier nicht mit der Erstellung dieses Objektes für unterschiedliche Browser auseinandersetzen darum kümmert sich das GWT. Die Klasse RequestBuilder gehört nicht zum Modul User. Deshalb muss zusätzlich das HTTP-Modul in der Moduldefinition unseres HalloWelt-Beispiels angegeben werden: <inherits name='com.google.gwt.http.http'/> Beim Erstellen des Objektes gibt man an, ob man mit der HTTP-Methode GET oder POST auf die Ressource zugreifen möchte. Der zweite Parameter definiert den URL zur Ressource. Die Methode GWT.getModulBaseUrl liefert den absoluten Pfad zum Modul. Für das lokale Beispiel im Hosted-Browser ist das Welt/. Daran wird noch der Name der Datei (html.txt) angehängt. Diese Datei muss sich im Ordner public befinden also auf der gleichen Ebene wie die Host-Seite Hallo- Welt.html. Beim Klick auf den Button wird die Methode sendrequest des soeben erstellten Objektes aufgerufen. Mit Hilfe des ersten Parameters könnte man Daten mit zum Server senden. Kommunikation mit einem Server 29

Ajax & GWT. Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina

Ajax & GWT. Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina Ajax & GWT Kurs: User Interfaces und ihre Evaluierung Dozent: Manfred Thaller WS 2012/2013 Referent: Rafael Kalina Ajax Technisches Verfahren, bei dem Browser aktualisierte Inhalte nicht mehr synchron

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

RÖK Typo3 Dokumentation

RÖK Typo3 Dokumentation 2012 RÖK Typo3 Dokumentation Redakteur Sparten Eine Hilfe für den Einstieg in Typo3. Innpuls Werbeagentur GmbH 01.01.2012 2 RÖK Typo3 Dokumentation Inhalt 1) Was ist Typo3... 3 2) Typo3 aufrufen und Anmelden...

Mehr

JBuilderX: Installation und Kurzanleitung (Windows)

JBuilderX: Installation und Kurzanleitung (Windows) JBuilder X Seite 1 JBuilderX: Installation und Kurzanleitung (Windows) 1. JBuilder installieren Eine Gratis-Version kann von der Webseite www.borland.de heruntergeladen werden. Systemvoraussetzungen: 256

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer Kommunikation I (Internet) Übung 4 PHP SS 2004 Inhaltsverzeichnis 1. PHP die serverseitige Programmiersprache...1 1.1. PHP - Bereiche in HTML definieren...1

Mehr

Benutzerhandbuch. Gästebuch Software - YellaBook v1.0 http://www.yellabook.de. Stand: 01.08.2012. by YellaBook.de - Alle Rechte vorbehalten.

Benutzerhandbuch. Gästebuch Software - YellaBook v1.0 http://www.yellabook.de. Stand: 01.08.2012. by YellaBook.de - Alle Rechte vorbehalten. Benutzerhandbuch Gästebuch Software - YellaBook v1.0 http://www.yellabook.de Stand: 01.08.2012 Inhalt 1 Funktionen... 3 2 Systemanforderungen... 4 3 Installation... 4 4 Einbinden des Gästebuchs... 5 5

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Installation Anleitung für JTheseus und MS SQL Server 2000

Installation Anleitung für JTheseus und MS SQL Server 2000 Installation Anleitung für JTheseus und MS SQL Server 2000 Inhaltsverzeichnis 1 Installation der Datenbank 3 1.1 Erstellen der Datenbank 3 1.2 Tabellen und Minimal Daten einlesen 4 1.3 Benutzer JTheseus

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

3 Einstieg in die GWT-Entwicklung

3 Einstieg in die GWT-Entwicklung 21 3 Einstieg in die GWT-Entwicklung In diesem Kapitel wollen wir mit Hilfe der GWT-Skripte ein einfaches Beispiel erstellen und in die Entwicklungsumgebung Eclipse integrieren. Anhand dieses Beispiels

Mehr

Erste Schritte zum lauffähigen Java Programm

Erste Schritte zum lauffähigen Java Programm Erste Schritte zum lauffähigen Java Programm Diese kleine Einführung ist eine Hilfe für Studenten der Vorlesung SWT I zur Meisterung der sich ergebenden Hürden bei der Erstellung eines ersten kleinen Java-Programms.

Mehr

1. BlueJ installieren (nach dem Buch Java lernen mit BlueJ von David J. Barnes; Michael Kölling)

1. BlueJ installieren (nach dem Buch Java lernen mit BlueJ von David J. Barnes; Michael Kölling) 1. BlueJ installieren... 1 2. BlueJ auf die deutsche Version umstellen... 1 3. BlueJ Extensions... 2 a. Klassenkarte... 2 i. UML Extension... 2 ii. Klassenkarte zum Schulbuch... 3 b. CNU BlueJ Code Formatter...

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03

PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03 PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03 Bei dem vierten Teil geht es um etwas praktisches: ein Emailformular, dass man auf der eigenen

Mehr

1 Websites mit Frames

1 Websites mit Frames 1 Websites mit Frames Mehrere Seiten in einer einzelnen Seite anzeigen - Was sind Frames und wie funktionieren sie? - Was sind die Vor- und Nachteile von Frames? - Wie erstellt man eine Frames- Webseite?

Mehr

GWT. Martin Kluth Universität Osnabrück

GWT. Martin Kluth Universität Osnabrück GWT Martin Kluth Universität Osnabrück Google hat durch das Google Web Toolkit (GWT) mitte 2006 ein AJAX-Framework vorgestellt, dass sich grundlegend von anderen, bisher verfügbaren AJAX-Frameworks, unterscheidet.

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr

Web und Mobile Apps Programmieren mit Dart

Web und Mobile Apps Programmieren mit Dart Web und Mobile Apps Programmieren mit Dart Marco Jakob Kalaidos Fachhochschule Schweiz majakob@gmx.ch Abstract: Bisher war es kaum realistisch, im Anfängerunterricht mobile oder webbasierte Applikationen

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

KURZANLEITUNG CLOUD BLOCK STORAGE

KURZANLEITUNG CLOUD BLOCK STORAGE KURZANLEITUNG CLOUD BLOCK STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung......Seite 03 2. Anlegen eines dauerhaften Block Storage...Seite 04 3. Hinzufügen von Block Storage

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

HTML5. Grundlagen der Erstellung von Webseiten. Linda York, Tina Wegener. 1. Ausgabe, Dezember 2011 HTML5

HTML5. Grundlagen der Erstellung von Webseiten. Linda York, Tina Wegener. 1. Ausgabe, Dezember 2011 HTML5 Linda York, Tina Wegener HTML5 Grundlagen der Erstellung von Webseiten 1. Ausgabe, Dezember 2011 HTML5 2 HTML5 - Grundlagen der Erstellung von Webseiten 2 Die erste Webseite mit HTML erstellen In diesem

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Seminar aus Informatik. Google Web Toolkit 11.01.2009. Supervisor: O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang PREE wolfgang.pree@sbg.ac.

Seminar aus Informatik. Google Web Toolkit 11.01.2009. Supervisor: O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang PREE wolfgang.pree@sbg.ac. Seminar aus Informatik Google Web Toolkit 11.01.2009 Praktikanten: Alexander Brosch alexander.brosch@sbg.ac.at Martin Mitterbauer martin.mitterbauer@sbg.ac.at Supervisor: O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang

Mehr

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

Mehr

Inhaltsverzeichnis. Teil 1 Node.js... 1

Inhaltsverzeichnis. Teil 1 Node.js... 1 xiii Teil 1 Node.js... 1 1 Was ist Node.js? 3 1.1 Die Zeitalter des Webs................................... 3 1.1.1 1990 bis 2000: Das Web 1.0....................... 3 1.1.2 2000 bis 2010: Das Web 2.0.......................

Mehr

Frontend Backend Administration Frontend Backend Administration Template

Frontend Backend Administration Frontend Backend Administration Template Begriffe Frontend Backend Administration Bei Contentmanagementsystemen (CMS) unterscheidet man zwischen zwei Bereichen, dem sogenannten Frontend und dem Backend Bereich. Der Backend wird häufig als Administration

Mehr

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit List & Label 16 List & Label Windows Azure List & Label Windows Azure - 2 - Inhalt Softwarevoraussetzungen 3 Schritt 1: Neues Projekt

Mehr

Userhandbuch. Version B-1-0-2 M

Userhandbuch. Version B-1-0-2 M Userhandbuch Version B-1-0-2 M Inhaltsverzeichnis 1.0 Was bietet mir SERVRACK?... 3 1.1 Anmeldung... 3 1.2 Passwort vergessen?... 3 1.3 Einstellungen werden in Realtime übernommen... 4 2.0 Die SERVRACK

Mehr

Visual Web Developer Express Jam Sessions

Visual Web Developer Express Jam Sessions Visual Web Developer Express Jam Sessions Teil 1 Die Visual Web Developer Express Jam Sessions sind eine Reihe von Videotutorials, die Ihnen einen grundlegenden Überblick über Visual Web Developer Express,

Mehr

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java- Eckart Modrow LEGO-Mindstorms-Roboter S. 1 LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java- Benutzung in einer Programmierumgebung Für die LEGO-Roboter stehen unter allen gängigen Betriebssystemen

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Erste Schritte mit Elvis 3 ein Beispielprojekt

Erste Schritte mit Elvis 3 ein Beispielprojekt Erste Schritte mit Elvis 3 ein Beispielprojekt Um Sie mit Elvis 3 vertraut zu machen möchten wir mit Ihnen mit diesem Kapitel ein Beispielprojekt vom ersten Aufruf von Elvis 3 bis zum Testlauf aufbauen.

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI The expert for industrial and automotive communication IXXAT Hauptsitz Geschäftsbereich USA IXXAT Automation GmbH IXXAT Inc. Leibnizstr.

Mehr

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java Grundlagen von Java Aufgabe 1: Typen und Zuweisungen in Java Welche der folgenden Java-Anweisungen sind fehlerhaft? Handelt es sich um einen Compiler- oder einen Laufzeitfehler? Anmerkung: Folgefehler

Mehr

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse 1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche

Mehr

Web Visu Tutorial. Hipecs Web Visu. Übersicht

Web Visu Tutorial. Hipecs Web Visu. Übersicht Revision Date V100 10082011 Hipecs Web Visu Die hipecs (high performance controller system) bietet die Möglichkeit einer sog Web-Visualisierung über den integrierten Webserver Hierfür wird im Standard

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

DSLinux Skriptbasierte Inventarisierung für Linux

DSLinux Skriptbasierte Inventarisierung für Linux DSLinux Skriptbasierte Inventarisierung für Linux www.docusnap.com TITEL DSLinux AUTOR Docusnap Consulting DATUM 21.04.2015 Die Weitergabe, sowie Vervielfältigung dieser Unterlage, auch von Teilen, Verwertung

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes

Mehr

URT Eclipse All in one

URT Eclipse All in one URT Eclipse All in one Das Paket Eclipse All in one enthält Programme und Einstellungen, die zum Programmieren mit Eclipse in Zusammenarbeit mit Subversion und ANT benötigt werden. Dieses Paket dient als

Mehr

Einrichten eines News-Systems in Typo3

Einrichten eines News-Systems in Typo3 Einrichten eines News-Systems in Typo3 Generelles: tt_news ist eine der beliebtesten Erweiterungen für Typo3 und wir bereits auf vielen Sites Vorarlberger Schulen verwendet: Beispiele: http://www.vobs.at/hsl

Mehr

Literatur und Links. Webtechnologien SS 2015 Teil 1/Entwicklung

Literatur und Links. Webtechnologien SS 2015 Teil 1/Entwicklung Literatur und Links [1-1] Seidler, Kai; Vogelsang, Kay: Das XAMPP Handbuch. Addison-Wesley, 2006 [1-2] http://www.apachefriends.org/download.html http://sourceforge.net/projects/xampp/files/ [1-3] http://aktuell.de.selfhtml.org/extras/download.shtml

Mehr

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool JBoss vorbereiten Wir haben ein zip-archiv mit JBoss 4.0.5 in /opt/jboss-4.0.5.zip hinterlegt. Entpacken Sie dieses in ihrem Homeverzeichnis an

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse

Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse Wie man in C++ mit Hilfe von Qt GUI-Anwendungen programmieren kann.

Mehr

Aktuelle Sicherheitsprobleme im Internet

Aktuelle Sicherheitsprobleme im Internet Herbst 2014 Aktuelle Sicherheitsprobleme im Internet Wirtschaftsinformatik: 5. Semester Dozenten: Rainer Telesko / Martin Hüsler Fachhochschule Nordwestschweiz FHNW / Rainer Telesko - Martin Hüsler 1 Inhalt

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel XDK

Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK vertraut. Es wird Schritt für Schritt die erste eigene Hybrid-App entwickelt

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

a) WebDav-Laufwerk einrichten (Windows Vista, W7, W8) Seite 2

a) WebDav-Laufwerk einrichten (Windows Vista, W7, W8) Seite 2 DIANIZER 3.0 WEB einrichten Inhalt a) WebDav-Laufwerk einrichten (Windows Vista, W7, W8) Seite 2 b) Dianizer WEB einrichten Seite 5 b1) Rufen Sie Ihre Wunsch-Subdomain auf. Seite 5 b2) Melden Sie sich

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

INSTALLATION. Voraussetzungen

INSTALLATION. Voraussetzungen INSTALLATION Voraussetzungen Um Papoo zu installieren brauchen Sie natürlich eine aktuelle Papoo Version die Sie sich auf der Seite http://www.papoo.de herunterladen können. Papoo ist ein webbasiertes

Mehr

Die Dateiablage Der Weg zur Dateiablage

Die Dateiablage Der Weg zur Dateiablage Die Dateiablage In Ihrem Privatbereich haben Sie die Möglichkeit, Dateien verschiedener Formate abzulegen, zu sortieren, zu archivieren und in andere Dateiablagen der Plattform zu kopieren. In den Gruppen

Mehr

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt Eagle Eye Studios C# Tutorial Part 1 Inhalt Part 1 Einleitung Vorbereitung Das erste Projekt Einleitung Wer sich mit dem Programmieren schon einigermaßen auskennt, kann diesen Abschnitt überspringen. Programmieren,

Mehr

FTP HOWTO. zum Upload von Dateien auf Webserver. Stand: 01.01.2011

FTP HOWTO. zum Upload von Dateien auf Webserver. Stand: 01.01.2011 FTP HOWTO zum Upload von Dateien auf Webserver Stand: 01.01.2011 Copyright 2002 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können z.t. eingetragene

Mehr

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

2. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt. Arbeitsblätter Der Windows Small Business Server 2011 MCTS Trainer Vorbereitung zur MCTS Prüfung 70 169 Aufgaben Kapitel 1 1. Sie sind der Administrator Ihres Netzwerks, das den SBS 2011 Standard ausführt.

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

C# - PROGRAMME MIT PLUGINS ERWEITERN C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt,

Mehr

2 Fenster - Hauptelement des GUI

2 Fenster - Hauptelement des GUI Einführung in die objektorientierte Programmierung mit C# 13 2 Bei der Arbeit mit Computern erwarten die Nutzer eine komfortable Bedienung über eine eine»grafische Oberfläche«(engl.: graphical user interface

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

Mehr

HTL-Website. TYPO3- Skriptum II. Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig. Qualitätsmanagement

HTL-Website. TYPO3- Skriptum II. Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig. Qualitätsmanagement HTL-Website TYPO3- Skriptum II Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig Qualitätsmanagement Erstellt Geprüft Freigegeben Name RUK Datum 02.06.2010 Unterschrift Inhaltsverzeichnis

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

Mehr

Dokumentation - Schnelleinstieg FileZilla-FTP

Dokumentation - Schnelleinstieg FileZilla-FTP Dokumentation - Schnelleinstieg FileZilla-FTP Diese Anleitung zeigt Ihnen in aller Kürze die Bedienung des FileZilla-FTP-Clients. Standardmäßig braucht FileZilla nicht konfiguriert zu werden, daher können

Mehr

Kurzanleitung zu. von Daniel Jettka 18.11.2008

Kurzanleitung zu. von Daniel Jettka 18.11.2008 Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation

Mehr

Newsleecher Anleitung

Newsleecher Anleitung Newsleecher Anleitung Newsleecher ist ein Newsreader, der speziell für die Binaries des Usenet entwickelt wurde. Es kann zu mehreren Servern gleichzeitig Verbindung aufnehmen und damit superschnelle Downloads

Mehr

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen FAEL-Seminar Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

Mehr

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10. Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren

Mehr

Programmieren 2 (Prof. Hasbargen) Klausur

Programmieren 2 (Prof. Hasbargen) Klausur Programmieren 2 (Prof. Hasbargen) 1 Klausur Aufgabe 1 (10 Punkte) Dynamisierung von HTML-Seiten HTML-Seiten sind eine gängige Art und Weise, Informationen darzustellen. Nennen Sie die Gründe, welche Vorteile

Mehr

1 Grundlagen von Phase 5 Installiere das Programm Phase 5 auf dem Rechner.

1 Grundlagen von Phase 5 Installiere das Programm Phase 5 auf dem Rechner. Kapitel 1 Grundlagen von Phase 5 Seite 1 1 Grundlagen von Phase 5 Installiere das Programm Phase 5 auf dem Rechner. 1.1 Projekt anlegen Bevor du das Programm Phase 5 startest, musst du einen Ordner anlegen,

Mehr

BFV Widgets Kurzdokumentation

BFV Widgets Kurzdokumentation BFV Widgets Kurzdokumentation Mit Hilfe eines BFV-Widgets lassen sich die neuesten Ergebnisse und die aktuellen Tabellen des BFV auf der eigenen nicht kommerziellen Webseite mit wenig Aufwand einbeten.

Mehr

Starten Sie das Shopinstallatonsprogramm und übertragen Sie alle Dateien

Starten Sie das Shopinstallatonsprogramm und übertragen Sie alle Dateien 3. Installation Ihres Shops im Internet / Kurzanleitung Kurzanleitung: Starten Sie das Shopinstallatonsprogramm und übertragen Sie alle Dateien Geben Sie während der Webbasierten Installationsroutine alle

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Tutorial Job Implementierung

Tutorial Job Implementierung Software- und Organisations-Service GmbH JOB SCHEDULER Tutorial Job Implementierung Technische Dokumentation 29.November 2004 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Erste Schritte mit dem Qt Creator

Erste Schritte mit dem Qt Creator GUI-Anwendungen mit C++-Bibliothek Qt Qt-Creator 1 Erste Schritte mit dem Qt Creator Diese Beschreibung wendet sich an Anfänger, die noch nie mit der Entwicklungsumgebung (IDE) Qt Creator gearbeitet haben.

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Facebook iframe-tabs: individuelle Fanseiten-Reiter mit eigener Anwendung erstellen

Facebook iframe-tabs: individuelle Fanseiten-Reiter mit eigener Anwendung erstellen Facebook iframe-tabs: individuelle Fanseiten-Reiter mit eigener Anwendung erstellen Anfang März 2011 hat Facebook das Erstellen von sogenannten iframe-tabs als individuelle Gestaltungsmöglichkeit von Fanseiten

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Grundlagen der Informatik Übungen 1.Termin

Grundlagen der Informatik Übungen 1.Termin Grundlagen der Informatik Übungen 1.Termin Dr. Ing Natalia Currle-Linde Institut für Höchstleistungsrechnen 1 Kurzvorstellung Dr.-Ing. Natalia Currle-Linde linde@hlrs.de Institut für Höchstleistungsrechnen

Mehr

eytron VMS Webanwendung Fehlersuche und -Behebung

eytron VMS Webanwendung Fehlersuche und -Behebung eytron VMS Webanwendung Fehlersuche und -Behebung 2009 ABUS Security-Center GmbH & Co. KG, Alle Rechte vorbehalten Diese Anleitung soll Ihnen Unterstützung für den Fall geben, dass die Webanwendung nach

Mehr

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Von Padmalcom (20.03.2009) www.jofre.de Nach dem Tutorial 1 von Leonardo M. Ramé 1 Ja, es geht wirklich! Im Internet sind tausende Forenbeinträge

Mehr

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Nach dem Update auf die Version 1.70 bekommen Sie eine Fehlermeldung,

Mehr