27.05.04Remo Bergmann1 Frameworks Allgemeines zu Frameworks MVC-Pattern Einordnung der MVC-Frameworks Andere Frameworks Diskussion.

Slides:



Advertisements
Ähnliche Präsentationen
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Advertisements

Martin Köllner XMLCompany XML-Datenbanken Xindice als Datenquelle einer Website im Zusammenspiel mit Cocoon und authentic TM.
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Ein Beispiel in Java.
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Java 2 Enterprise Edition (J2EE)
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Programmierung grafischer Oberflächen
Java: Objektorientierte Programmierung
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
MVC.
Ein Beispiel in Java.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
Edgar - Ein Texteditor Ein Vortrag von Carsten Severin.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
MVC – ein Architekturmuster
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
XDoclet ETIS SS05.
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Software Design Patterns Extreme Programming (XP).
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Coccon das Web-XML-Publishing System Thomas Haller.
Einführung Servlets/JSPs
AWT und JFC Abstract Windowing Toolkit
Applets Java für’s Web.
Seminar Internet - Technologie
Seminar Web-Anwendungen mit JSP u. ASP.NET entwickeln JavaServer Faces Vortragender: Thomas Dermin Custom-Components.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
HTML-Editoren Eine Präsentation von Erik Kulisch.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Marktübersicht für Content Management Systeme
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Frameworks zur Implementierung von Hypertext Anwendungen
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Frameworks
/14Mohamed Sabbar, Medieninformatik - Fachseminar 14/12/09 Java Server Faces (JSF) „JSF“ ist mehr als nur eine Insel Fachseminar WS 09/10 Mohamed Sabbar.
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Grafische Benutzeroberflächen mit Swing (2) Christoph Broschinski, Alexander Sczyrba Jan Krüger
Das Entwurfsmuster Model-View-Controller
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
Wesentliche Bestandteile:
 Präsentation transkript:

Remo Bergmann1 Frameworks Allgemeines zu Frameworks MVC-Pattern Einordnung der MVC-Frameworks Andere Frameworks Diskussion

Remo Bergmann2 Frameworks – Definition Ein Framework (Rahmenwerk) ist ein durch einen Software-Entwickler anpassbares oder erweiterbares System kooperierender Klassen, die einen wiederverwendbaren Entwurf für einen bestimmten Anwendungsbereich implementieren. (Balzert)

Remo Bergmann3 Frameworks – Definition Vergleich: Autos haben oft gleiches Fahrwerk, Motor, Getriebe Dennoch: eigenständiges Design, Marketing,...

Remo Bergmann4 Frameworks – White-Box Wiederverwendung durch Vererbung - Programmieren statt Konfigurieren Statisch - Konfiguration des Systems wird zur Übersetzungszeit bestimmt Einfaches Design - Vererbung sehr flexibel - Unvorhergesehenes

Remo Bergmann5 Frameworks – White-Box Hot Spots - Vorgesehene Eingriffspunkte Aufwendige Wartung - Abhängigkeiten von Subklassen - Aufwärtskompatibilität sichern

Remo Bergmann6 Frameworks – Black-Box Wiederverwendung durch Komposition - Konfigurieren statt Programmieren Dynamisch - Konfiguration des Systems wird zur Laufzeit bestimmt Einfache Wartung - weniger Abhängigkeiten Komplexes Design - Konfiguration wenig flexibel - Gutes abschätzen der Änderbarkeiten notwendig

Remo Bergmann7 Frameworks – White vs. Black White-Box und Black-Box kaum noch in Reinform heut, meist Mischform aus beiden (Grey-Box) White-Box Frameworks werden im Laufe der Zeit immer mehr zu Black-Box Frameworks -> je reifer ein Framework umso mehr Black-Box Komponenten sind enthalten

Remo Bergmann8 Frameworks – Vorteile Höchsten Grad von Wiederverwendung Kodifiziertes Wissen erfahrender Entwickler Bessere Aufteilungen der Aufgaben im Team Verbesserte Wartung Höhere Produktivität Kleinere Applikationen Für viele Probleme schon Lösungen

