27.05.04remo bergmann1 frameworks allgemeines zu frameworks mvc-pattern einordnung der...

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

Post on 05-Apr-2015

104 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • Folie 1
  • 27.05.04Remo Bergmann1 Frameworks Allgemeines zu Frameworks MVC-Pattern Einordnung der MVC-Frameworks Andere Frameworks Diskussion
  • Folie 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 fr einen bestimmten Anwendungsbereich implementieren. (Balzert)
  • Folie 3
  • 27.05.04Remo Bergmann3 Frameworks Definition Vergleich: Autos haben oft gleiches Fahrwerk, Motor, Getriebe Dennoch: eigenstndiges Design, Marketing,...
  • Folie 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
  • Folie 5
  • 27.05.04Remo Bergmann5 Frameworks White-Box Hot Spots - Vorgesehene Eingriffspunkte Aufwendige Wartung - Abhngigkeiten von Subklassen - Aufwrtskompatibilitt sichern
  • Folie 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 Abhngigkeiten Komplexes Design - Konfiguration wenig flexibel - Gutes abschtzen der nderbarkeiten notwendig
  • Folie 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
  • Folie 8
  • 27.05.04Remo Bergmann8 Frameworks Vorteile Hchsten Grad von Wiederverwendung Kodifiziertes Wissen erfahrender Entwickler Bessere Aufteilungen der Aufgaben im Team Verbesserte Wartung Hhere Produktivitt Kleinere Applikationen Fr viele Probleme schon Lsungen
  • Folie 9
  • 27.05.04Remo Bergmann9 Frameworks Nachteile Unberschaubar viele Frameworks Erfordern meist lange Einarbeitungszeit Geringere Freiheiten Frameworks spter nicht oder schwer austauschbar und oft nicht ineinander integrierbar Einsatz von Externen schlecht mglich Fazit: -> Diskussion
  • Folie 10
  • 27.05.04Remo Bergmann10 Frameworks MVC-Pattern MVC : Model-View-Controller Verbindung zwischen Anwendung und graphischer Oberflche in Smalltalk80 Trennung Prsentation/Programmierlogik
  • Folie 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 mglich Model: JavaBeans, EJBs (empfohlen) aber auch normale Java Klassen mglich
  • Folie 12
  • 27.05.04Remo Bergmann12 Frameworks MVC im Internet Controller: als Servlet organisiert, Controller kann hier allerdings nicht den View ber nderungen informieren Einzige Mglichkeit fr Benutzer: Refreshbutton des Browsers Fazit: Es geht Funktionalitt des klassischen MVCs durch die Gegebenheiten des HTTP verloren!
  • Folie 13
  • 27.05.04Remo Bergmann13 Frameworks(MVC) Einordnung Eigenschaften: Anwendungssteuerung (aktions- und ereignisgesteuert) View-Technologie Komponenten Behandlung des serverseitigen Zustand
  • Folie 14
  • 27.05.04Remo Bergmann14 Frameworks(MVC) Aktionsgesteuert Strkere 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
  • Folie 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; }... }
  • Folie 16
  • 27.05.04Remo Bergmann16 Frameworks(MVC) Aktionsgesteuert Beispiel (View): Vorname: Nachname:
  • Folie 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"); }
  • Folie 18
  • 27.05.04Remo Bergmann18 Frameworks(MVC) Aktionsgesteuert Aktionsgesteuerte Frameworks: Struts fast schon Standard-Framework, Vortrag anschlieend an diesen Turbine Votrag nchste Woche WebWork hnlich zu Struts, dennoch distanziert in einigen Punkten, leider nicht so intensiv weiterenwickelt Maverick angeblich soll es die Besten Fhigkeiten von Struts, Webwork, Cocoon2 verbinden
  • Folie 19
  • 27.05.04Remo Bergmann19 Frameworks(MVC) Ereignisgesteuert Bestes Beispiel fr Ereignissteuerung: Swing Benutzeraktionen erzeugen Ereignisse (Mausclicks, Tastaturanschlge,...) Ereignisse lsen Methodenaufrufe aus Webseite wird aus einzelnen Komponenten zusammengesetzt Webseiten als Java-Klassen
  • Folie 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!
  • Folie 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
  • Folie 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
  • Folie 23
  • 27.05.04Remo Bergmann23 Frameworks(MVC) Ereignisgesteuert Andere ereignisgesteuerte Frameworks: WebObjects Mitte 90ziger Jahre von Apple verffentlicht Echo keine Kenntnisse von JavaScript und HTML ntig Tapestry => Vortrag nchste Woche
  • Folie 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 lsst sich Templateframework verwenden (Struts, Turbine...) Generierung von HTML durch Transformation Framework generiert XML untersttzt z.B. durch Struts, Millstone... JSP (aktionsgesteuerte Frameworks)
  • Folie 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, Untersttzung von Web- Technologien schlecht
  • Folie 26
  • 27.05.04Remo Bergmann26 Frameworks(MVC) Serverseitiger Zustand Optimal: Zustand nicht halten bevor User sich einloggt und dann mglichst gering! Frage an alle: Warum nicht vorher? Ereignisgesteuerte Frameworks haben hier groe Probleme, da sie meist ein Management erzwingen Aktionsgesteuerte Frameworks berlassen alles weitgehend Programmierer
  • Folie 27
  • 27.05.04Remo Bergmann27 Frameworks Einordnung: Features www.waferproject.org
  • Folie 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)...
  • Folie 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
  • Folie 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
  • Folie 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
  • Folie 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 fr Webanwendungen Howard M.

Recommended

View more >