Konzeption und Implementierung einer dateibasierten Lösung zum Offline-Zugriff auf eine Enterprise 2.0 Plattform

Größe: px
Ab Seite anzeigen:

Download "Konzeption und Implementierung einer dateibasierten Lösung zum Offline-Zugriff auf eine Enterprise 2.0 Plattform"

Transkript

1 Fakultät für Informatik Technische Universität München Konzeption und Implementierung einer dateibasierten Lösung zum Offline-Zugriff auf eine Enterprise 2.0 Plattform 8. August 2011 Bearbeiter: Kilian Wischer Betreuer: Dr. Thomas Büchner 1

2 1. Rückblick Kilian Wischer 2

3 Rückblick Ziel: Offline-Zugriff auf Tricia Technologie: Browser-Plugin HTML 5 Dateibasierte Lösung Grundidee: Synchronisationsprogramm 3 2 Internet 1 Lesen/ Verändern Synchronisation Ausspielen/ Einspielen lokaler Client Tricia lokale Festplatte SMB-Laufwerk Kilian Wischer 3

4 Anforderungen Lesezugriff: Inhalt der Wikiseiten Hybrid Table Dateianhänge Verfolgen von Referenzen Tags Kommentare Schreibzugriff: Notizen => HTML-Dateien Kilian Wischer 4

5 Agenda 1. Rückblick 2. Ordner/Datei-Struktur auf Samba-Laufwerk 3. Lokaler Lesezugriff 4. Lokaler Schreibzugriff 5. Synchronisation Kilian Wischer 5

6 2. Samba-Laufwerk Kilian Wischer 6

7 Plugin-Struktur core file jlan2 wiki hybridwiki offlinewiki Kilian Wischer 7

8 Ziel-Ordnerstruktur Kilian Wischer 8

9 Klassendiagramm Kilian Wischer 9 Path Directory Document * 1 parent child FacadePath Path FacadeDocument FacadeDirectory 1 1 Directory Document * 1 parent child * 1 parent child FacadePath Path VirtualDirectory FacadeDocument FacadeDirectory WikiInstance Directory OfflineDirectory MetaData Directory Virtual Document 1 1 Directory Document * 1 parent child * 1 parent child Sync Document Pages Directory OfflineAttach mentsdirectory Sync Directory MetaData Document

10 Zusammenspiel der Plugins Jlan2-Plugin File-Plugin «interface» DiskInterface startsearch(path : String) : SearchContext createfile() : NetworkFile getfileinformation() : FileInfo writefile() : int TriciaDiskDriverProxy startsearch(path : String) : SearchContext createfile() : NetworkFile getfileinformation() : FileInfo writefile() : int 1 SearchContext AssetSearchContext FacadePath getfacadepathbypath(path : String) : FacadePath getfilelength() : long getfullpath() : String getlastmodified() : long FacadeDirectory getchildren() : Iterator<FacadePath> FacadeDocument getreadonlyrandomaccessfile() : RandomAccessFile «abstract» VirtualDirectories Extension 1 TriciaDiskDriver OfflineWiki-Plugin startsearch(path : String) : SearchContext createfile() : NetworkFile getfileinformation() : FileInfo writefile() : int VirtualDirectory VirtualDocument OfflineWiki Plugin OfflineDirectory getchildren() : Iterator<FacadePath> WikiInstanceDirectory getchildren() : Iterator<FacadePath> Kilian Wischer 10

11 Sequenzdiagramm Alfresco Jlan Framework TriciaDiskDriverP roxy TriciaDiskDriver FacadePath VirtualDirectories Extension startsearch ("/Offline/home-wiki/*") startsearch ("/Offline/home-wiki/*") new AssetSearch Context getfacadepath bypath("/offline/home-wiki") getwikiinstance Directory("home-wiki") new WikiInstance Directory getchildren() Kilian Wischer 11

12 3. Lokaler Lesezugriff Kilian Wischer 12

13 Konzept Kilian Wischer 13