Remo Bergmann9 Frameworks – Nachteile Unüberschaubar viele Frameworks Erfordern meist lange Einarbeitungszeit Geringere Freiheiten Frameworks später nicht oder schwer austauschbar und oft nicht ineinander integrierbar Einsatz von Externen schlecht möglich Fazit: -> Diskussion

Remo Bergmann10 Frameworks – MVC-Pattern MVC : Model-View-Controller Verbindung zwischen Anwendung und graphischer Oberfläche in Smalltalk80 Trennung Präsentation/Programmierlogik

Remo Bergmann11 Frameworks – MVC im Internet Problem: HTTP View kann nicht nach Bedarf aktualisiert werden Client ist nicht wie gewohnt kontrollierbar View: HTML, JSP aber auch Scriptsprachen möglich Model: JavaBeans, EJBs (empfohlen) aber auch normale Java Klassen möglich

Remo Bergmann12 Frameworks – MVC im Internet Controller: als Servlet organisiert, Controller kann hier allerdings nicht den View über Änderungen informieren Einzige Möglichkeit für Benutzer: Refreshbutton des Browsers Fazit: Es geht Funktionalität des klassischen MVCs durch die Gegebenheiten des HTTP verloren!

Remo Bergmann13 Frameworks(MVC) – Einordnung Eigenschaften: Anwendungssteuerung (aktions- und ereignisgesteuert) View-Technologie Komponenten Behandlung des serverseitigen Zustand

Remo Bergmann14 Frameworks(MVC) – Aktionsgesteuert Stärkere Orientierung an Besonderheiten von HTTP Anwendungssteuerung durch Web-typisches Request/Response (Sun-Model 2) Keine Aufteilung in Widgets, Methoden global definiert, Ursprung des Request betrifft immer ganze Seite

Remo Bergmann15 Frameworks(MVC) – Aktionsgesteuert Beispiel (Model): public class UserDaten extends Bean { private String firstname = ""; public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; }... }

Remo Bergmann16 Frameworks(MVC) – Aktionsgesteuert Beispiel (View): Vorname: Nachname:

