Client-Architektur. in Angular. Philipp Burgmer

Größe: px
Ab Seite anzeigen:

Download "Client-Architektur. in Angular. Philipp Burgmer"

Transkript

1 Client-Architektur in Angular Philipp Burgmer

2 Über mich Philipp Burgmer <> Entwickler, Trainer, Speaker Web-Technologien TypeScript, Angular </> 1

3 Über uns W11K GmbH - The Web Engineers <> Gegründet 2000 Auftrags-Entwicklung / Consulting Web / Java Esslingen / Siegburg </> thecodecampus <> Technologie Schulungen seit 2007 Projekt-Kickoffs & Unterstützung im Projekt </> 2

4 Überblick <> Architektur <> Services & DI <> Komponenten <> Module & Routing <> Datenfluss <> Modularizierung <> Testen 3

5 Architektur

6 Was ist Architektur? <> Welche Komponenten gibt es <> Wie spielen diese Zusammen (Relationship) <> Wie grenzen sie sich von einander ab (Separation of Concern) 5

7 Wie lässt sich Architektur bewerten? <> Nicht-Funktionale-Anforderungen - Wartbarkeit / Testbarkeit - Erweiterbarkeit / Flexibilität - Wiederverwendbarkeit - Performance / Skalierbarkeit - Verständlichkeit / Nachvollziehbarkeit <> Widersprechen sich teilweise 6

8 Architektur in Angular

9 Style Guide <> Style Guide mit Best Practises <> Empfehlungen, keine Verpflichtung <> Beschreibt Architektur-Bausteine 8

10 Services & DI

11 Service <> Kapselt irgendwelche Funktionalität - Sollte UI nicht direkt verändern - Kombination Service und Komponente / Direktive - Ausnahme: Title Service <> Richtige Größe wichtig - Schwierig zu Schneiden - Single-Responsibility-Prinzip - Indiz: Testbarkeit 10

12 Dependency Injection <> Ermöglicht lose Kopplung <> Abhängigkeiten sichtbar machen (Konstruktor-Parameter) <> Nicht an konkrete Implementierung binden Flexibilität <> Nicht an Umgebung binden Wiederverwendbarkeit <> Abhängkeiten mockbar Testbarkeit 11

13 Komponenten

14 Komponenten <> Klein halten - Single Responsibility - Wiederverwendbarkeit, Testbarkeit <> Kapselung einhalten - - Verändern nur eigenen DOM Component Service Component <> Sind für UI zuständig - Single-Responsibility - Datenbeschaftung und Haltung in Services 13

15 Demo

16 Context & Presentation <> a.k.a Smart & Dumb / Smart & Presentation <> Presentation - Kennt Umgebung nicht - Soll Daten darstellen - Bekommt Daten per Input übergeben - Aggregiert und abstrahiert Events per Output <> Context - Kennt Umgebung - Besorgt Daten - Bindet Presentation-Components ein - Interpretiert Events 15

17 Demo

18 Module & Routing

19 EcmaScript Module <> Steuern welcher Code eingebunden wird - Kein toter Code <> Kapselung - Keine globalen Variablen - Anhängigkeiten erkennbar 18

20 Angular Module <> Ebene über EcmaScript-Modulen - Steuern was das Framework kennt und auflösen kann <> Feature-Module - Anhaltspunkt: Top-Level-Menü-Einträge - Beinhalten Komponenten und Services <> Core - Beinhaltet allgemeine, häufig verwendete Sachen - Auch Abhängigkeiten zwischen Features erlaubt (z.b. Dashboard) <> Oft feinere Aufteilung - Für Build-Optimierung 19

21 Routing <> Heimliches Herzstück von Angular Anwendungen <> Gibt mit Modulen zusammen Anwendung eine Struktur - Routen in Feature-Modulen definieren, in App aggregieren - Kontext-Komponenten im Routing verwenden 20

22 Demo

23 Zustand & Datenfluss

24 Datenfluss <> Wer ändert wann welche Daten <> Wer wird wie über Änderungen informiert <> Großes Problem in AngularJS Anwendungen <> Angular ebenfalls keine Vorgaben 23

25 Demo

26 Der Feind: Mutability <> Shared Mutable State <> Zwei-Wege-Data-Binding <> Daten werden einfach geändert <> Wer Binding hat wird aktualisiert <> Führt zu viel Polling 25

27 Die Lösung: Functional Reactive Programming <> Immutable Data Structures - z.b. über Object.freeze und Bibliothek wie Immer - Nur bestimmter Code darf Daten verändern <> Observables - In Angular über RxJS schon integriert - Subscriber bekunden Interesse - Aktualisierungen können explizit bekannt gemacht werden 26

28 Flux Action Dispatcher Store View <> Grundgedanke: Unidirectional Data Flow <> Flux ist ein Pattern - Verschiedene Implementierungen 27

29 Redux 3 Action Store View current state Reducer <> Redux implementiert Flux - Etwas andere Namen - Gleicher Grundgedanke 1 new state 28

