Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Clothilda Druschel Geändert vor über 10 Jahren
1
27.05.04Remo Bergmann1 Frameworks Allgemeines zu Frameworks MVC-Pattern Einordnung der MVC-Frameworks Andere Frameworks Diskussion
2
27.05.04Remo 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)
3
27.05.04Remo Bergmann3 Frameworks – Definition Vergleich: Autos haben oft gleiches Fahrwerk, Motor, Getriebe Dennoch: eigenständiges Design, Marketing,...
4
27.05.04Remo Bergmann4 Frameworks – White-Box Wiederverwendung durch Vererbung - Programmieren statt Konfigurieren Statisch - Konfiguration des Systems wird zur Übersetzungszeit bestimmt Einfaches Design - Vererbung sehr flexibel - Unvorhergesehenes
5
27.05.04Remo Bergmann5 Frameworks – White-Box Hot Spots - Vorgesehene Eingriffspunkte Aufwendige Wartung - Abhängigkeiten von Subklassen - Aufwärtskompatibilität sichern
6
27.05.04Remo 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
7
27.05.04Remo 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
8
27.05.04Remo 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
9
27.05.04Remo 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
10
27.05.04Remo Bergmann10 Frameworks – MVC-Pattern MVC : Model-View-Controller Verbindung zwischen Anwendung und graphischer Oberfläche in Smalltalk80 Trennung Präsentation/Programmierlogik
11
27.05.04Remo 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
12
27.05.04Remo 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!
13
27.05.04Remo Bergmann13 Frameworks(MVC) – Einordnung Eigenschaften: Anwendungssteuerung (aktions- und ereignisgesteuert) View-Technologie Komponenten Behandlung des serverseitigen Zustand
14
27.05.04Remo 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
15
27.05.04Remo 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; }... }
16
27.05.04Remo Bergmann16 Frameworks(MVC) – Aktionsgesteuert Beispiel (View): Vorname: Nachname:
17
27.05.04Remo 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"); }
18
27.05.04Remo 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
19
27.05.04Remo 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
20
27.05.04Remo 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!
21
27.05.04Remo 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
22
27.05.04Remo 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
23
27.05.04Remo 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
24
27.05.04Remo 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)
25
27.05.04Remo 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
26
27.05.04Remo 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
27
27.05.04Remo Bergmann27 Frameworks – Einordnung: Features www.waferproject.org
28
27.05.04Remo 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)...
29
27.05.04Remo 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
30
27.05.04Remo Bergmann30 Frameworks – andere: Cocoon Publishing Framework, wandelt je nach anfragenden Client ein XML-Formular ins entsprechende Format Vortrag in 2 Wochen
31
27.05.04Remo 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
32
27.05.04Remo Bergmann32 Frameworks – Literaturhinweise http://www.oio.de http://www.waferproject.org http://www.dynabean.de 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
33
27.05.04Remo Bergmann33 Frameworks – Diskussion Wann ist der Einsatz von Frameworks sinnvoll? Ereignis- oder aktionsorientierte MVC- Frameworks? Pros? Contras?
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.