Remo Bergmann17 Frameworks(MVC) – Aktionsgesteuert Beispiel (Controller): final class ActionDoEditierenPassword implements ActionHandler{ public void handleAction(String action, StateBean s, HttpServletRequest request, HttpServletResponse response) { UserState state = (UserState) s; state.setNavigation("editPassword"); }

Remo Bergmann18 Frameworks(MVC) – Aktionsgesteuert Aktionsgesteuerte Frameworks: Struts – fast schon Standard-Framework, Vortrag anschließend an diesen Turbine – Votrag nächste Woche WebWork – ähnlich zu Struts, dennoch distanziert in einigen Punkten, leider nicht so intensiv weiterenwickelt Maverick – angeblich soll es die Besten Fähigkeiten von Struts, Webwork, Cocoon2 verbinden

Remo Bergmann19 Frameworks(MVC) – Ereignisgesteuert Bestes Beispiel für Ereignissteuerung: Swing Benutzeraktionen erzeugen Ereignisse (Mausclicks, Tastaturanschläge,...) Ereignisse lösen Methodenaufrufe aus Webseite wird aus einzelnen Komponenten zusammengesetzt Webseiten als Java-Klassen

Remo Bergmann20 Frameworks(MVC) – Ereignisgesteuert Beispiel: Millstone – Hello World public class HelloWorld extends org.millstone.base.Application { public void init() { Window main = new Window("Hello window"); setMainWindow(main); main.addComponent(new Label("Hello World!")); } JavaScript und HTML wird vom Framework erzeugt!

Remo Bergmann21 Exkurs: MVC in Swing Nutzt modifiziertes MVC View und Controller wurden zusammengefasst, da Kommunikation zwischen View- und Controller-teil einer Komponente oft zu komplex war Model-Delegate-Prinzip oder auch Model-View-Presenter Programmieren wird übersichtlicher

Remo Bergmann22 Frameworks(MVC) – Ereignisgesteuert class CalculatorPanel extends JPanel implements ActionListener{ public CalculatorPanel(){ super(new GridLayout()); f1=new JTextField(); f2=new JTextField(); f3=new JTextField(); f3.setEnabled(false); add(f1);add(f2);add(f3); JButton but=new JButton("Add!"); add(but); but.addActionListener(this); } class CalculatorPanel extends SPanel implements ActionListener{ public CalculatorPanel(){ super(new SGridLayout(4)); f1=new STextField(); f2=new STextField(); f3=new STextField(); f3.setEnabled(false); add(f1);add(f2);add(f3); SButton but=new SButton("Add!"); add(but); but.addActionListener(this); } Swing Variante WingS Variante

Remo Bergmann23 Frameworks(MVC) – Ereignisgesteuert Andere ereignisgesteuerte Frameworks: WebObjects Mitte 90ziger Jahre von Apple veröffentlicht Echo keine Kenntnisse von JavaScript und HTML nötig Tapestry => Vortrag nächste Woche

Remo Bergmann24 Frameworks(MVC) – View-Technologie Generierung von HTML aus dem Framework Echo, WingS, Millstone (ereignisgesteuerte) Templating-Technologie Tapestry, WebObjects... bei vielen lässt sich Templateframework verwenden (Struts, Turbine...) Generierung von HTML durch Transformation Framework generiert XML unterstützt z.B. durch Struts, Millstone... JSP (aktionsgesteuerte Frameworks)

Remo Bergmann25 Frameworks(MVC) – Komponenten Meist nur in ereignisgesteuerten Framework zu finden Struts Erweiterung Tiles erlaubt Zusammenstellung von Seiten aus View- Komponenten Grund: hohe Individualisierung von Webanwendungen, Unterstützung von Web- Technologien schlecht

Remo Bergmann26 Frameworks(MVC) – Serverseitiger Zustand Optimal: Zustand nicht halten bevor User sich einloggt und dann möglichst gering! Frage an alle: Warum nicht vorher? Ereignisgesteuerte Frameworks haben hier große Probleme, da sie meist ein Management erzwingen Aktionsgesteuerte Frameworks überlassen alles weitgehend Programmierer

Remo Bergmann27 Frameworks – Einordnung: Features

Remo Bergmann28 Frameworks – andere Frameworks Oftmals macht es Sinn mehrere Frameworks zu verwenden: z.B. Turbine mit Jetspeed Templating Frameworks (Velocity) XML Frameworks (Cocoon) Portalframeworks (Jetspeed)...

Remo Bergmann29 Frameworks – andere: Velocity Erzeugt Output: HTML, SQL, Postscript, Mails... Vereinfacht Entwicklung des Look and Feel der Anwendung Benutzt einfache Scriptsprache Als Komponente in MVC-Frameworks oder als Stand-alone-System

Remo Bergmann30 Frameworks – andere: Cocoon Publishing Framework, wandelt je nach anfragenden Client ein XML-Formular ins entsprechende Format Vortrag in 2 Wochen

Remo Bergmann31 Frameworks – andere: Jetspeed Portale ähneln sich sehr, aber: Erstellung von Portalen enorm aufwendig -> darauf setzt Jetspeed Im Idealfall Portale ohne eigentliche Programmierarbeit (Konfiguration von Inhalt) Portalseite setzt sich aus Portlets (kleine Webbausteine) zusammen

Remo Bergmann32 Frameworks – Literaturhinweise Software&Support Verlag: Portale und Webappl. mit Apache Frameworks Struts Java Framework für Webanwendungen Howard M. Lewis Ship: Tapestry in Action diverse wissenschaftliche Arbeiten

Remo Bergmann33 Frameworks – Diskussion Wann ist der Einsatz von Frameworks sinnvoll? Ereignis- oder aktionsorientierte MVC- Frameworks? Pros? Contras?