SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
1gedoplan.de
Expertenkreis Java, 08.11.2018, GEDOPLAN
Dominik Mathmann, GEDOPLAN GmbH
2gedoplan.de
Web Techniken, Allgemein
Webanwendung, serverseitig
Programmlogik auf dem Server
Aufbau der UI auf dem Server
z.B. JSF
Webanwendung, clientseitig
Programmlogik (teilweise) auf dem Client
Aufbau der UI auf dem Client (JavaScript)
z.B. Angular
3gedoplan.de
Java Server Faces (JSF)
Server Browser
<ul>
<li>JSF</li>
<li>Vaadin</li>
<li>Angular</li>
</ul>
Anzahl: 3
<ul>
<ui:repeat value="#{demoBeanJSF.details}"
var="entry">
<li>#{entry}</li>
</ui:repeat>
</ul>
Anzahl: #{demoBeanJSF.details.size()}
4gedoplan.de
JSF – Vorgehensweise / Besonderheiten
Model und Controller als Bindeglied zu Views
CDI Beans
Diverse Scopes verfügbar (Request, Session, Flow, View, …)
Einbindung des Backends mittels Injektion
Serverseitige View Definition
Facelets (austauschbar)
Bindung an Model-Controller mit EL
Request / Rendering partiell mit AJAX
5gedoplan.de
Angular
["JSF","Vaadin","Angular"]
Server Browser
<ul>
<li *ngFor="let entry of entries">
{{entry}}
</li>
</ul>
Anzahl: {{entries.length}}
<ul>
<li *ngFor="let entry of entries">
{{entry}}
</li>
</ul>
Anzahl: {{entries.length}}
Angular
6gedoplan.de
Angular – Vorgehensweise / Besonderheiten
Model-View-Controller im Browser
JavaScript / TypeScript
Einbindung des Backends über Schnittstelle (REST)
Clientseitiges Rendering auf Basis statischer HTML-Seiten
dynamische Manipulation durch Controller-Bindings
7gedoplan.de
Pro Contra
Angular
8gedoplan.de
Angular / JavaScript – Pro
Performance
weniger Server-Ressourcen
kleinere Requests
9gedoplan.de
Angular / JavaScript – Pro
Flexibilität
Trennung UI und Backend
Entwicklung
Laufzeit
Releasemanagement
REST als Schnittstelle
UIs
Mobile
Fremdsysteme
10gedoplan.de
Angular / JavaScript – Pro
Webtechnologien
keine Abstraktion
JavaScript Frameworks und Tools
Utils
UI Komponenten
11gedoplan.de
Angular / JavaScript – Contra
Lernkurve
Webtechnologien
HTML, CSS
TypeScript
"JavaScript Welt"
Angular …
12gedoplan.de
Angular / JavaScript – Contra
kein Standard
Versions Kompatibilität
Support
Schnittstelle
JSON - Mapping
13gedoplan.de
Pro Contra
Performance Lernkurve
Webtechnologien Webtechnologien
Flexibilität JSON
kein Standard
Angular
14gedoplan.de
15gedoplan.de
16gedoplan.de
Angular + JEE (Jackson) – "Stolpersteine"
LazyLoading
jackson-datatype-hibernate
DTOs
Bidirektionale Verbindungen
@JsonIgnore / @JsonView
@JsonIdentityInfo
@JsonManagedReference
DTOs
17gedoplan.de
Angular + JEE - Tooling
Angular-CLI (angular/angular-cli )
Kommandozeilen-Tool für die Generierung von:
Projekten
Komponenten
Services
….
einheitliche Projektstruktur
ANGULAR
18gedoplan.de
Angular + JEE - Tooling
JSON-Server ( typicode/json-server )
REST-API für
Entwicklungszeit
Testing
Konfiguration über einface JSON-Strucktur
GET, POST, PUT, DELETE ….
ANGULAR
19gedoplan.de
Angular + JEE - Tooling
Jackson (FasterXML/jackson )
JSON-Verarbeitung
Serialisierung / Deserialisierung
Annotation
Converter
…
Alternativen:
google/gson
JSON-B (JSR 367)
JAVA
20gedoplan.de
Angular + JEE - Tooling
MapStruct
Entity -> DTO-Mapper
Annotation Processor
Implementierung über Interfaces
Alternativen:
ModelMapper
Mapping API
Dozer
Mapping über XML
JAVA
21gedoplan.de
Angular + JEE - Tooling
Swagger (swagger-maven-plugin )
API Tooling
Dokumentation
Design
Testing
Code-Generierung (z.B. TypeScript Models)
Alternativen:
typescript-generator-maven-plugin
Generierung von TypeScript Models
JAVA
22gedoplan.de
Demos
Github
https://github.com/GEDOPLAN/ekj-angular-www
Hinweise bzgl. Demos betreffend der gezeigten Themen / Tools /
Utils, siehe ReadMe.md