30 Tydux Store 2 1 View State 3 Mutators <> Inspiriert von Flux & Redux <> Versucht die Probleme von Redux zu lösen - Alles komplett typisiert (TypeScript) - Keine Zuordnung über Strings - Erzwingt Unveränderbarkeit der Daten außerhalb von Mutators 29

31 Demo

32 Angular Module & Kapselung

33 Angular Module & Komponenten 32

34 Angular Module & Komponenten 33

35 Angular Module & Komponenten 34

36 Angular Module & Komponenten <> Positiv - Vermeidung Namenskolisionen <> Negativ - Schwierig zu lernen - Schlecht nachvollziehbar - Im Code nicht gleich ersichtlich 35

37 Angular Module & Provider 36

38 Angular Module & Provider 37

39 Angular Module & Provider 38

40 Angular Module & Provider <> Negativ - Abhängigkeit von Feature zu Core nicht ersichtlich - Fehler erst zur Laufzeit <> Positiv - Ist in anderen DI Umgebungen auch so - Eigentlich auch richtig <> Problem: Unterschiedliches Verhalten für Provider und Komponenten - Für Zugriff auf Komponenten muss Core in Feature importiert werden 39

41 Angular Module & Provider 40

42 Modularizierung über Packages

43 Packages <> Angular Anwendung Monolith zur Laufzeit <> Wiederverwendbare / allgemeine Teile auslagern (Bibliothek) - Eigene NPM Packages - Private Repos möglich (Nexus, Artifactory, NPM Inc) <> Kombination aller Paket- & Modulsysteme - NPM Paket installieren - EcmaScript Module per absolutem import Statement - NgModule zu imports hinzufügen <> Re-Exports um interne Strukturen zu verbergen 42

44 Demo

45 Packages <> Problem 1: Kein Schutz vor tiefem Zugriff <> Problem 2: Angular CLI bisher nur für Anwendungen - Alternative Builds wie ng-packagr oder nrwl/nx <> Problem 3: Entwicklung mit aktuellem Stand - npm link - Separate App für Package-Entwicklung 44

46 Testen

47 Testen <> Unit-Tests wichtig für langfristige Wartbarkeit - Tests oft guter Indikator für saubere Architektur - Lesbarkeit & Verständlichkeit der Tests - Tests sind im Idealfall ausführbare Doku <> Test-Driven-Development hilft beim Schneiden - Zusätzlicher Context - Single-Responsibility - Schlecht testbar? Indiz für macht zuviel 46

48 Testen <> Dependency Injection und Mock-Support <> Angular Testing Guide <> Test-Code leider sehr aufgebläht - it('desc', async(inject([dependency, (dep) => {}]))) - Viel Schachtelung, viele Klammern - Keine Verwendung der Typen bei inject 47

49 Lazy-Loading

50 Lazy Loading <> Wichtig für Skalierung - Code on-demand nachladen - Initialen Payload klein halten - Schneller Start bei großen Anwendungen <> Führt nicht gerade zu mehr Übersichtlichkeit - Provider an Modulen - "Referenzierung" von Modulen in Strings statt über import Statements <> Häufiger Fehler: Alles lazy laden 49

51 Lazy Loading 50

52 Lazy Loading 51

53 Lazy Loading 52

54 Lazy Loading 53

55 Zusammenfassung <> Angular bietet viele Konzepte <> Konzepte alleine machen keine gute Architektur <> Saubere Architektur möglich <> Gefahren lauern im Detail <> Über Style-Guide viele Empfehlungen vorhanden 54

56 Philipp Burgmer GitHub: pburgmer

React.js flottes Front-End für Domino. Knut Herrmann

React.js flottes Front-End für Domino. Knut Herrmann React.js flottes Front-End für Domino Knut Herrmann Knut Herrmann Senior Software Architekt Leonso GmbH Notes Domino Entwickler seit Version 2 Web-App-Entwickler aktiv auf StackOverflow E-Mail: knut.herrmann@leonso.de

Mehr

ng1 zu ng2+ migrieren Philipp Burgmer w11k / thecodecampus

ng1 zu ng2+ migrieren Philipp Burgmer w11k / thecodecampus ng1 zu ng2+ migrieren Philipp Burgmer w11k / thecodecampus Über mich Philipp Burgmer burgmer@w11k.de @philippburgmer SoftwareEntwickler, Trainer WebTechnologien, Sicherheit TypeScript, Angular TheCodeCampus

Mehr

Vorwort... 3 Angular CLI: Der Codegenerator für unser Projekt Vorstellung Installation Die wichtigsten Befehle...

Vorwort... 3 Angular CLI: Der Codegenerator für unser Projekt Vorstellung Installation Die wichtigsten Befehle... D3kjd3Di38lk323nnm xv Vorwort................................................... vii I Einführung 1 1 Haben Sie alles, was Sie benötigen?.................... 3 1.1 Visual Studio Code.........................................