14 Template-System offlinewikipage.htm <html> <head> <title>tricia : $name.value()$</title> $cssreference$ </head> <body> <div id="pagecontent" class="tricia-page-content"> <h1>$name.value()$</h1> $content$ </div> </body> $javascript$ </html> Functions.java public static TemplateSubstitution offlinewikipage(final WikiPage wikipage, final FunctionParameters params) { return new TemplateSubstitution() public void putsubstitutions(template template) { template.put("content", new PrintSubstitution(Escaping.none) { public String print() { if(wikipage.content.get()!= null){ return repairlinks(wikipage.content.get()); else return ""; ); ; Kilian Wischer 14

15 Referenzierung Links auf: Wikiseiten Wikis Ordner Dateien Kilian Wischer 15

16 Referenzierung auf Wikiseite Online: /wikis/{wikiinstanzurlname/{wikipageurlname Offline:../../{wikiInstanzUrlName/pages/{wikiPageUrlName.html private static String repairlinks(string content){ List<TransientLink> links = RichStringProperty.getLinks(content); List<StringInsert> inserts = new ArrayList<StringInsert>(); for (TransientLink link : links) { String newlink = ""; String[] splittedlink = link.url.split("/"); if(splittedlink[1].equals("wikis")){ String wikiurlname = splittedlink[2]; newlink = "../../" + wikiurlname; if (splittedlink.length < 4) { //=> Link on wiki newlink = newlink + "/index.html"; else { // => Link on wikipage String wikipageurlname = splittedlink[3]; newlink = newlink + "/pages/" + wikipageurlname + ".html"; //... inserts.add(link.getinsert(newlink)); return StringInsert.insertAll(inserts, content); Kilian Wischer 16

17 Index-Datei Kilian Wischer 17

18 4. Lokaler Schreibzugriff Kilian Wischer 18

19 Konzept Kilian Wischer 19

20 Konzept Kilian Wischer 20

21 Realisierung Einblenden und Ausblenden von TinyMCE über jquery und CSS => offlinewiki.css, jquery und TinyMce in MetaData -Ordner Speichern über JavaScript (TiddlyWiki): Einlesen der kompletten HTML-Seite Einfügen des Textes aus TinyMCE Schreiben der kompletten HTML-Seite Kilian Wischer 21

22 Code function savenote(){ var input = tinymce.activeeditor.getcontent({ format: 'text' ); var newcontent = createnewhtmlcontent(input); var originalpath = document.location.tostring(); var localpath = getlocalpath(originalpath); savefile(localpath, newcontent); createchangesetfile(input); function createnewhtmlcontent(newcontent){ var originalpath = document.location.tostring(); var localpath = getlocalpath(originalpath); var oldhtmlfile = loadfile(localpath); var indexoflinenote = oldhtmlfile.indexof('<div id="offlinenote">'); var numberofcharacters = oldhtmlfile.indexof('<div id="endofofflinenote">') - oldhtmlfile.indexof('<div id="offlinenote">'); var oldofflinenote = oldhtmlfile.substr(indexoflinenote, numberofcharacters); var newofflinenote = '<div id="offlinenote"><hr id="hr">' + newcontent + '</div>'; var newhtmlfile = oldhtmlfile.replace(oldofflinenote, newofflinenote); return newhtmlfile; Kilian Wischer 22

23 5. Synchronisation Kilian Wischer 23

24 Two-Step-Synchronisation 2 1 lokale Festplatte SMB-Laufwerk Implementierung ist optimiert auf die Programme rsync und DirSync Pro Kilian Wischer 24

25 changeset.json function createchangesetfile(content){ var wikipageid = "$wikipageid$"; var changesetfile = loadfile(getchangesetfilepath()); var changesetstring = ""; var change = { "wikipageid": wikipageid, "content": content ; if (!changesetfile) { var newchangesetjsonarray = new Array(1); newchangesetjsonarray[0] = change; changesetstring = JSON.stringify(newChangesetJsonArray); else { var oldchangesetjsonarray = JSON.parse(changeSetFile); var oldjsonarraylength = jquery(oldchangesetjsonarray).length; var newchangesetjsonarray = new Array(oldJsonArrayLength + 1); for (var i = 0; i < oldjsonarraylength; i++) { newchangesetjsonarray[i] = oldchangesetjsonarray[i]; newchangesetjsonarray[oldjsonarraylength] = change; changesetstring = JSON.stringify(newChangesetJsonArray); savefile(getchangesetfilepath(), changesetstring); [! {"wikipageid":"19y6qlzrlibj9","content":"<p>termin: 15. Oktober 2011</p>", {"wikipageid":"133y2fn1mx2xs","content":"<p>die neue Offline-Funktionalität muss ich ausprobieren</p>", {"wikipageid":"19y6qlzrlibj9","content":"<p><b>termin:</b> 15. Oktober 2011 um 11 Uhr</p>"! ] Kilian Wischer 25

26 Vielen Dank für Ihre Aufmerksamkeit! Kilian Wischer 26

Konzeption und Implementierung einer dateibasierten Lösung zum Offline-Zugriff auf eine Enterprise 2.0 Plattform

Konzeption und Implementierung einer dateibasierten Lösung zum Offline-Zugriff auf eine Enterprise 2.0 Plattform FAKULTÄT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN Bachelorarbeit in Wirtschaftsinformatik Konzeption und Implementierung einer dateibasierten Lösung zum Offline-Zugriff auf eine Enterprise 2.0

Mehr

Domänenspezifische Sprachen

Domänenspezifische Sprachen Domänenspezifische Sprachen Agenda: 'Programmiersprachen' 'Domänenspezifische' 'Sprachen' 'Vorteile' 'Technische' 'Erwartungen', 'Xtext' 'Demo'; 'Programmiersprachen' https://tagul.com https://tagul.com

Mehr

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

16. Dezember 2004 Dr. M. Schneider, P. Ziewer Technische Universität München WS 2004/2005 Fakultät für Informatik Lösungsvorschläge zu Blatt 8 A. Berlea, M. Petter, 16. Dezember 2004 Dr. M. Schneider, P. Ziewer Übungen zu Einführung in die Informatik

Mehr

jquery Einstieg 2 CSS manipulieren; toggle, hide und show

jquery Einstieg 2 CSS manipulieren; toggle, hide und show jquery Einstieg 2 CSS manipulieren; toggle, hide und show Inhalt: 1. CSS-Eigenschaften manipulieren 2. Beispiel 2: Elemente ein- oder ausblenden - Animationen 3. Theorie - Methode.toggle() bzw. hide()

Mehr

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr

Mehr

Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2018/19 - Dr. Günter Kniesel. Übungsblatt 10 Lösungen

Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2018/19 - Dr. Günter Kniesel. Übungsblatt 10 Lösungen Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2018/19 - Dr. Günter Kniesel Übungsblatt 10 Lösungen Aufgabe 1. Jahreszeitbedingte Anwendung von Entwurfsmustern (16 Punkte) Ein reichlich geschmückter

Mehr

Prüfung Softwareentwicklung I (IB)

Prüfung Softwareentwicklung I (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 3 B, IB 3 C Wintersemester 2013/14 Prüfung Softwareentwicklung I (IB) Datum : 03.02.2014, 08:30

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - Selektoren public class Rechteck

Mehr

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B Sommersemester 2016 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2016, 16:30 Uhr Bearbeitungszeit

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 10. Felder (Arrays) Teil 2 Java-Beispiele: Echo.java Primzahlen.java Monate.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 18. Nov. 2015 2 Techniken mit Arrays: Boolean-Anzeige-Feld

Mehr

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. Inhalts-Verzeichnis 1. Allgemeine Richtlinien...1 1.1 Anzahl

Mehr

Abstrakte Basisklassen

Abstrakte Basisklassen Softwareentwicklung II (IB) Abstrakte Basisklassen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 24.06.2018 15:20 Inhaltsverzeichnis Idee.........................................

Mehr

JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten

JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten Einführung in JavaScript anhand von Beispielen JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten Grundbedingungen die Einbindung erfolgt über ein Objektmodell (Objekte mit

Mehr

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel

Mehr

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Praktikum Datenbanksysteme Ho Ngoc Duc IFIS - Universität zu Lübeck 01.06.2005 Tomcat-Installation $JAVA_HOME (z.b. /home/dbp00/j2sdk1.4.2) $CATALINA_HOME (/home/dbp00/jakarta-tomcat-4) Skripte zum Start/Stop:

Mehr

Ich liebe Java && Ich liebe C# Rolf Borst

Ich liebe Java && Ich liebe C# Rolf Borst Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String

Mehr

1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen

1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen 1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

"Nie mehr Nadel im Heuhaufen" zentrale Wissensnutzung bei der Allianz Suisse

Nie mehr Nadel im Heuhaufen zentrale Wissensnutzung bei der Allianz Suisse "Nie mehr Nadel im Heuhaufen" zentrale Wissensnutzung bei der Allianz Suisse Robert Spaltenstein Leiter Groupware AMOS IT Suisse AG http://www.fotocommunity.de/pc/pc/display/11692030 Agenda Allianz Suisse

Mehr

FensterHai. - Integration von eigenen Modulen -

FensterHai. - Integration von eigenen Modulen - FensterHai - Integration von eigenen Modulen - Autor: Erik Adameit Email: erik.adameit@i-tribe.de Datum: 09.04.2015 1 Inhalt 1. Übersicht... 3 2. Integration des Sourcecodes des Moduls... 3 2.1 Einschränkungen...

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 3 Lösungsvorschlag Objektorientierte Programmierung 08. 05. 2006 Lösung 8 (Java und UML-Klassendiagramm

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Webengineering. jquery

Webengineering. jquery Webengineering jquery Marcel Vilas 1 DHBW - Stuttgart jquery - Allgemein jquery ist eine JavaScript-Bibliothek (API) jquery ist eine Funktion (Funktionen sind Objekte) Vorteile: einfacher als vanilla JavaScript

Mehr

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components

Mehr

Informatik II Übung 5 Gruppe 3

Informatik II Übung 5 Gruppe 3 Informatik II Übung 5 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 5 Leyna Sadamori 29. März 2017 1 Administrativ Die Übung am 5. April fällt aus! Bitte in die Übung in HG G 3

Mehr

Informatik II Übung 2. Pascal Schärli

Informatik II Übung 2. Pascal Schärli Informatik II Übung 2 Pascal Schärli pascscha@student.ethz.ch 08.03.2018 Code Expert Pascal Schärli 08.03.2018 2 Nachbesprechung Serie 1 Aufgabe 1 a) Induktionsbeweis über a möglich? Nein! Der Induktionsanfang

Mehr

Web-basierte Anwendungssysteme PHP-Einführung

Web-basierte Anwendungssysteme PHP-Einführung Web-basierte Anwendungssysteme PHP-Einführung Prof. Dr. Armin Lehmann (lehmann@e-technik.org) Fachbereich 2 Informatik und Ingenieurwissenschaften Wissen durch Praxis stärkt Seite 1 Prof. Dr. Armin Lehmann

Mehr

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke JavaScript Das umfassende Referenzwerk David Flanagan Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke O'REILLY Cambridge Köln Paris Sebastopol Tokyo Vorwort xiii 1: Einführung in

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS005 Objektorientierte Programmierung Bachelor of Science (Informatik) Th Letschert Felder Seite Th Letschert OOP Felder / Arrays Seite 2 Th Letschert Feld / Array Feld (auch Array) Daten unter einem

Mehr

Zusammenfassung: Programmieren 2 (C#)

Zusammenfassung: Programmieren 2 (C#) Zusammenfassung: Programmieren 2 (C#) Arrays Eindimensional int[] feld; feld = new int[2]; int[] feld2 = new int[3]; int[] feld3 = new int[] 1, 2, 3 ; //oder int[] feld4 = 1, 2, 3 ; int laenge = feld3.length;

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner

Mehr

Programminhalte extrahieren und modifizieren mit SAS. Katja Glaß

Programminhalte extrahieren und modifizieren mit SAS. Katja Glaß Programminhalte extrahieren und modifizieren mit SAS Katja Glaß Agenda Einleitung Einsatzgebiete Einleitung Manual Training SAS Makro Validierung Übersichten Einleitung Manual Training SAS Makro Validierung

Mehr

Abbildung : Aufruf des Wikis (Server: Interner Web-Server HTTPD auf Port 8080)

Abbildung : Aufruf des Wikis (Server: Interner Web-Server HTTPD auf Port 8080) 24.7.1 Projekte Texte in MarkDown-Syntax lassen sich schnell schreiben und gut lesen, denn Gambas-MarkDown bringt alles mit, was Sie u.a. für das Generieren von (einfachen) Webseiten benötigen. 24.7.1.1

Mehr

TinyMCE. Frederik Leidloff

TinyMCE. Frederik Leidloff TinyMCE Frederik Leidloff Übersicht 2 TinyMCE Lizenz Entwicklung Bug Beschreibung XSS und Same Origin Policy Problemlösung TinyMCE 3 Tiny Moxiecode Content Editor Anpassbar durch Themes und Plugins Sprache

Mehr

Microservices. - Integration der Benutzeroberfläche - Version: Orientation in Objects GmbH. Weinheimer Str.

Microservices. - Integration der Benutzeroberfläche - Version: Orientation in Objects GmbH. Weinheimer Str. Microservices - Integration der Benutzeroberfläche - Version: 18.1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihr Sprecher Thorsten Maier Trainer, Berater, Entwickler

Mehr

synedra View Embedded Michael Doppler, synedra it GmbH <m.doppler@synedra.com>

synedra View Embedded Michael Doppler, synedra it GmbH <m.doppler@synedra.com> synedra View Embedded Michael Doppler, synedra it GmbH 2015 synedra information technologies Zusammenfassung IndiesemDokumentwirdbeschrieben,wiesynedraViewEmbeddedinApplikationenandererHerstellerintegriertwerdenkann.

Mehr

ENTERPRISEY ANGULAR.JS

ENTERPRISEY ANGULAR.JS ENTERPRISEY ANGULAR.JS THE GOOD, THE BAD, AND THE UGLY EnterJS 2015 - Ralph Guderlei Technology Advisor @ @rguderlei ENTERPRISE APPLICATIONS? komplexe Datenmodelle (100+ Entities) komplexe Geschäftsprozesse

Mehr

Lösungen der P1-Musterprüfungsaufgaben

Lösungen der P1-Musterprüfungsaufgaben Lösungen der P1-Musterprüfungsaufgaben 7.6.2012 Textformatierung Eine Textdatei wird eingelesen, aufeinander folgende White-space-Zeichen werden zu einem zusammengefasst, die Zeilenlänge wird angepasst

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

ALP II Dynamische Datenmengen

ALP II Dynamische Datenmengen ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung

Mehr

NILS HARTMANN. React MODERNE WEB-ANWENDUNGEN MIT. Slides: BED-CON BERLIN SEPTEMBER

NILS HARTMANN. React MODERNE WEB-ANWENDUNGEN MIT. Slides:   BED-CON BERLIN SEPTEMBER NILS HARTMANN React MODERNE WEB-ANWENDUNGEN MIT Slides: http://bit.ly/bedcon-react BED-CON BERLIN SEPTEMBER 2017 @NILSHARTMANN NILS HARTMANN Programmierer aus Hamburg Java JavaScript, TypeScript Trainings

Mehr

Informatik II - Übung 03

Informatik II - Übung 03 Informatik II - Übung 03 Katja Wolff katja.wolff@inf.ethz.ch 15.03.2014 Besprechung Übungsblatt 2 Informatik II - Übung 03 15.03.2017 2 U2.A1 S Klammerdarstellung und eingerückter Form R P V S(R(H(K)),P(A(N,O),Q,T),V(J,F(G)))

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018

Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018 Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018 Übungen zu Grundlagen der Programmierung Aufgabe 19 (Lösungsvorschlag) Rekursive Datenstruktur

Mehr

Kapitel 9 Schnittstellen

Kapitel 9 Schnittstellen Kapitel 9 Schnittstellen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Was ist eine Schnittstelle?

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung (Teil 2) - Objekt-Relationen - Pakete 2 Wiederholung (Klassen) In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften

Mehr

XML Technologien Seminar WS 2011/2012. 01.04.12 Einführung in HTML5 1

XML Technologien Seminar WS 2011/2012. 01.04.12 Einführung in HTML5 1 XML Technologien Seminar WS 2011/2012 01.04.12 Einführung in HTML5 1 EINFÜHRUNG IN HTML5 Eine kurze historische Einführung HTML5 Ausblick und kritische Reflexion 01.04.12 Einführung in HTML5 2 Eine kurze

Mehr

DOM Document Object Model

DOM Document Object Model DOM Document Object Model J. Schneeberger Das Document Object Model (DOM) W3C Spezifikation Benutzt die Baumstruktur des (XML/HTML) Dokuments Programmierschnittstelle (API) für HTML- und XML-Dokumente

Mehr

Ulrich Stein

Ulrich Stein Von C nach MATLAB Einführung in MATLAB für Personen mit C-Kenntnissen Datentypen ähnlich in C und MATLAB, dort aber automatische Typzuweisung möglich double a = 2; Arrays a = double( 2 ); aber auch a =

Mehr

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012 , Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen

Mehr

Vorbereitung auf die Prüfung. Arthur Zaczek

Vorbereitung auf die Prüfung. Arthur Zaczek Vorbereitung auf die Prüfung Arthur Zaczek Jän 2015 1/38 Einleitung Einleitung 2/38 Inhalt Dieses Dokument soll Ihnen helfen, sich besser auf die Prüfung vorzubereiten. Es wird der Inhalt der LV mit der

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 - ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck { Selektoren

Mehr

Selbststudium OOP7 & ALG2 Auftrag

Selbststudium OOP7 & ALG2 Auftrag Selbststudium OOP7 & ALG2 Auftrag Kapitel 5.6 1. zu bearbeitende Aufgaben: 5.24 bis 5.30 5.24: Return Method Set entryset() V get(object key) Set keyset() V put(k key, V value) void

Mehr

6 Speicherorganisation

6 Speicherorganisation 6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Dynamisches Anzeigen von Informationen mit jqueryui Dialogs und Tabs

Dynamisches Anzeigen von Informationen mit jqueryui Dialogs und Tabs Dynamisches Anzeigen von Informationen mit jqueryui Dialogs und Tabs Dr. Gudrun Pabst BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 1 AGENDA Bitte warten

Mehr

Unicode Support Atomic Operations Thread Support Type-Generic Makros Sicherheit Ease-of-Use C11. Thomas Duckardt

Unicode Support Atomic Operations Thread Support Type-Generic Makros Sicherheit Ease-of-Use C11. Thomas Duckardt C11 Thomas Duckardt Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 22.05.2014 1 / 22 Gliederung (Agenda)

Mehr

Programmierstil in Java Coding-Standards und Dokumentation

Programmierstil in Java Coding-Standards und Dokumentation Coding-Standards und Dokumentation SEP Felix Zenz 23.10.2017 Wissenschaftliche Betreuer: Prof. Dr. Peer Kröger, Janina Sontheim, Daniel Kaltenthaler, Johannes Lohrer Verantwortlicher Professor: Prof. Dr.

Mehr

Mehr Dynamik in Apex mit Javascript und JQuery

Mehr Dynamik in Apex mit Javascript und JQuery Mehr Dynamik in Apex mit Javascript und JQuery Alexander Scholz its-people Frankfurt am Main Schlüsselworte: Javascript und JQuery in Apex einbinden, Elemente dynamisch anzeigen, Selectlisten aktualisieren,

Mehr

Programmiermethodik 3. Klausur Lösung

Programmiermethodik 3. Klausur Lösung Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Objekt-Relationen 2 Klassen In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften eines Objektes die Fähigkeiten

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

π auf (und mehr) Dezimalen Wegen π = 4 arctan(1) kann die Reihenentwicklung des Arkustangens verwendet werden.

π auf (und mehr) Dezimalen Wegen π = 4 arctan(1) kann die Reihenentwicklung des Arkustangens verwendet werden. π auf 10000000 (und mehr) Dezimalen Ac Wegen π = 4 arctan(1) kann die Reihenentwicklung des Arkustangens verwendet werden. n 2k+ 1 3 5 7 9 11 2n+ 1 k x x x x x x n x arctan( x)» å( - 1) = x - + - + - +

Mehr

Probeklausur. Musterlösung

Probeklausur. Musterlösung Programmierkurs Probeklausur Dr. Steffen Müthing Abgabe 08. Februar 2019 IWR, Universität Heidelberg ipk-exercises:2018-ws-55-gc187ae0 Allgemeine Hinweise: Probeklausur Dieses Übungsblatt wird nicht bewertet.

Mehr

Guided Research: Antrittsvortrag

Guided Research: Antrittsvortrag Fakultät für Informatik Technische Universität München Guided Research: Antrittsvortrag Layouting Enterprise Information Visualizations employing hybrid constraint satisfaction algorithms Sascha Roth,

Mehr

Marcus Lunzenauer. Templates zur Vereinheitlichung der Ausgabeerzeugung. virtuos Zentrum zur Unterstützung virtueller Lehre der Universität Osnabrück

Marcus Lunzenauer. Templates zur Vereinheitlichung der Ausgabeerzeugung. virtuos Zentrum zur Unterstützung virtueller Lehre der Universität Osnabrück Stud.IP Entwicklerworkshop Halle 29. März 2007 Marcus Lunzenauer Templates zur Vereinheitlichung der Ausgabeerzeugung Inhalt Überblick über die Vorteile durch die Verwendung von Templates Darstellung von

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen

Mehr

Informatik II Übung 4 Gruppe 7

Informatik II Übung 4 Gruppe 7 Informatik II Übung 4 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 4 Leyna Sadamori 20. März 2014 1 Administratives Text Encoding: UTF-8 Informatik II Übung 4 Leyna Sadamori 20.

Mehr

APEX DESKTOP APPS. Interaktion mit dem Client System

APEX DESKTOP APPS. Interaktion mit dem Client System APEX DESKTOP APPS Interaktion mit dem Client System About me Oracle > 8 Jahre APEX > 8 Jahre Freelancer seit 2016 Vorher APEX Entwickler im Versicherungsumfeld aktiver Open Source Entwickler auf Github

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Parallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr 3. Übung Abgabe bis 10.11.2015, 10:00 Uhr Aufgabe 3.1: Java-Synchronisation a) An welchen Stellen im Code kann das Schlüsselwort synchronized verwendet werden? b) Wie nennt sich die Synchronisations-Art,

Mehr

NILS HARTMANN OLIVER ZEIGERMANN EINSTIEG IN. React.

NILS HARTMANN OLIVER ZEIGERMANN EINSTIEG IN. React. NILS HARTMANN OLIVER ZEIGERMANN EINSTIEG IN React http://bit.ly/react-lehmanns LEHMANNS MEDIA HAMBURG SEPTEMBER 2016 NILS HARTMANN @NILSHARTMANN OLIVER ZEIGERMANN @DJCORDHOSE HTTP://REACTBUCH.DE SINGLE

Mehr

Universität Osnabrück Fachbereich Mathematik / Informatik 1. Übung Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc.

Universität Osnabrück Fachbereich Mathematik / Informatik 1. Übung Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc. Universität Osnabrück Fachbereich Mathematik / Informatik 1. Übung Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc. 1 Organisatorisches Übung: Dienstags, 12:00 14:00, regelmäßige

Mehr

Web-Techniken Einführung in JavaScript

Web-Techniken Einführung in JavaScript Web-Techniken Einführung in JavaScript Prof. Dr. Axel Böttcher Winter 2012/13 15. September 2012 Ausführung von JavaScript Variante 1: Ausführung im Browser durch direktes Einbetten: 1 2

Mehr

jquery! JavaScript Frameworks Dr. Cora Burger

jquery! JavaScript Frameworks Dr. Cora Burger jquery! JavaScript Frameworks Dr. Cora Burger Überblick 1. Anwendungsbeispiele 2. Einstieg 3. jquery 4. Erweiterung jqueryui 5. Plugin-Beispiele 6. Erweiterung jquery Easing 7. Zusammenfassung, Ausblick

Mehr

Code Beispiel: /* path element */ var el = rc.path("m l 0-50 l l 0-50 l l 0 50 l l 0 50 z");

Code Beispiel: /* path element */ var el = rc.path(m l 0-50 l l 0-50 l l 0 50 l l 0 50 z); SVG in APEX: Best Practices an Live Beispielen Tobias Arnhold Tobias Arnhold IT Consulting Heppenheim Schlüsselworte APEX, Raphaël, RaphaelJS, Visualisierung, Javascript, HTML5, SVG, UX, Design, APEX-AT-WORK

Mehr

II.4.2 Abstrakte Klassen und Interfaces - 1 -

II.4.2 Abstrakte Klassen und Interfaces - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1

Mehr

Play Framework, MySQL, JPA, HQL, HTML, jquery,

Play Framework, MySQL, JPA, HQL, HTML, jquery, Play Framework, MySQL, JPA, HQL, HTML, jquery, Wer Mit wem Resultat 1.Kunde Schalter: Bibliothekarin Bestimmt,welcher Archivar die Zeitschrift holen geht 2. Schalter: Bibliothekarin Archivar Kontrollübergabe

Mehr

Umzug. ASP.NET-WebForms-Elemente in MVC weiterverwenden. Dr. Malte Clasen adesso AG

Umzug. ASP.NET-WebForms-Elemente in MVC weiterverwenden. Dr. Malte Clasen adesso AG Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG Über uns Malte Clasen Softwareentwickler http://malteclasen.de adesso AG IT-Dienstleister http://adesso.de Rezeptefuchs.de

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 11: Generic Methods Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 15 Inhalt

Mehr

Grundlagen der Informatik 12. Strukturen

Grundlagen der Informatik 12. Strukturen 12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik

Mehr

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

Forms Desktop Kooperation

Forms Desktop Kooperation Forms Desktop Kooperation Oracle Forms in Integration & Interaktion Forms Day 2019 Motivation Kennen Sie diese Argumente? Kein modernes GUI.. fehlende Komponenten Forms zu starr und wird als Insel empfunden

Mehr