Web App-Entwicklung – der richtige Technologiemix macht’s

Slides:



Advertisements
Ähnliche Präsentationen
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Advertisements

Datenbankzugriff im WWW (Kommerzielle Systeme)
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
HTML - Eine erste Annäherung
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
© 2002 Prof. Dr. G. Hellberg 1 XML-Seminar XML-Technologie: XML in Theorie und Praxis Prof. Dr. G. Hellberg XML-Technologie: XML in Theorie und Praxis.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Programmieren mit JAVA
EXtensible Server Pages von Belrhiti El mostafa. Inhalt Was ist XSP ? Wichtige XSP Tags Erstellungsmöglichkeiten Die Basis der XSP.
XML – Grundlagen und Anwendungen Teil 6: Verarbeitung von XML-Dokumenten: XSLT Prof. Dr. Michael Löwe, FHDW Hannover.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Systementwicklungsprojekt:
YouTube5 .0 Projektpräsentation
Coccon das Web-XML-Publishing System Thomas Haller.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Die .NET Common Language Runtime
Die .NET Common Language Runtime
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
CGI (Common Gateway Interface)
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
Oliver Spritzendorfer Thomas Fekete
Objectives Verstehen was unterDelegate verstanden wird
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
se_11_interfaces.ppt1 Softwareengineering Interfaces Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
SharePoint 2013 Web Services
Goldpartner: Veranstalter: Der Werkzeugkasten für Entwickler Ein UI-Framework in AngularJS Timo Korinth.
Datenbanken im Web 1.
JQuery: New Wave Javascript Seite 1 jQuery: New Wave Javascript Jörn Zaefferer TIMETOACT Software & Consulting GmbHT: Im Mediapark 2F:
Einführung in die Programmierung mit Java
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
XSLT I Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Manfred Thaller Referentin: Elisabeth Chang.
1 Einleitung Auf dem Weg zum Web 2.0 (was immer das sein mag) ist jQuery klein und fix Hängt damit die "Großen" wie Prototype, Dojo oder Mochikit ab Kreuzt.
Generic Enabler Felix Holzäpfel-Stein, Aachen Generische Komponenten im Cloudkontext.
Vererbung. Klassen - Vererbung  Eine Klasse kann von einer Basisklasse abgeleitet werden  Die abgeleitete Klasse erbt die Eigenschaften und Methoden.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Mobil und vernetzt1 VERNETZUNG 4.0 Stefan R. Müller Suchmaschine Blinde Kuh Kinderseitenlandschaft – mobil und vernetzt – das zukunftsweisende Potential.
Infoteam GmbH Berlin DOAG Regionalgruppentreffen 1. September 2004 Andreas Leidner Lutz Döhler HTML DB zwei Anwendungsbeispiele.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Ein Toolkit zur Präsentation von hierarchischen Bibliotheksdaten Andres von Arx UB Basel, August 2006.
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der.
UNIVERSITY OF APPLIED SCIENCES Brückenkurs Programmieren Einführung in die IT für Social Media Systems.
Common Gateway Interface
Web-Programmierung HTML5-Apps für's Smartphone
Einige Ideen für Module
Google Maps API 3 Universität zu Köln Medien zwischen Technologie und Gesellschaft Prof. Dr. Manfred Thaller Referentin: Saeideh Safat Zadeh.
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
Business Process Excuction Lanaguage
Nksainf.ch/oinf.
Programmieren in C Module und Bibliotheken
Parametrisierte Prozeduren und Funktionen
Virtualisierung von Web-Applikationen mit Docker
Versuchsbeschreibung in
Kandinsky Music Painter II
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Methodische Grundlagen des Software-Engineering
Übersicht und Benutzung von Sphinx
Implementieren von Klassen
 Präsentation transkript:

Web App-Entwicklung – der richtige Technologiemix macht’s Tekom Frühjahrstagung 10.04.2014 Prof. Dr. Volkert Brosda Lic. Inform. José-Luis Muñoz

Inhalt Mobile Kfz Schadensdokumentation Web App Motivation Demo Web App Typische Architektur Web App Client – Problem der Wiederverwendung Der richtige Technologiemix Grundidee Code erzeugen mittels XML Templates (Callback-) Funktionen Anwendungsklassen XML zur Web App Client-Beschreibung nutzen Fazit

Mobile Kfz Schadensdokumentation

Motivation Schnelle Schadenserfassung Schnelle Schadensregulierung Hohe Kontrolle Hohe Aktualität Fassen Sie es als all diejenigen Aktivitäten auf, die den Wissenserwerb unterwegs von einem Mobilgerät aus ermöglichen

Web App

Typische Architektur Das macht der TR!

Problem Keine saubere Trennung, Keine Wiederver–wendung

Der richtige Technologiemix

Grundidee - Modularisierung Sammlung von Variablen und Unterprogrammen Module für den Gebrauch bereitstellen Unterprogramme aus bereitgestellten Modulen aufrufen Trennung von Interface und Implementierung

Grundidee - Ablauf

Grundidee - Komponenten Objekt basiert, Ereignis orientiert

Struktur X(HT)ML5- Template XML API/DOM, XML Werkzeuge, XML Sprachen <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ... <meta name="viewport" content="width=device-width, initial-scale=1"/> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.0/ jquery.mobile-1.4.0.min.css" /> <link rel="stylesheet" href=“myProject.css" /> <script src="http://code.jquery.com/jquery.min.js"></script> <script src="http://code.jquery.com/mobile/1.4.0/ jquery.mobile-1.4.0.min.js"></script> </head> <body> <div data-role="page" id="seite1"> <div role="main" class="ui-content"> <p>Page content goes here.</p> </div><!-- /content --> </div><!-- /page --> </body> </html> X(HT)ML5- Template XML API/DOM, XML Werkzeuge, XML Sprachen