Mehr

Angular & TypeScript. Grundlagen

Angular & TypeScript. Grundlagen Angular & TypeScript Grundlagen Überblick TypeScript Typen & Grundlagen Klassen & Interfaces Dekoratoren Module Tooling Modul Systeme & Module Loader TypeScript Compiler & Linting BuildSystem:

Mehr

JS goes mobile: Eine Übersicht. Frederik von Berg w11k / thecodecampus

JS goes mobile: Eine Übersicht. Frederik von Berg w11k / thecodecampus JS goes mobile: Eine Übersicht Frederik von Berg w11k / thecodecampus Überblick Über mich Historie Mobile Native JavaScript Vergleich mit Nativ & Hybrid Frameworks Setup & Codebeispiel

Mehr

Maximilian Berghoff 2

Maximilian Berghoff 2 ANGULAR ANGULAR WORKSHOP MAXIMILIAN BERGHOFF - 25.08.2018 - FROSCON 1 2 Maximilian Berghoff 2 Maximilian Berghoff @ElectricMaxxx 2 Maximilian Berghoff @ElectricMaxxx github.com/electricmaxxx 2 Maximilian

Mehr

SOLID für.net und JavaScript

SOLID für.net und JavaScript SOLID für.net und JavaScript www.binarygears.de Stefan Dirschnabel Twitter: @StefanDirschnab #dncgn SOFTWARE ENTWICKLUNG BERATUNG SCHULUNG 5 Prinzipien für das Design von Software Wartbarer Code Leicht

Mehr

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java Software-Architektur basierend auf dem Plug-in-Konzept Aufteilung: Probleme mit normaler/alter Software Ziele des Software Engineerings Die

Mehr

Moderne App-Entwicklung am Beispiel waipu.tv

Moderne App-Entwicklung am Beispiel waipu.tv Moderne App-Entwicklung am Beispiel waipu.tv Andreas Bauer 10.11.2016 Johannes Schamburger Informationen zur inovex GmbH - IT-Dienstleister in Pforzheim, Karlsruhe, Köln, München und Hamburg - Application

Mehr

Evaluation von Angular als Framework für Single-Page-Webanwendungen

Evaluation von Angular als Framework für Single-Page-Webanwendungen Evaluation von Angular als Framework für Single-Page-Webanwendungen Seminarvortrag - David Simons 24.01.2018 Inhaltsverzeichnis Einleitung Motivation Kriterien Framework Vorstellung Community Auswahl Angular

Mehr

Twitter & GitHub: romanroe

Twitter & GitHub: romanroe ReactiveX mit RxJava Roman Roelofsen - WK GmbH / thecodecampus Twitter & GitHub: romanroe Über mich Alpha Geek, Entwickler, Trainer WK GmbH - The Web Engineers Individualsoftware thecodecampus Schulungsanbieter

Mehr

Angular in der Praxis: Do s and Don'ts WJAX 2018

Angular in der Praxis: Do s and Don'ts WJAX 2018 Angular in der Praxis: Do s and Don'ts WJAX 2018 Karsten Sitterberg Trainer Autor Entwickler https://sitterberg.com/ karsten@sitterberg.com @kakulty Typisch(e) Kunden Enterprise Anwendungen Komplexe Anwendungen

Mehr

Echte Cross-Plattform Anwendungen mit Angular 2 in Action!

Echte Cross-Plattform Anwendungen mit Angular 2 in Action! Browser, Mobile & Desktop Echte Cross-Plattform Anwendungen mit Angular 2 in Action! Christian Weyer Thinktecture AG @christianweyer 2 Christian Weyer Mitgründer & Principal Consultant Thinktecture AG

Mehr

NativeScript & Angular 2

NativeScript & Angular 2 NativeScript & Angular 2 Von der WebApp zur nativen SmartphoneApp Frederik von Berg W11K / thecodecampus Überblick Über mich Ausgangslage Was ist Angular? Was ist NativeScript?

Mehr

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi Projektgruppe Thomas Kühne Komponentenbasiertes Software Engineering mit OSGi Anforderungen der PG IDSE an ein Komponenten- Client Nativer Client Web Client Alternativen IDSE Nutzer Szenario Pipe IDSE

Mehr

Skalierbare Enterprise Architekturen für Universal Windows Platform Apps

Skalierbare Enterprise Architekturen für Universal Windows Platform Apps Agenda Ziele Portable Class Libraries Projektaufbau MVVM Databinding #1 MVVM Light Inversion of Control & Dependency Injection Repository Pattern Databinding #2 Skalierbare Enterprise Architekturen für

Mehr

12 Flux-Architektur am Beispiel von Redux

12 Flux-Architektur am Beispiel von Redux D3kjd3Di38lk323nnm 229 12 Flux-Architektur am Beispiel von Redux 12.1 Einführung Sobald deine Anwendung größer wird und du vielleicht auch mit mehreren Entwicklern daran arbeitest, kann eine einheitliche

