Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15.02.2012 Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware Kurz zu mir Jana Bittner Auszubildende Zur Mathematisch Technischen Softwareentwicklerin Studentin des Studiengangs Scientic Programming Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 2 Übersicht Motivation Vorgehen bei der Implementierung Vergleich der Implementierungen Ergebnis Fazit Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 3 Motivation Warum eine Zeiterfassungssoftware Welche Anforderungen an die neue Zeiterfassungssoftware gestellt werden Warum sie in zwei Sprachen implementiert wurde Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 4 Motivation Warum eine Zeiterfassungssoftware - Praktikumsbetreuung - Übersicht über erbrachte Arbeitszeit behalten - im Moment Zeiterfassungsfunktion des PHProjekts Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 5 Motivation Warum eine Zeiterfassungssoftware Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 6 Motivation Welche Anforderungen gestellt werden - Anzeige, bis zu welcher Uhrzeit man am heutigen Tag noch arbeiten müsste Eintrag mit einem Betreff versehen Blockeinträge im Vorfeld vornehmen können Anzeige der Überstunden Übersicht über die Anzahl der noch zur Verfügung stehenden Urlaubstage Kontrollen, die für eine möglichst vollständige Zeitkarte sorgen Eine Exportfunktion, um das Schreiben der Ausbildungsnachweise zu beschleunigen Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 7 Motivation Warum sie in zwei Sprachen implementiert wurde - Ursprünglicher Plan: Umstellung unserer Organisationssoftware - Realität: webbasierte Software bleibt bestehen Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 8 Vorgehen bei der Implementierung Erstimplementierung in Java Zweitimplementierung in PHP Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 9 Vorgehen bei der Implementierung Erstimplementierung in Java Konzept der Objektorientierung Java Swing Anbindung an eine Datenbank Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 10 Erstimplementierung in Java Konzept der Objektorientierung „Dabei gilt es als Erstes festzuhalten, dass nicht die Eigenschaften einer Programmiersprache in der Regel Objektorientierung ausmachen, sondern der Denkansatz für die Lösung einer zu programmierenden Aufgabe.“ (Ralph Steyer, Java2: Professionelle Programmierung mit J2SE Version 1.3) Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 11 Erstimplementierung in Java Konzept der Objektorientierung Definition der ISO/IEC 2382-15 (1998): „objektorientiert: Eine Technik oder Programmiersprache betreffend, die Objekte, Klassen und Vererbung unterstützt.“ Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 12 Erstimplementierung in Java Java Swing Swing ist eine Java-Bibliothek, die Komponenten zur Gestaltung von grafischen Oberflächen enthält. Sie setzt sich zusammen aus: - Containern – Top Level Container (JApplet) - – Intermediate Swing Container (JPanel) Komponenten Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 13 Erstimplementierung in Java Java Swing Weitere wichtige Elemente dieser Bibliothek sind: - die Layout-Manager (GridBagLayout) - die Listener Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 14 Erstimplementierung in Java Anbindung an eine Datenbank Vorbereitungen: - Hinzufügen der Java-Bibliothek „mysqlconnector-java-5.0.8-bin.jar“ zum Projekt - Deklarieren und Initialisieren von jeweils einer Variablen des Typs Connection, Statement und ResultSet Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 15 Erstimplementierung in Java Anbindung an eine Datenbank Überlegungen: - Was für einen SQL-Befehl möchte ich absetzen? (Abfrage, Aktualisieren, Löschen oder Eintragen) - Welche Form wird die Antwort der Datenbank haben? (Anzahl Rückgabewerte, Variablentypen, etc.) - Wie soll mit einer möglichen Exception umgegangen werden? Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 16 Vorgehen bei der Implementierung Zweitimplementierung in PHP HTML CSS PHP Smarty Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 17 Zweitimplementierung in PHP HTML - Hypertext Markup Language dient der Strukturierung Grundgerüst: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Insert title here</title> </head> <body> </body> </html> Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 18 Zweitimplementierung in PHP CSS - Cascading Style Sheets Hilft bei Trennung zwischen Inhalt und Aussehen jede Regel besteht aus: Selector, Property und Wert drei Möglichkeiten des Einbindens: direkt innerhalb des Tags, im <head> des HTMLDokuments oder in einer eigenen Datei Einige Properties müssen nur einmal gesetzt werden um im ganzen Dokument gültig zu sein Es können Klassen definiert werden. Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 19 Zweitimplementierung in PHP PHP „PHP ermöglicht Entwicklern die Erzeugung dynamischer Internetseiten. Im Unterschied zu statischen Internetseiten kann sich der Inhalt als Folge von Aktionen des Benutzers oder aufgrund neuer Basisinformationen, die beispielsweise aus Datenbanken stammen, jederzeit ändern.“ (Thomas Theis, Einstieg in PHP 5.3 und MySQL 5.4) Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 20 Zweitimplementierung in PHP PHP - rekursives Akronym für „PHP: Hypertext Preprocessor“ enthält die Intelligenz des Programms sollte nicht mit HTML-Code vermischt werden Session besondere Variable: Session-Variable zwei Feldtypen: assoziativ und numerisch Variablen sind typenuntreu Datenbankanbindung sehr einfach Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 21 Zweitimplementierung in PHP Smarty - die Smarty Klasse ist eine Bibliothek zur flexiblen Gestaltung von PHP erleichtert die Trennung von PHP und HTML der HTML-Code inklusive „Platzhalter“ wird in einer Templatedatei abgespeichert in einer PHP-Datei wir zuerst ein Objekt von Smarty erzeugt mit dessen Hilfe der „Platzhalter“ manipuliert werden kann es empfiehlt sich eine eigene Smarty-Klasse zu schreiben, in welcher die anzugebenden Pfade gesetzt sind Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 22 Vergleich der Implementierungen Gemeinsamkeiten Unterschiede Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 23 Vergleich der Implementierungen Gemeinsamkeiten - Möglichkeit der Vererbung - Planung der Klassenstruktur Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 24 Vergleich der Implementierungen Unterschiede - Umsetzung der Klassenstruktur Oberflächengestaltung Programmablauf Variablen Anbindung und der Umgang mit einer MySQLDatenbank Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 25 Ergebnis Die Java-Version Die PHP-Version Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 26 Ergebnis Die Java-Version Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 27 Ergebnis Die PHP-Version Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 28 Fazit Mein Fazit lautet, dass ich derartige Projekte in Zukunft in PHP realisieren werde. Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 29 Fragen Noch Fragen? Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 30 Danke Vielen Dank für Ihre Aufmerksamkeit Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware 15. Februar 2012 | 31