Layout Sammlung von CSS Layoutklassen .myProject-rot {color:red;} ...

Ereignisbehandlung Anwendungsklassen Event Handler, andere Unter– programme

Code erzeugen mittels XML Templates function code_gen(response, status, xhr){ $(selektor).html(xhr.responseXML.documentElement); } JQuery, AJAX X(HT)ML5 Template template.xhtml selektor=“.content“;//global $.get("template.xhtml", code_gen);

(Callback-) Funktionen Link dynamisch per Funktion erzeugen function gen_link(name){ return '<a href="" data-role="link">'+name+'</a>'; } Funktionsaufruf, wiederverwendbare Funktion “gen_link“, “href“ wird nachgeliefert „Link-Ereignis“ anbinden $("#seite1 > div > p").html(gen_link("Seite 2")). find("a").attr("href","#seite2");

(Callback-) Funktionen Beispiel: Event Handler anbinden Callback, Übergabe eines Event Handler als anonyme Funktion $(document).on("pageshow", "#seite1", function(){ ... $(“h1“).addClass(“myProject-rot"); } ); So nicht wieder–verwend–bar!

(Callback-) Funktionen Benannter Event Handler Callback, Funktions-übergabe an „on“ – wiederverwend–bar, aber keine Parameter! function myProject_layout_assign1(){ ... $(“h1“).addClass(“myProject-rot"); } Ereignis zur Layoutanbindung auslösen $(document).on("pageshow", "#seite1", myProject_layout_assign1);

(Callback-) Funktionen Parameter über Funktionsschema nutzen f=function(param){$(param[0]).addClass(param[1]);} f([“h1“,“my...“]) liefert $(“h1“).addClass(“my..."); Parametrisierung über lokales Objekt “event“ „on“ hat den Parameter “event“ für Callback-Parametrisierung vorgesehen! function myProject_layout_assign1(event){ ... f(event.data.param); } $(document).on("pageshow", "#seite1", {param:[“h1“,“myProject-rot“]}, myProject_layout_assign1);

(Callback-) Funktionen Parameter global vorgegeben, höhere Wiederverwend–barkeit! Parameter bei bestehenden Funktonen ergänzen function code_gen(response, status, xhr){ $(selektor).html(xhr.responseXML.documentElement); } template.xhtml selektor=“.content“;//global $.get("template.xhtml", code_gen);

Anwendungsklassen “inst“/XML wird hier generisch genutzt! function Superklasse(xml){ this.klasse=“Superklasse"; this.inst=new DOMParser(). parseFromString(xml,"text/xml"); this.inst_=xml; this.methods=["get",...]; // Liste der Methodennamen } Superklasse.prototype={ get: function eineMethode0(){ return this.inst.getElementsByTagName(“name")[0].firstChild.data; ... },

Anwendungsklassen function Subklasse(xml){ this.klasse=“Subklasse"; this.inst=new DOMParser(). parseFromString(xml,"text/xml"); this.inst_=xml; this.methods=["get“,“neu“]; // Liste der Methodennamen } function erweitert(){...}; //Implementation von “neu“ Subklasse.prototype=Superklasse.prototype; Subklasse.prototype["neu"]=erweitert; o_sub=new Subklasse( "<artikel><name>Artikel1</name><preis>12</preis></artikel>"); o_sub[o_sub.methods[1]](); //anonymer Methodenaufruf

Anwendungsklassen Objekt lokal speichern o_sub.inst=o_sub.inst_; //XML-Instanz durch String ersetzen localStorage.objekt=JSON.stringify(o_sub); „stringify“ funktioniert nur mit „string“!

XML zur Web App Client- Beschreibung nutzen Layoutklassen dokumentieren Anwendungsklassen beschreiben Event Handler beschreiben Web App erstellen, um Web App Client zu generieren In XML wird eine Abstrakte Syntax für Web App Client definiert!

XML zur Web App Client- Beschreibung Beispiel: Event Handler zur Layoutanbindung Definition der Funktion layout_assign1 <?xml version="1.0" encoding="UTF-8"?> <web_app_client projekt=„myProject"> <layout_assign id="layout_assign1"> ... </layout_assign> <event_layout ref="layout_assign1"> <selektor>document</selektor> <events>pageshow</events> <event_data>{param:[“h1“,“myProject-rot“]}</event_data> <selektor_zur_anbindung>#seite1</selektor_zur_anbindung> </event_layout> ... </web_app_client> Aufruf der Funktion layout_assign1

XML zur Web App Client- Beschreibung Codegenerierung mit XSLT <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ... version="2.0"> <xsl:variable name="projekt" select="/web_app_client/@projekt"/> <xsl:template match="web_app_client"> ... <xsl:apply-templates select="event_layout“/> </xsl:template> ... <xsl:template match="event_layout"> <xsl:text>$(</xsl:text> ... </xsl:stylesheet> Konkrete Syntax z.B. für JQuery Version XXX $(document).on("pageshow", "#seite1", {param:[“h1“,“myProject-rot“]}, myProject_layout_assign1);

Fazit

Fazit Technische Redakteure können Web App Clients systematisch aus wiederverwendbaren Komponenten entwickeln.

Vielen Dank für Ihre Aufmerksamkeit Für Rückfragen: volkert.brosda@hs-hannover.de