Mehr

ue.js on Steroids Wie man aus einem guten Framework noch mehr herausholt

ue.js on Steroids Wie man aus einem guten Framework noch mehr herausholt ue.js on Steroids Wie man aus einem guten Framework noch mehr herausholt Wer sind wir? Christian Hunger @frozencoffee David Müller @dav1d55 David als Nuxt.js-Contributor Projekterfahrung mit Vue.js aus

Mehr

VON MVC ZU MODEL-VIEW-VIEWMODEL

VON MVC ZU MODEL-VIEW-VIEWMODEL VON MVC ZU MODEL-VIEW-VIEWMODEL Wissenschaftliche Vertiefung von Lukas Jaeckle Studiengang Softwaretechnik und Medieninformatik Folie 1 von 18 Agenda 1. Architekturmuster 2. Architekturmuster für interaktive

Mehr

11. Komponenten Grundlagen der Programmierung 1 (Java)

11. Komponenten Grundlagen der Programmierung 1 (Java) 11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung

Mehr

Umstieg auf OSGi - aber wie? Martin Lippert & Matthias Lübken akquinet it-agile

Umstieg auf OSGi - aber wie? Martin Lippert & Matthias Lübken akquinet it-agile Umstieg auf OSGi - aber wie? Martin Lippert & Matthias Lübken akquinet it-agile OSGi The dynamic module system for Java Bundles Exports Imports Dependencies Services Declarative Services Versionen Dynamic

Mehr

Moderne Android-App - Aber wie?

Moderne Android-App - Aber wie? Moderne Android-App - Aber wie? Daniel Bälz Karlsruhe, 21.11.2016 Greetings, Exalted One. Allow me to introduce myself. Star Wars: Episode VI - Return of the Jedi 2 waipu.tv Fernsehen wie noch nie Produkt

Mehr

Wir bringen Ihre Notes/Domino Anwendungen sicher ins Web 19.11.2015, Bilster Berg Drive Resort Michael Steinhoff, agentbase AG. www.agentbase.

Wir bringen Ihre Notes/Domino Anwendungen sicher ins Web 19.11.2015, Bilster Berg Drive Resort Michael Steinhoff, agentbase AG. www.agentbase. Wir bringen Ihre Notes/Domino Anwendungen sicher ins Web 19.11.2015, Bilster Berg Drive Resort Michael Steinhoff, agentbase AG www.agentbase.de 1 Agenda Grundlagen Modernisierung Möglichkeiten mit Domino

Mehr

Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen

Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen Dr. Carola Lilienthal, cl@wps.de, @cairolali www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG 1 Business-Software

Mehr

1.1 Für wen dieses Buch gedacht ist Einleitung Danksagung... 2

1.1 Für wen dieses Buch gedacht ist Einleitung Danksagung... 2 D3kjd3Di38lk323nnm v 1 Vorwort 1 1.1 Für wen dieses Buch gedacht ist............................... 1 1.2 Einleitung............................................... 1 1.3 Danksagung.............................................

Mehr

MSE/SWF - API Design. Arthur Zaczek. Feb 2015

MSE/SWF - API Design. Arthur Zaczek. Feb 2015 Arthur Zaczek Feb 2015 1 Einleitung Dieses Dokument ist eine Zusammenfassung des Buches Practical API Design: Confessions of a Java Framework Architect. [@Tulach2012] 1.1 Cluelessness Je einfacher eine

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

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann - ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC - Björn Wilmsmann - ZenQuery Enterprise Backend as a Service Unternehmen horten Daten in Silos ZenQuery

Mehr

MVVM in Windows 8 und Windows Phone 8

MVVM in Windows 8 und Windows Phone 8 Basel MVVM in Windows 8 und Windows Phone 8 Thomas Claudius Huber Trivadis AG Thomas Claudius Huber Principal Consultat bei Trivadis www.trivadis.com www.thomasclaudiushuber.com Trainer, Coach, Developer,

Mehr

Vorstellung e.solutions

Vorstellung e.solutions Vorstellung e.solutions JavaScript, TDD und Code-Katas 1 Copyright e.solutions 5/3/2017 e.solutions Das Joint Venture von Audi und Elektrobit Bereiche bei e.solutions Bereiche bei e.solutions Erlangen

Mehr

Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius

Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius Huber @ThomasClaudiusH BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH

Mehr

Oliver Zeigermann / Nils Hartmann, React, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

Oliver Zeigermann / Nils Hartmann, React, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm D3kjd3Di38lk323nnm Oliver Zeigermann ist Entwickler, Architekt, Berater und Coach. Oliver wendet seine Erfahrungen aus dem Java-Umfeld auch auf die Softwareentwicklung und Architektur mit JavaScript an.

Mehr

Integration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components

Integration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components Integration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components Integration von Java Legacy Code in die Fusion Middleware 11 mittels des SOA Suite Spring Components

Mehr

Technische Schulden in Architekturen erkennen und beseitigen