Weitere ähnliche Inhalte

Ähnlich wie Angular und JEE - Wieso, weshalb, warum (und wie)?

Enterprise UI
Enterprise UIEnterprise UI
Enterprise UIgedoplan
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
 
Wieviel client braucht das web
Wieviel client braucht das webWieviel client braucht das web
Wieviel client braucht das webgedoplan
 
Jax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and FlashJax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and Flashpersillie
 
.NET Summit 2016 München: Angular 2 mit TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScript.NET Summit 2016 München: Angular 2 mit TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScriptManfred Steyer
 
Ivory Soa Suite
Ivory Soa SuiteIvory Soa Suite
Ivory Soa SuitePredrag61
 
Informatik Seminar Groovy Und Grails
Informatik Seminar Groovy Und GrailsInformatik Seminar Groovy Und Grails
Informatik Seminar Groovy Und Grailsschmichri
 
2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt socDaniel Fisher
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1Manfred Steyer
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungEduard Hildebrandt
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der CloudTorsten Fink
 
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?Marc Müller
 
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5kkramhoeft
 
DWX 2016 - Monitoring 2.0 - Monitoring 2.0: Alles im Lot?
DWX 2016 - Monitoring 2.0 - Monitoring 2.0: Alles im Lot?DWX 2016 - Monitoring 2.0 - Monitoring 2.0: Alles im Lot?
DWX 2016 - Monitoring 2.0 - Monitoring 2.0: Alles im Lot?Marc Müller
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftChristian Drumm
 

Ähnlich wie Angular und JEE - Wieso, weshalb, warum (und wie)? (20)

Enterprise UI
Enterprise UIEnterprise UI
Enterprise UI
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
 
Wieviel client braucht das web
Wieviel client braucht das webWieviel client braucht das web
Wieviel client braucht das web
 
Jax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and FlashJax07 - Mixing Ajax Swing and Flash
Jax07 - Mixing Ajax Swing and Flash
 
.NET Summit 2016 München: Angular 2 mit TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScript.NET Summit 2016 München: Angular 2 mit TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScript
 
AngularJs
AngularJsAngularJs
AngularJs
 
Ivory Soa Suite
Ivory Soa SuiteIvory Soa Suite
Ivory Soa Suite
 
Informatik Seminar Groovy Und Grails
Informatik Seminar Groovy Und GrailsInformatik Seminar Groovy Und Grails
Informatik Seminar Groovy Und Grails
 
2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc
 
AngularJS
AngularJSAngularJS
AngularJS
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
Workshop Vue js
Workshop Vue jsWorkshop Vue js
Workshop Vue js
 
GWT
GWTGWT
GWT
 
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
Karlsruher Entwicklertag 2016 - Monitoring 2.0: Alles im Lot?
 
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5
 
DWX 2016 - Monitoring 2.0 - Monitoring 2.0: Alles im Lot?
DWX 2016 - Monitoring 2.0 - Monitoring 2.0: Alles im Lot?DWX 2016 - Monitoring 2.0 - Monitoring 2.0: Alles im Lot?
DWX 2016 - Monitoring 2.0 - Monitoring 2.0: Alles im Lot?
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
 

Angular und JEE - Wieso, weshalb, warum (und wie)?