Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "27.05.04Remo Bergmann1 Frameworks Allgemeines zu Frameworks MVC-Pattern Einordnung der MVC-Frameworks Andere Frameworks Diskussion."—  Präsentation transkript:

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?


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

Ähnliche Präsentationen


Google-Anzeigen