Technische Schulden in Architekturen erkennen und beseitigen Technische Schulden in Architekturen erkennen und beseitigen Dr. Carola Lilienthal Carola.Lilienthal@wps.de, @cairolali www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Business-Software, die

Mehr

WebComponents. Bausteine des modernen Web

WebComponents. Bausteine des modernen Web WebComponents Bausteine des modernen Web Thomas Kruse Entwickler, Trainer, Berater www.trion.de @everflux Java User Group Münster Frontend Freunde Münster Karsten Sitterberg Entwickler, Trainer, Berater

Mehr

Model-View-Controller

Model-View-Controller Model-View-Controller Seminar Software-Entwurf Leif Singer Gliederung Einordnung Überblick & Geschichte Aufgabenverteilung & Beispiel Model View Controller Zusammenspiel Web Anwendungen

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

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Sommersemester 2018 Michael Theis, Lehrbeauftragter 2 Servlet API Websockets JSF JAX-WS JAX-RS JMS JAXB JSON-P JEE Enterprise Application

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

Managed Extensibility Framework die dynamische Softwareplattform auf.net-basis. W3L AG

Managed Extensibility Framework die dynamische Softwareplattform auf.net-basis. W3L AG 1 Managed Extensibility Framework die dynamische Softwareplattform auf.net-basis W3L AG info@w3l.de 2011 2 Inhalt Motivation Managed Extensibility Framework (MEF) Überblick Beispiel Programmiermodell Framework

Mehr

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren

Mehr

Langlebige Softwarearchitekturen der Weg aus den technischen Schulden

Langlebige Softwarearchitekturen der Weg aus den technischen Schulden Langlebige Softwarearchitekturen der Weg aus den technischen Schulden Dr. Carola Lilienthal, cl@wps.de, @cairolali www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG 1 Business-Software, die Spaß

Mehr

Applikationsarchitektur modularer Rich Client-Anwendungen am Beispiel der Windows Presentation Foundation

Applikationsarchitektur modularer Rich Client-Anwendungen am Beispiel der Windows Presentation Foundation Applikationsarchitektur modularer Rich Client-Anwendungen am Beispiel der Windows Presentation Foundation Jörg Jooss MTC Architect joerg.jooss@microsoft.com http://blogs.msdn.com/mtcmuc/ OOP 2009 Das Szenario

Mehr

Mit AngularJS Projekte schnell an die Wand fahren

Mit AngularJS Projekte schnell an die Wand fahren Mit AngularJS Projekte schnell an die Wand fahren Häufige Fehler und wie sie sich vermeiden lassen Rouven Röhrig 2 Agenda 1. Herausforderungen in Enterprise-JavaScript-Projekten 2. Was ist AngularJS und

Mehr

UI-Architekturen mit JSF

UI-Architekturen mit JSF Andy Bosch UI-Architekturen mit JSF Copyright 2011, Andy Bosch, www.jsf-academy.com Slide 1 Agenda Warum reden wir überhaupt über UI-Architektur? Technologien und Architekturen wie passt das zusammen?

Mehr

Entwurfsprinzip. Entwurfsprinzip

Entwurfsprinzip. Entwurfsprinzip Die Komposition (hat ein Beziehung) ist der Vererbung (ist ein Beziehung) vorzuziehen. Es können Familien von Algorithmen in eigenen Klassensätzen gekapselt werden. Das Verhalten lässt sich zu Laufzeit

Mehr

ML Deployment. Vom Prototyp zur Produktion

ML Deployment. Vom Prototyp zur Produktion ML Deployment Vom Prototyp zur Produktion Marcel Spitzer Karlsruhe, 15.3.2018 Marcel Spitzer Big Data Scientist @ inovex Wi.-Mathematik (B.Sc.), Wi.-Informatik (M.Sc.) Data Science mit Python und R Deployment

Mehr

Multi-Tool Testlandschaft mit DDS

Multi-Tool Testlandschaft mit DDS Multi-Tool Testlandschaft mit DDS MATLAB UND SIMULINK ALS ENABLER FÜR RAPID TOOL PROTOTYPING SEBASTIAN BEWERSDORFF ASSYSTEM GERMANY MATLAB EXPO 2017 MÜNCHEN 27.06.2017 EINFÜHRUNG Tools in Unternehmensprozessen

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

als Alternative zu REST Manuel

als Alternative zu REST Manuel als Alternative zu REST Manuel Mauky @manuel_mauky Single-Page-Apps und mobile Apps API Wie kommen die Daten zum Client? API? Klassisch: REST/Hypermedia zahlreiche Ressourcen, jeweils über URIs erreichbar

Mehr

Eclipse Rieh Client Platform

Eclipse Rieh Client Platform Heiko Sippel, Jens Bendisposto, Michael Jastram Eclipse Rieh Client Platform Entwicklung von erweiterbaren Anwendungen mit RCP ntwickier.press V E E.l E.2 E.3 E.4 Teil 1 1 1.1 1.2 1.3 1.4 1.5 2 2.1 2.2

