Titel Zeile 1 Zeile 2 Zeile 3

Werbung
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
Herunterladen