Inhaltsverzeichnis
1 Einleitung. 4
2 Webanwendungen. 5
2.1 Definition. 5
2.2 Webanwendungsentwicklung. 5
2.2.1 Anforderungen und Planung. 5
2.2.2 Design. 6
2.2.3 Programmierung. 6
2.2.4 Test und Installation. 6
3 Analyse bestehender Methoden. 7
3.1 PHP. 7
3.1.1 Geschichte. 7
3.1.2 Funktionsweise. 8
3.2 Java. 10
3.2.1 Geschichte. 10
3.2.2 Servlets. 11
3.2.3 Java Server Pages. 13
3.2.4 Frameworks. 14
3.3 Datenbanken. 15
3.3.1 Definition und Aufgaben. 15
3.3.2 Datenbankmodelle. 15
3.3.2.1 Hierarchische Datenbanken. 16
3.3.2.2 Relationale Datenbanken. 16
3.3.3 MySQL. 17
3.4 Object Relational Mapping (ORM) 17
3.4.1 Impedance Mismatch. 17
3.4.2 Frameworks. 18
4 Neuartige Methoden. 19
4.1 Java Framework „IT Mill Toolkit“ 19
2
4.2 Objektdatenbanken. 28
4.2.1 Definition. 28
4.2.2 db4o. 28
4.2.2.1 Query by Example (QBE) 31
4.2.2.2 Native Queries. 32
4.2.2.3 SODA. 33
4.2.2.4 Weitere Funktionen. 35
4.2.2.5 Fazit. 38
5 Vergleich der Methoden am praktischen Beispiel. 40
5.1 Das Projekt: “custoVoice“ 40
5.1.1 Klassenstrukturen. 41
5.2 PHP und Java mit IT Mill Toolkit. 46
5.2.1 Anforderung und Planung. 46
5.2.2 Design. 46
5.2.3 Programmierung. 47
5.2.4 Tests und Installation. 50
5.2.5 Fazit. 50
5.3 mySQL und db4o. 51
5.3.1 Anforderung und Planung. 51
5.3.2 Design. 51
5.3.3 Programmierung. 52
5.3.4 Tests und Installation. 55
5.3.5 Fazit. 55
6 Zusammenfassung. 57
7 Ergänzungen. 58
8 Darstellungsverzeichnis. 59
9 Abkürzungsverzeichnis. 60
10 Literaturverzeichnis. 61
10.1 Bücher. 61
10.2 Internetquellen. 61
3
1 Einleitung
Mit der zunehmenden Bedeutung des Internets wuchs in den vergangenen sieben Jahren auch der Markt für web-basierte Softwarelösungen. Anfangs konnte noch nicht von Webanwendungen gesprochen werden, da es sich dabei nur um einfache statische Seiten handelte. Der Begriff “Web 2.0“ steht für die Wandlung des Internets von statischen zu benutzergenerierten Inhalten. Dabei stehen die Anwender selbst im Vordergrund und veröffentlichen Artikel, Bilder oder bilden virtuelle soziale Netzwerke.
Einem Entwickler eröffnen sich viele Möglichkeiten um Webanwendungen schreiben zu können. Eine beliebte Kombination stellt die Skriptsprache PHP mit der relationalen Datenbank mySQL dar. Die vorliegende Arbeit beschreibt nach einer allgemeinen Definition, gängige und bewährte Methoden der Webentwicklung mit PHP und Java. Daraufhin werden folgende neuartige Methoden vorgestellt und mit den bestehenden Methoden verglichen: Das Java Framework “IT Mill Toolkit“ und die Objektdatenbank “db4o“ nehmen einem Entwickler viel Arbeit ab.
Die Motivation hinter dieser Arbeit ergibt sich aus einem Projekt, das ich für meinen Praktikumsbetrieb während des Praxissemesters realisiert habe. Die Webanwendung namens “custoVoice“ sollte mit den neuen Methoden verwirklicht werden und dabei die Effizienz zu gängigen Methoden aufzeigen.
4
2 Webanwendungen
2.1 Definition
Bei einer Webanwendung handelt es sich um eine Software für Endnutzer, auf die über einen Webclient zugegriffen wird. Das bedeutet, dass die Software sich nicht wie bei einer gewöhnlichen Desktopanwendung lokal auf dem Computer befindet, sondern auf einem entfernten Webserver läuft. Der Benutzer interagiert mit der Webanwendung über einen Webbrowser, der mithilfe des HTTP Protokolls die Anfragen an den Webserver stellt und die Antwort dem Benutzer darstellt. 1
Diese Definition würde bedeuten, dass es sich auch bei statisch abrufbaren HTML Seiten um eine Webanwendung handelt. Echte Webanwendungen können viel mehr als das: Sie reagieren auf Benutzereingaben, erzeugen dynamischen Inhalt und sammeln Informationen aus internen oder externen Quellen. 2
Webanwendungen laufen auf spezieller Software, die auf einem Server installiert werden muss, um daraus einen Webserver zu schaffen. Eine Open-Source Variante ist dabei das HTTP Server Projekt der Apache Software Foundation. In Konkurrenz dazu steht der IIS (Internet Information Service) von Microsoft.
2.2 Webanwendungsentwicklung
In diesem Kapitel soll eine allgemeine Beschreibung der Vorgehensweise bei der Entwicklung erfolgen. Im Kapitel “Neuartige Methoden“ lassen sich anhand verschiedener Faktoren diese Prozesse, im Vergleich zu den bestehenden Methoden, bewerten.
2.2.1 Anforderungen und Planung
Am Anfang jeder Softwareentwicklung steht die Zusammenstellung der Anforderungen in einem Lastenheft. Oft erfolgt die Formulierung aus Benutzersicht, deshalb bietet es sich an, die Anforderungen mithilfe eines grafischen Prototypen darzulegen. 3 Anhand dessen lassen sich alle funktionellen Elemente definieren und jeweils die Geschehnisse in der Anwendungs- und Datenbanksebene in einem Pflichtenheft beschreiben.
1 Vgl. Moczar, L., Tomcat 5, 2005, S. 117.
2 Vgl. Moczar, L., Tomcat 5, 2005, S. 117.
3 Vgl. Moczar, L., Tomcat 5, 2005, S. 135.
5
2.2.2 Design
Ein Design ist ein Handlungsplan, der definiert wie bestimmte Aufgaben zu erledigen sind. Bei der Softwareentwicklung bedeutet das, eine Formel zu finden, die die recherchierten Anforderungen in einen Programmcode übersetzt. Dabei werden u.a. Programmiersprache, Frameworks oder Datenbanksysteme, die für das Projekt geeignet sind, ausgewählt. 4
Oft unterliegen Entwickler dem Drang, sofort mit dem eigentlichen Teil der Arbeit anzufangen: dem Programmieren. Für triviale Anwendungen mag diese Vorgehensweise funktionieren, spätestens bei komplexen Anforderungen lohnt es sich jedoch im vorhinein Gedanken zum Design der Applikation zu machen. Kein oder ein schlechtes Design haben zur Folge, dass im späteren Verlauf der Projektphase viel Zeit benötigt wird, um Fehler zu beseitigen. 5
2.2.3 Programmierung
Erst jetzt kann sich der Entwickler der Tätigkeit zuwenden, die ihm am meisten liegt. Je nachdem, welche Entwicklungsausrichtung in der Planungsphase gewählt wurde, wird nun horizontal oder vertikal entwickelt. Bei der horizontalen Ausrichtung wird auf eine feste Basis aufgebaut, d.h. dass die Entwicklung z.B. mit der Datenbankerstellung anfängt und weiter mit der Klassenerstellung fortfährt. Bei der vertikalen Form wird eine ausgewählte Funktionalität bis zum Ende fertiggestellt. 6
2.2.4 Test und Installation
Tests sollten synchron zum Entwicklungsvorgang in der Entwicklungsumgebung stattfinden. Dabei bietet es sich an, unter den selben Bedienungen zu entwickeln wie sie später im produktiven Einsatz vorkommen. Das erleichtert auch die Installation beim Kunden. Im optimalen Fall ist nur ein Dateitransfer des Programmes nötig. Meist sind jedoch weitere Softwarekomponenten zu installieren und zu konfigurieren, wie z.B. ein Webserver oder eine Zusatzbibliothek.
4 Vgl. Moczar, L., Tomcat 5, 2005, S. 146.
5 Vgl. Moczar, L., Tomcat 5, 2005, S. 145.
6 Vgl. Moczar, L., Tomcat 5, 2005, S. 136.
6
3 Analyse bestehender Methoden
3.1 PHP
PHP ist eine speziell für web-basierte Lösungen entwickelte Skriptsprache, die auf Webserver-Software, wie z.B. den Apache HTTP Server, läuft. Bei dem Namen handelt es sich um ein rekursives Akronym mit der Bedeutung “PHP Hypertext Preprocessor“. 7
3.1.1 Geschichte
Rasmus Lerdorf entwickelte 1995 ein Set von Perl-Skripten, um Zugriffe seiner Website erfassen zu können. Es folgte eine weitere und umfangreichere Umsetzung in C, welche mehr Funktionalität versprach, u.a. Datenbankanbindungen und die Möglichkeit einfache dynamische Internetseiten zu programmieren. Er nannte diese Umsetzung “Personal Home Page Tools / Forms Interpreter“, kurz PHP/FI, und stellte den Source Code der Öffentlichkeit zur Verfügung. Der Syntax lehnte an Perl an, war jedoch vergleichsweise eingeschränkt und inkonsistent. 8
Zwei Jahre später wurde PHP/FI von Andi Gutmans und Zeev Suraski in Kooperation mit Lerdorf neu geschrieben und gegen Ende 1998 unter dem Namen „PHP“ in der Version 3.0 veröffentlicht. Durch die starken Erweiterungsmöglichkeiten zog das Projekt viele Entwickler an, die sich an der Weiterentwicklung beteiligten und PHP 3.0 zu einem Erfolg machten. Besondere Merkmale waren die Unterstützung von objektorientierter und konsistenterer Sprachsyntax sowie die Integration von APIs und Protokollen. Auch wenn PHP 3.0 im Vergleich zu PHP/FI ein enormer Fortschritt war, stellte es keine optimale Basis für effiziente Entwicklungen komplexer Applikationen dar. 9
Um die Effizienz zu steigern und eine verbesserte Modularität des Basiscodes zu erreichen, fingen Gutmans und Suraski 1998 an, den Kern umzuschreiben. Im November 1999 gründeten beide das Unternehmen “Zend Technologies Ltd“ und veröffentlichen im Mai 2000 PHP 4.0 mit überarbeitetem Kern namens “Zend Engine“. PHP 4.0 lieferte eine 200 mal bessere Performance als der Vorgänger 10 . Seitdem wuchs die Akzeptanz von PHP und dessen Benutzerzahl stetig.
7 Vgl. Achour, M. u.a., PHP Handbuch, http://www.php.net/manual/de/introduction.php, 10.09.2007.
8 Vgl. Achour, M. u.a., PHP Handbuch, http://www.php.net/manual/de/history.php, 10.09.2007.
9 Vgl. Achour, M. u.a., PHP Handbuch, http://www.php.net/manual/de/history.php, 10.09.2007.
10 Vgl. Gildemeister, A. u.a., PHP de Luxe, 2004, S. 35.
7
In der aktuellen Version 5, die seit Juli 2004 veröffentlicht ist, wurde viel Wert auf Abwärtskompatibilität gelegt, um PHP 4 Skripte weiterhin unter PHP 5 ausführen zu können. Die wichtigste Neuerung betrifft die objektorientierten Sprachmittel, die letztendlich eine umfangreiche und professionelle Reife erlangt haben. 11
3.1.2 Funktionsweise
PHP Code kann direkt in HTML eingebettet werden, d.h. dass im Gegensatz zu einem Skript in Perl oder C keine Anweisungen erfolgen müssen, um HTML auszugeben.
Mit den Anfangs- und Endtags '' wird der PHP-Bereich eingegrenzt. Der Benutzer sieht im Browser nur die Ausgabe “Hello World“ in Fettschrift, da PHP serverseitig interpretiert und das Ergebnis an den Client geschickt wird.
PHP besitzt eine geringe Lernkurve, d.h. Anfängern können schnell und einfach ihre Ideen umsetzen. Das liegt zum Teil an der schwachen Typi sierung von PHP.
Die Zuweisung der Variablentypen erfolgt automatisch, Zahl A wird als Integer interpretiert und Zahl B als String. Das birgt Nachteile bei Typumwandlungen und der formalen Entwicklung. PHP hat anders als Java auch keine vorgegebene Quellcodestruktur.
11 Vgl. Gildemeister, A. u.a., PHP de Luxe, S. 38.
8
Um das Beispiel des serverseitigen Skript ausführen zu können, wird ein Webserver, der PHP Parser und ein Webbrowser benötigt. Beim Abruf einer PHP Seite sendet der Browser eine HTTP Anforderung an den Webserver, der wiederum die Anfrage an die PHP Schnittstelle weiterleitet. Die Schnittstelle ruft die Zend Engine auf, welche auf die Festplatte des Webservers zugreift. Es erfolgt ein Lesezugriff auf den Quellcode des angeforderten PHP Skripts, der an den Laufzeitcompiler weitergeleitet wird. Daraufhin wird ein kompiliertes Abbild erstellt und an den Zend Executor übergeben, welcher die Ausgabe für den Browser erzeugt. Sollte das Skript Funktionsaufrufe beinhalten, die weitere Module benötigen (z.B. Zugriff auf eine mySQL Datenbank), werden die Prozesse vom entsprechenden Funktionsmodul verarbeitet und der Engine zurückgeliefert. 12
Obwohl PHP für die serverseitige Skriptausführung spezialisiert ist, lässt sich es sich auf 2 weitere Arten nutzen:
PHP lässt sich auch über die Kommandozeile des Betriebssystems ausführen, ohne Webserver und Browser. Diese Methode bietet sich für regelmäßige Aufgaben an (z.B. Löschen eines Caches), die mittels Cronjob (Unix/Linux) bzw. Taskmanager (Windows) aufgerufen werden. 13
Eine weitere, aber wenig verbreitete Nutzungsart stellt die Erweiterung PHP-GTK dar. Mit ihr können plattformunabhängige GUI Applikationen geschrieben werden. Dies bietet sich für Entwickler an, die sich bereits sehr gut mit PHP auskennen und grafische Programme entwickeln möchten. 14
12 Vgl. Gildemeister, A. u.a., PHP de Luxe, 2004, S. 36ff.
13 Vgl. Achour, M. u.a., PHP Handbuch, http://de.php.net/manual/de/intro-whatcando.php, 10.09.2007.
14 Vgl. Achour, M. u.a., PHP Handbuch, http://de.php.net/manual/de/intro-whatcando.php, 10.09.2007.
9
PHP ist für alle gängige Webserver-Software erhältlich. Neben PHP empfiehlt es sich zudem, eine Datenbank wie mySQL sowie ein entsprechendes Verwaltungsprogramm (z.B. phpMyAdmin) zu installieren. Um den Rahmen für die Entwicklung dynamischer Webseiten zu schaffen, werden Programme verwendet, die diese Infrastruktur ohne viel Aufwand herstellen. Sogenannte “xAMP“-Distributionen beinhalten die Programme Apache HTTP Server, mySQL und PHP mit jeweiliger Installationsroutine. Der Anfangsbuchstabe der Distribution weist auf die unterstützte Plattform hin: L für Linux, M für Macintosh und W für Windows (entsprechend LAMP, MAMP und WAMP).
3.2 Java
Java ist eine objektorientierte Programmiersprache, entwickelt von der US-Firma Sun Microsystems. Java ist neben der Java-Plattform (der Ablaufumgebung) Teil der Java-Technologie.
Der Name lehnt an die Lieblingskaffeesorte der damaligen Entwickler an.
3.2.1 Geschichte
Die Java Technologie wurde 1991 in einem geheimen Projekt namens „Green Project“ bei Sun entwickelt, initiiert von Patrick Naughton, Mike Sheridan und James Gosling. Das Team von 13 Leuten hatte sich allerdings nicht zur Aufgabe gemacht, eine neue Programmiersprache zu entwickeln. Das Ziel war eher die Erforschung neuer zukunftsweisender Einsätze von digitalen Geräten. 15
Im Sommer 1992 stellten sie eine funktionierende Demo einer interaktiven homeentertainment Gerätesteuerung mit animiertem Touchscreen Interface fertig. Das Gerät namens *7 (“StarSeven“) basierte auf einer neuen, prozessorunabhängigen Sprache, die von Teammitglied James Gosling eigens entwickelt wurde. Gosling nannte die neue Sprache “Oak“ (Eiche), angeblich nach der Eiche vor seinem Fenster. 16
Als das Projekt begann, potentielle Kunden aus der Fernsehindustrie zu involvieren, nannten sie sich ab dem Zeitpunkt “FirstPerson“. Das Team entwickelte eine Demo namens “MovieWood“, die der Fernsehindustrie zeigen sollte, was mit der neuen Technologie möglich ist. Es war interaktiv, denn die Benutzer konnten im System Informationen lesen und schreiben. Unglücklicherweise waren die Firmen daran
15 Vgl. Byous, J., Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, 12.09.2007.
16 Vgl. Byous, J., Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, 12.09.2007.
10
nicht interessiert, da sie befürchteten die Kontrolle zu verlieren. Die Demo war ihrer Zeit voraus, so dass das Team weiter nach einem Zielmarkt suchen musste. 17
Nachdem “FirstPerson“ realisiert hatte, keinen Fuß in der Fernsehindustrie fassen zu können, diskutierten sie über die Zukunft des Projekts. Sie stellten fest, dass das neu aufkommende Internet exakt denselben Typ der Netzwerkkonfiguration nutzte, wie sie es mit “MovieWood“ umgesetzt hatten. Damit wies “Oak“ alle Eigenschaften auf, die für den Einsatz im Internet benötigt wurden. Die Sprache erhielt den Namen “Java“, da der Name “Oak“ bereits für eine andere Programmiersprache genutzt wurde. 18
Das Team machte sich wieder an die Arbeit und entwickelte 1994 einen Java basierten Klon des Ur-Browsers “Mosaic“ namens “WebRunner“ (später bekannt unter dem Namen “HotJava“ Browser). “WebRunner“ war zwar nur eine Demo, aber es zeigte zum ersten Mal animierte, bewegte Objekte und dynamisch ausführbaren Inhalt innerhalb eines Webbrowsers. 19
Im Mai 1995 wurde der Java Source Code erstmals im Internet in der Alpha Version 1.0a2 zum Download angeboten. Wenige Monate darauf, stieg die tägliche Downloadanzahl in die Tausende. 20
Den letztendlichen Durchbruch hatte Java mit der Koorperation von Netscape mit Sun. Netscape entschied sich in der Version 2.0 ihres Browsers “Netscape Naviga-tor“ die Java-Technologie zu implementieren. Im Dezember 1995 wurde der Navigator und im Januar 1996 das JDK 1.0 (Java Development Kit) veröffentlicht. Mit dem JDK war es Entwicklern erstmals möglich, Java-Applikationen und Web-Applets zu programmieren. 21
3.2.2 Servlets
Servlets sind Javas Antwort auf bestehende Konzepte der dynamischen Webentwicklung mit PHP, Perl oder Ruby on Rails. Der Name ist eine Kreation aus den Wörtern “Server“ und “Applet“. Ein Applet ist ein Programm, welches in einer Umgebung eines anderen Programmes (hier: Browser) ausgeführt wird. Servlets
17 Vgl. Byous, J., Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, 12.09.2007.
18 Vgl. Byous, J., Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, 12.09.2007.
19 Vgl. Byous, J., Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, 12.09.2007.
20 Vgl. Byous, J., Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, 12.09.2007.
21 Vgl. Byous, J., Java Technology: The Early Years, http://java.sun.com/features/1998/05/birthday.html, 12.09.2007.
11
sind dagegen Applets, die in der JVM (Java Virtual Machine) des Webservers laufen und zwischen HTTP Anfragen eines Browsers und Anwendungen/Datenbanken vermitteln. Dabei übernehmen sie folgende Aufgaben: 22
Benutzergenerierter Inhalt: Eingegebene Daten aus einem Formular einer Website lesen.
Analyse der HTTP Anfrage: Z.B. Details über Browser-Fähigkeiten oder Hostname des Clients.
Generierung von Ergebnissen: Informationen aus Datenbank lesen oder direkte Berechnung der Antwort.
Formatierung des Ergebnisses: Einbettung des Resultats in eine HTML Seite.
Setzen der HTTP Antwortparameter: Unter anderem Definition des MIME-Type (z.B. text/html) sowie Cookie und Caching Parameter.
Rücksendung an den Client: Das Dokument kann als Textformat, Bildformat oder auch in einem komprimierten Format an den Client übermittelt werden.
Ein Servlet kann demnach dynamische HTML Seiten generieren und auf Benutzereingaben in einer beliebigen Weise reagieren, wie auch die CGI Konkurrenz. Der große Vorteil von Servlets ist deren Effizienz. Während bei CGI Skripten für jeden Aufruf ein neuer Betriebssystemprozess gestartet werden muss, läuft bei Servlets die JVM ständig auf dem Server. Bei einem Aufruf wird hier nur ein effizienter Java-Thread gestartet. 23 Ein weiterer Vorteil ergibt sich aus dem „Write Once, Run Anywhere“ Versprechen der Java Sprache: Ein Servlet kann ohne Modifikation auf jeder Plattform ausgeführt werden. 24
Ein Servlet wird durch eine Benutzerinteraktion (z.B. Klick auf einen Formularbutton) oder auch durch ein anderes Servlet aufgerufen. Der Webserver lokalisiert daraufhin das angeforderte Servlet und sammelt alle eventuell benötigten Informationen um eine Antwort (meist eine HTML Seite) zu generieren. Schließlich bekommt der Benutzer die Antwort im Browser angezeigt. 25
Um Servlets ausführen zu können, wird ein geeignete Webserversoftware benötigt. Von der Apache Software Foundation gibt es neben dem HTTP Server noch eine spezielle Java Version: Apache Tomcat. Dabei handelt es sich um einen HTTP Server mit einem Servlet Container.
22 Vgl. Hall, M., Servlets und JavaServer Pages, 2001, S. 28.
23 Vgl. Hall, M., Servlets und JavaServer Pages, 2001, S. 29.
24 Vgl. Hall, M., Servlets und JavaServer Pages, 2001, S. 30.
25 Vgl. Moczar, L., Tomcat 5, 2005, S. 240f.
12
Arbeit zitieren:
B.Sc. Thomas Pienkus, 2007, Neuartige Methoden der Webentwicklung mit Java und Objektdatenbanken, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Implementierung einer Referenzanwendung für den JBoss Application Serv...
Informatik - Angewandte Informatik
Diplomarbeit, 166 Seiten
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Thomas Pienkus's Text Neuartige Methoden der Webentwicklung mit Java und Objektdatenbanken ist nun auf dem Buchmarkt erhältlich
Thomas Pienkus hat den Text Neuartige Methoden der Webentwicklung mit Java und Objektdatenbanken veröffentlicht
Thomas Pienkus hat einen neuen Text hochgeladen
Webentwicklung in ABAP mit dem SAP Web Application Server
Einführung in die Architektur ...
Frederic Heinemann, Christian Rau
Mémoire de fin d'études - Application Flex - Java/J2EE
Nouvelles Technologies de l'In...
Cheikh Amala THIAM
The Java(tm) Class Libraries, Volume 2: Java.Applet, Java.AWT, Java.Be...
Patrick Chan, Rosanna Lee
Guide to the Unified Process featuring UML, Java and Design Patterns
Featuring UML, Java and Design...
John Hunt
0 Kommentare