Mehr

Spring & OSGi: Plattform der Zukunft. Bernd Kolb (Kolbware) Martin Lippert (akquinet agile GmbH) Gerd Wütherich (comdirect bank AG)

Spring & OSGi: Plattform der Zukunft. Bernd Kolb (Kolbware) Martin Lippert (akquinet agile GmbH) Gerd Wütherich (comdirect bank AG) Spring & OSGi: Plattform der Zukunft Bernd Kolb (Kolbware) Martin Lippert (akquinet agile GmbH) Gerd Wütherich (comdirect bank AG) 0 Inhalt Warum Spring & OSGi? Die Grundidee Der Stand der Dinge Ein praktisches

Mehr

Funktionales TDD. Alles gleich oder alles anders?

Funktionales TDD. Alles gleich oder alles anders? Funktionales TDD Alles gleich oder alles anders? Johannes Link johanneslink.net Softwaretherapeut "In Deutschland ist die Bezeichnung Therapeut allein oder ergänzt mit bestimmten Begriffen gesetzlich nicht

Mehr

Indigo vs. Juno. Was ist neu für Eclipse 4.x RCP Entwickler? Hauptseminar 2012

Indigo vs. Juno. Was ist neu für Eclipse 4.x RCP Entwickler? Hauptseminar 2012 Fakultät Informatik, Institut für Angewandte Informatik, Professur für Technische Informationssysteme Indigo vs. Juno Was ist neu für Eclipse 4.x RCP Entwickler? Hauptseminar 2012 Thomas Pischulski (Thomas.Pischulski@mailbox.zih.tu-dresden.de)

Mehr

BIF/SWE - Übungsbeispiel

BIF/SWE - Übungsbeispiel Arthur Zaczek Feb 2015 1 Allgemein 1.1 Ziele Ziele dieses Übungsbeispieles ist es: GUI: Implementierung einer grafischen Oberfläche mit JavaFX oder WPF UI-Komponente: Implementierung einer eigenen grafischen

Mehr

Komponentenbasierter

Komponentenbasierter Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten

Mehr

Software-Refactoring. 29. Mai 2013

Software-Refactoring. 29. Mai 2013 Software-Refactoring 29. Mai 2013 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie

Mehr

TDD. mit JUnit & Mockito. Tobias Trelle, codecentric

TDD. mit JUnit & Mockito. Tobias Trelle, codecentric TDD mit JUnit & Mockito Tobias Trelle, codecentric AG @tobiastrelle 1 Tobias Trelle Software Architekt @ codecentric AG Twitter: @tobiastrelle Slideshare: http://de.slideshare.net/tobiastrelle/ GitHub:

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.

Mehr

Aufbau und Einsatz von Marionette Collective

Aufbau und Einsatz von Marionette Collective Aufbau und Einsatz von Marionette Collective Management großer Systemumgebungen mit dem Server Orchestration Framework Andreas Schmidt andreas.schmidt@cassini.de @aschmidt75 2012 Cassini Consulting GmbH

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

Vaadin 8 What s new Jakob Magun, Benjamin Schupp

Vaadin 8 What s new Jakob Magun, Benjamin Schupp Vaadin 8 What s new 26.09.2017 Jakob Magun, Benjamin Schupp Vaadin Release 8 Was bringt die Version 8 von Vaadin mit sich? Was bedeutet dies für meine Projekte? mp technology AG / 2 Recap: Neu in Vaadin

Mehr

Praktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl

Praktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl Praktikum SEP: Java-Programmierung WS 2018/19 Modularisierung Thomas Lemberger und Martin Spießl Basierend auf Folien von Matthias Dangl und Karlheinz Friedberger 1 / 10 Modularisierung Module gliedern

Mehr

ENTWURFSPRINZIPIEN DIE SOLID-PRINZIPIEN NACH ROBERT C. MARTIN 1 / 21. Markus Just Wissenschaftliche Vertiefung

ENTWURFSPRINZIPIEN DIE SOLID-PRINZIPIEN NACH ROBERT C. MARTIN 1 / 21. Markus Just Wissenschaftliche Vertiefung ENTWURFSPRINZIPIEN DIE SOLID-PRINZIPIEN NACH ROBERT C. MARTIN Markus Just 22.01.2016 Wissenschaftliche Vertiefung 1 / 21 Agenda 1) Einführung 2) SOLID- nach Robert C. Martin 3) Fazit 2 / 21 Mängel von

Mehr

Eclipse Scout Heute und Morgen. Jérémie Bresson BSI Business Systems Integration AG

Eclipse Scout Heute und Morgen. Jérémie Bresson BSI Business Systems Integration AG Eclipse Scout Heute und Morgen @ZimMatthias @j2r2b Matthias Zimmermann Jérémie Bresson BSI Business Systems Integration AG Scout Heute Neon Release Eclipse Scout Neon Release Neue Java Platform Neon Release

