20.1.2010 Vortrag zur Seminararbeit Die Webtechnologien PHP und im Vergleich Autor: Janina Jansen 1. Betreuer: Prof. Dr. Ing. Andreas Terstegge 2. Betreuer: Marion Brandt-Röhrig, M.A.
Inhalt: Motivation Einführung in PHP und Entstehung und Weiterentwicklung Funktionsweise Vergleich der Webtechnologien Fazit und Ausblick 2
Inhalt: Motivation Einführung in PHP und Entstehung und Weiterentwicklung Funktionsweise Vergleich der Webtechnologien Fazit und Ausblick 3
Motivation: Popularität von Webanwendungen steigt! Benutzer benötigt nur einen Webbrowser. Anwendungen werden mobiler und flexibler. Gleichzeitig wachsende Nachfrage nach einfachen und flexiblen Werkzeugen zum Erstellen von Webanwendungen Aber welche Webtechnologie sollte man verwenden? Welche bietet mehr Funktionen? Welche ist intuitiver oder kostengünstiger? 4
Vergleich zwischen. PHP PHP Hypertext Preprocessor Skriptsprache Active Server Pages.NET Webtechnologie aufbauend auf.net-framework 5
Inhalt: Motivation Einführung in PHP und Entstehung und Weiterentwicklung Funktionsweise Vergleich der Webtechnologien Fazit und Ausblick 6
Entstehung und Weiterentwicklung: 1995: Rasmus Leerdorf entwickelt PHP/FI 1998: PHP 3 mit neuer Engine 2000: PHP 4 mit Zend Engine 1 1997: Suraski und Gutmans entwickeln neue Engine 1999: Gründung Zend Technologies 2005: PHP 5 mit Zend Engine 2 7
Entstehung und Weiterentwicklung: 1996: ASP 2003: 1.1 2006: 3.0 2002: 1.0 2005: 2.0 2007: 3.5 8
Funktionsweise: 9
Funktionsweise: Webclient (Browser) Adresse http://server/seite.aspx HTTP- Anfrage fähiger Webserver -Webseite (.aspx) Webseite HTML+CSS +JavaScript +Zustandsdaten HTTP- Antwort Generierung Adaptive Rendering HTML + XML +.NET-Programmcode Page Framework Quelle: [1, p.51] 10
Inhalt: Motivation Einführung in PHP und Entstehung und Weiterentwicklung Funktionsweise Vergleich der Webtechnologien Fazit und Ausblick 11
Anforderungen an die Webtechnologien Funktionale Anforderungen Datenbankunterstützung Webserverunterstützung Nicht-funktionale Anforderungen Benutzbarkeit Entwicklungsumgebung Portabilität Sicherheit Kosten 12
Datenbankunterstützung: Unterstützung für verschiedene Datenbanksysteme MySQL msql PostgreSQL etc. Einfache Anbindung und Benutzung Einfache Benutzerschnittstellen wie z.b. phpmyadmin 13
Datenbankunterstützung: ADO.NET ( ActiveX Data Objects.NET ) Teil der Klasse System.Data Nachfolger von ADO Unterstützung für alle gängigen Datenbanksysteme (z.b. MySQL, Oracle) durch unterschiedliche Dataprovider Umfangreicher, intuitiver Funktionsumfang 14
ADO.NET: Quelle: vgl. [2] 15
Webserverunterstützung: Unterstützung für verschiedene Webserver Apache IIS Personal Web Server Netscape etc. Einfache Verwendung Komplettpakete: XAMPP 16
Webserverunterstützung: Optimale Unterstützung für IIS ( Internet Information Service ) Bereits in Visual Studio enthalten Alternative: Cassini, der vollständig in.net-code geschrieben wurde Teilweise Unterstützung für Apache 17
Benutzbarkeit: Einfache und schnelle Einarbeitung Optimal geeignet für Einsteiger in die Webprogrammierung Erweiterbarkeit und Wartbarkeit Objektorientierung ab Version 5 Umfangreiche Befehlsreferenz im Web 18
Entwicklungsumgebungen: PHPEclipse: kostenloses Plug-In für Eclipse Anbindung an SVN ( Subversion ) durch Plug-In Lange Ladezeit Zend Studio: entwickelt von Zend Technologies kostenpflichtig immer auf die aktuelle Version von PHP zugeschnitten Feature zur automatischen Generierung von Dokumentationen Anbindung an SVN 19
Benutzbarkeit: - Längere Einarbeitung nötig + Erweiterbarkeit Objektorientierung + Wartbarkeit Code-Behind-Technik trennt Präsentations- und Programmlogik + Sprachenunabhängig + Befehlsreferenz MSDN Steuerelemente 20
Entwicklungsumgebung: Visual Web Developer: In Visual Studio enthalten und als kostenlose, reduzierte Express Edition erhältlich Funktionen zur Webprogrammierung: Grafischer Designer und Programmcodeeditor Debugger Veröffentlichen von Anwendungen Editor für CSS- und XML-Dateien Automatisches Erstellen und Aktualisieren von Klassendiagrammen (Round Trip Engineering) 21
Portabilität: Auf allen Systemen lauffähig. In den meisten Linux-Distributionen enthalten Installationspakete für Windows oder Mac OS auf PHP-Webseite erhältlich 22
Portabilität: Theoretisch auf allen Systemen lauffähig. Compiler erzeugt plattformunabhängigen Zwischencode ( Common Intermediate Language, CIL). CIL wird erst zur Laufzeit durch JIT-Compiler ( Just-In- Time-Compiler ) in einen prozessorabhängigen Maschinencode gewandelt. Auf Server muss lediglich.net-framework installiert sein. Praktisch ist dies nur begrenzt umgesetzt. Microsoft bietet keine Installation des.net- Frameworks für andere Betriebssysteme. Mono-Projekt:.NET-ähnliches Framework auf Open-Source Basis. 23
Sicherheit: Entwickler muss alle Sicherheitsmaßnahmen selbst vornehmen. Erfordert genauere Kenntnis von Sicherheitslücken und möglichkeiten. einfache Einarbeitung Hohes Risiko durch SQL Injection Sicherheitslücke bei der Verwendung von globalen Variablen wie z.b. $_GET und $_POST PHP Security Consortium (PHPSC) 24
Sicherheit: Hohe Sicherheit durch IIS und.net-framework Sicherheit durch mehrere Steuerelemente z.b. zur Seitenvalidierung Wenig Einarbeitung des Entwicklers nötig Code Access Security (CAS) der Common Language Runtime 25
Kosten: Keine Kosten für Interpreter und Entwicklungsumgebung PHPEclipse Open-Source Produkte Zend Studio ist kostenpflichtig. Nutzung von PHP kann vollkommen kostenlos sein! 26
Kosten: Hohe Kosten für Betriebssystem.NET momentan an Windows gebunden Hohe Kosten für Visual Studio Visual Web Developer Express Edition lizenzfrei.net-framework und somit Laufzeitumgebung CLR sind in Windows (ab Vista) und Visual Studio enthalten Nicht ohne Kosten realisierbar! 27
Übersicht: PHP + Webserver + Einarbeitung + Kosten - Sicherheit + ADO.NET + Benutzbarkeit + Sicherheit - Einarbeitung - Portabilität - Kosten 28
Inhalt: Motivation Einführung in PHP und Entstehung und Weiterentwicklung Funktionsweise Vergleich der Webtechnologien Fazit und Ausblick 29
Fazit: Welche Technologie hat nun überzeugt? Diese Frage kann nicht eindeutig beantwortet werden! Äußere Faktoren beeinflussen immer die Entscheidung. Bestehende Softwareumgebung Zur Verfügung stehende Hardware Kosten- und Zeitbudget Erfahrungen und Kenntnisse des Entwicklers Abhängig davon haben PHP und Stärken und Schwächen. 30
Ausblick: Thema der Bachelorarbeit: Entwicklung einer Metasprache zur Erstellung von komplexen SQL-Anfragen an eine Datenbank. Zu der Metasprache: Erstellung einer Webanwendung, mit der die Mitarbeiter der Informatikbibliothek die entwickelte Metasprache nutzen können. Die Wahl ist auf gefallen, wegen des großen Funktionsumfangs, der hohen Sicherheit, ADO.NET, der umfangreichen Entwicklungsumgebung und der bestehenden Microsoft-Umgebung. 31
Vielen Dank für Ihre Aufmerksamkeit! Haben Sie Fragen? 32
Literaturangaben: [1] Holger Schwichtenberg. Microsoft 3.5 mit Visual C# 2008 Das Entwicklerhandbuch: Grundlagen, Techniken, Profi-Know-how. Microsoft Press, januar edition, Dezember 2008. [2] Detlev Wanzke and Lothar Wanzke. ADO.NET 2.0 Grundlagen und Profiwissen. Programmierung von Datenbankanwendungen mit C#. Hanser Fachbuchverlag, 2. a. edition, Juni 2006. [3] Heide Balzert. Basiswissen Web-Programmierung. XHTML, CSS, JavaSkript, XML, PHP, JSP,, Ajax. W3l, 1. edition, April 2007. [4] Richard Samar und Christian Stocker. PHP de Luxe fortgeschrittene PHP-Programmierung. Mitp, 1. aufl. edition, Mai 2002. 33