Mehr

Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar

Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar Zweck des Entwurfs Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar Überspitztes Beispiel: Wenn eine Klas mit einer Methode, die 10.000 Zeilen lang ist, die geforderte

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Aachen, den 19. Januar 2016

Aachen, den 19. Januar 2016 Einführung in AngularJS anhand einer Single Page Application zur Darstellung und Bearbeitung von Fragebögen in MS Dynamics CRM 2013 Aachen, den 19. Januar 2016 Übersicht 1. Grundlagen 2. Die Applikation

Mehr

APEX OOS TOOLS & HELFER

APEX OOS TOOLS & HELFER APEX OOS TOOLS & HELFER About me Oracle > 8 Jahre APEX > 8 Jahre Freelancer seit 2016 Vorher APEX Entwickler im Versicherungsumfeld aktiver Open Source Entwickler auf Github Mit-Entwickler von apex.world!

Mehr

Oliver Zeigermann, Stefan Toth embarc GmbH. Flux Facebooks Beitrag zur UI- Architektur der Zukunft

Oliver Zeigermann, Stefan Toth embarc GmbH. Flux Facebooks Beitrag zur UI- Architektur der Zukunft Oliver Zeigermann, Stefan Toth embarc GmbH Flux Facebooks Beitrag zur UI- Architektur der Zukunft UI-Architektur Warum? User Experience wird wichtiger Rich Client Optionen werden rar Es gibt mehrere Philosophien

Mehr

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Jan Düttmann Archimedon Software + Consulting GmbH & Co. KG Marienstraße 66 32427 Minden Stephan Kleuker Hochschule

Mehr

3.5 Arten von Modulen

3.5 Arten von Modulen D3kjd3Di38lk323nnm 78 3 Das Java-Modulsystem Modulübergreifender Ressourcenzugriff Das Paket, in welchem die Ressource liegt, die für andere Module zugreifbar sein soll, mit opens nach außen öffnen und

Mehr

FOLIO EINFÜHRUNG. Richard Redweik Universitätsbibliothek Leipzig

FOLIO EINFÜHRUNG. Richard Redweik Universitätsbibliothek Leipzig FOLIO EINFÜHRUNG Richard Redweik redweik@ub.uni-leipzig.de Universitätsbibliothek Leipzig 28.09.2017 AGENDA 1. Motivation 2. FOLIO a. Übersicht b. Okapi c. Stripes 3. Zusammenfassung MOTIVATION Warum FOLIO?

Mehr

Magento. Ein Überblick

Magento. Ein Überblick Magento Ein Überblick 1 Agenda Einleitung Projektvorstellung: design-bestseller.de Über Magento Fragen und Diskussion Andreas von Studnitz KKL Luzern Technological Overview 08.11.2014 2 3 Über mich Andreas

Mehr

EINFÜHRUNG IN REACT.JS UND REDUX

EINFÜHRUNG IN REACT.JS UND REDUX EINFÜHRUNG IN REACT.JS UND REDUX REACT.JS EINE JAVASCRIPT LIBRARY ZUM ERSTELLEN VON USER INTERFACES Nur die UI Virtual DOM Data Flow DATA FLOW Unidirektional ohne Event-Chaos https://www. ickr.com/photos/spilt-milk/5829575950

Mehr

Modul Software Komponenten 01 Komponenten

Modul Software Komponenten 01 Komponenten Modul Software Komponenten 01 Komponenten Martin Jud Inhalt 1. Begriff 2. Bedeutung 3. Nutzen 4. Entwurf mit Komponenten HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 2 1. Begriff Definition

Mehr

Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin

Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin 03.02.2011 Inhalt der Präsentation 1.Arbeit und Vortrag 1 2.Aktuelle Saros-Architektur

Mehr

Design for Testability in der Praxis David Völkel, codecentric AG

Design for Testability in der Praxis David Völkel, codecentric AG Design for Testability in der Praxis David Völkel, codecentric AG http://commons.wikimedia.org/wiki/file:pit_crew_hudson_valley.jpg http://commons.wikimedia.org/wiki/file:carservice.jpg David Völkel *

Mehr

Server-Überwachung mit Icinga 2

Server-Überwachung mit Icinga 2 Server-Überwachung mit Icinga 2 Webinar 15.02.2017 Christian Stein NETWAYS GmbH Werner Fischer Thomas-Krenn AG Agenda Vorstellung Thomas-Krenn Vorstellung NETWAYS Vorstellung Icinga 2 Überwachungsmöglichkeiten

Mehr

v i r t u a l 7 G m b H Consulting- und Softwarepartner Unternehmergeführt 1996 gegründet 85 Mitarbeiter 1 Team aus Spezialisten W E R W I R S I N D

v i r t u a l 7 G m b H Consulting- und Softwarepartner Unternehmergeführt 1996 gegründet 85 Mitarbeiter 1 Team aus Spezialisten W E R W I R S I N D v i r t u a l 7 G m b H Consulting- und Softwarepartner Unternehmergeführt 1996 gegründet 85 Mitarbeiter 1 Team aus Spezialisten W E R W I R S I N D K A R L S R U H E 50 Mitarbeiter Consulting Development

Mehr

Cloud-Umgebungen mit Terraform verwalten. Sascha Askani

Cloud-Umgebungen mit Terraform verwalten. Sascha Askani Cloud-Umgebungen mit Terraform verwalten Sascha Askani 20.04.2016 ... über inovex und den Referenten 2 Übersicht Einführung Umgebung konfigurieren Umgebung verwalten Fazit und Ausblick 3 ... Continuous

Mehr

Neue Wege mit Contao 4

Neue Wege mit Contao 4 Neue Wege mit Contao 4 Schöne neue PHP-Welt Contao Konferenz 2016 Über mich Andreas Schempp / terminal42 gmbh Schweiz Contao Core Entwickler Vorstand (Schatzmeister) Contao Association Hauptentwickler

Mehr

Multimedia im Netz Wintersemester 2012/13

Multimedia im Netz Wintersemester 2012/13 Multimedia im Netz Wintersemester 2012/13 Übung 10 Ludwig-Maximilians-Universität München Multimedia im Netz WS 2012/13 - Übung 10-1 Lösung zu Übungsblatt 08 Ludwig-Maximilians-Universität München Multimedia

Mehr

Praktikum. SEP: Java-Programmierung SS Trie: Häufige Fragen. Thomas Bunk und Karlheinz Friedberger

Praktikum. SEP: Java-Programmierung SS Trie: Häufige Fragen. Thomas Bunk und Karlheinz Friedberger Praktikum SEP: Java-Programmierung SS 2019 Trie: Häufige Fragen Thomas Bunk und Karlheinz Friedberger 1 / 12 Ab wann kann abgegeben werden? Seit Beginn der Aufgabe. Es können beliebig viele Abgaben hochgeladen

Mehr

Moderne Web- Anwendungen mit

Moderne Web- Anwendungen mit Moderne Web- Anwendungen mit Oliver.Damm@akquinet.de September 2013 Web- Anwendungen mit Vaadin???

Mehr

Puppet. Modul Guide. Alexander Pacnik Karlsruhe,

Puppet. Modul Guide. Alexander Pacnik Karlsruhe, Puppet Modul Guide Alexander Pacnik Karlsruhe, 23.08.2013 Environment Struktur... worum es in diesem Vortrag geht. Environment-Struktur Repository-Struktur Modulprinzipien Modulestruktur Daten & Code Test

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

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

Architektur Pattern. Organisation und Interaktion zwischen den Komponenten

Architektur Pattern. Organisation und Interaktion zwischen den Komponenten Architektur Pattern Organisation und Interaktion zwischen den Komponenten Einteilung Es gibt verschiedenste Architekturmuster welche abhängig vom Projektumfang und -umfeld sinnvoll verwendet werden: Model-View-Controller,

Mehr

Objektorientiertes Programmieren II

Objektorientiertes Programmieren II Objektorientiertes Programmieren II Symbolische Programmiersprache. Benjamin Roth Folien von Annemarie Friedrich Wintersemester 2017/2018 Centrum für Informations- und Sprachverarbeitung LMU München 1

Mehr

Echte Cross-Plattform Anwendungen mit Angular 2 in Action!

Echte Cross-Plattform Anwendungen mit Angular 2 in Action! Browser, Mobile & Desktop Echte Cross-Plattform Anwendungen mit Angular 2 in Action! Christian Weyer Thinktecture AG @christianweyer 2 Christian Weyer Mitgründer & Principal Consultant Thinktecture AG

Mehr

Skill Profil & Projekt CV. Version Datum 05. April 2018

Skill Profil & Projekt CV. Version Datum 05. April 2018 Skill Profil & Projekt CV Version 2018.4 Datum 05. April 2018 SkPr REACTIVE SYSTEMS KONTAKT POSTANSCHRIFT BÜROANSCHRIFT Ingo Grebe +49 (176) 225 179 15 Tulpenweg 17 Christian-Kremp-Straße 11 Dipl.-Inform.

Mehr

- Architektur & Integration -

- Architektur & Integration - - Architektur & Integration - ADF und BI Integration Jürgen Menge Sales Consultant, Oracle Deutschland B.V. & Co. KG E-Mail: juergen.menge@oracle.com +++ Bitte wählen Sie sich in die Telefonkonferenz entweder

Mehr

Dominik Doerner, Jonathan Bechtle ESCde

Dominik Doerner, Jonathan Bechtle ESCde Dominik Doerner, Jonathan Bechtle ESCde Kursübersicht Einführung in ASP.NET Core 01 Was ist ASP.NET Core? 02 Startup und Middleware 03 Wie funktioniert MVC? 04 Debugging und Logging Trainer Dominik Doerner

Mehr