SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
26.09.2016
1
Single Page Applications neu gedacht:
Redux in Angular 2 mit @ngrx/store
Manfred Steyer
ManfredSteyer
About me …
• Manfred Steyer
• SOFTWAREarchitekt.at
• Trainer & Consultant
• GDE & MVP
• Focus: Angular
Page  2
ManfredSteyer
26.09.2016
2
Ziel
• Ideen hinter Redux mit Angular 2 und @ngrx/store kennen lernen
• Redux anhand eines Beispiels in Aktion sehen
Nicht-Ziel
• Einführung in Angular 2
26.09.2016
3
Inhalt
Motivation
Actions
Reducer
Store
Immutables
DEMO
Demo App
26.09.2016
4
Motivation
App
Home Booking Boarding
26.09.2016
5
App
Home Booking Boarding
FlightService PassengerService BoardingService
App
Home Booking Boarding
FlightService PassengerService BoardingService
 Verworren
 Schwer Nachvollziehbar
 Keine Struktur
26.09.2016
6
Redux
• Redux hilft, komplexe UIs beherrschbar zu machen
• Ursprung: React
App
Home Booking Boarding
Store
State
… boarding
… …
Boarding
Reducer
State State StateAction Action Action
Action
…
Reducer
Action
Single Immutable State Tree
…
26.09.2016
7
App
Home Booking Boarding
Store
State
… boarding
… …
Boarding
Reducer
State State StateAction Action Action
Action
…
Reducer
Action
Single Immutable State Tree
…
 Eine einzige „Quelle der
Wahrheit“
 Einfach zu speichern
 Einfach zu debuggen
 Undo/Redo
 Immutables und Observables
 Performance
 Lesen: Direkt
 Schreiben: Via Reducer
Action
26.09.2016
8
Teile einer Action
Type
Payload
{
type: 'BOOKINGS_LOADED',
payload: [
{ flightId: 7, passengerId: 17, …},
…
]
}
Reducer
26.09.2016
9
Reducer
• Bringt Aktion zur Ausführung
• Pure Funktion
• Eingabe bestimmen Ausgaben
• Keine Seiteneffekte
• Zustandslos
• Einfach zu testen
Reducer
(currentStateTree, action) => newStateTree
26.09.2016
10
Store
Store
Verwaltet State Tree
Gewährt lesenden Zugriff (Pub/Sub über Observables)
Gewährt schreibenden Zugriff über Aktionen
26.09.2016
11
Store
dispatch(action)
select(tree => tree.borarding.statistics): Observable
Immutables?
26.09.2016
12
Immutables
• Unveränderbare Objekte
• Wenn sich repräsentierte Daten ändern:
Neues Objekt erzeugen
• Man kann einfach herausfinden, ob sich etwas geändert hat
• oldObject == newObject
• Mit oder ohne Bibliotheken möglich (wie immutable.js)
Immutables
const ONE_MINUTE = 1000 * 60;
let oldFlights = this.flights;
let oldFlight = oldFlights[0]; // Flight to change!
let oldFlightDate = new Date(oldFlight.datum); // Date to change
26.09.2016
13
Immutables
let newFlightDate = new Date(oldFlightDate.getTime() + ONE_MINUTE * 15);
let newFlight = {
id: oldFlight.id,
abflugort: oldFlight.abflugort,
zielort: oldFlight.zielort,
datum: newFlightDate.toISOString()
};
let newFlights = [
newFlight,
...oldFlights.slice(1, this.fluege.length-1)
];
this.flights = newFlights;
Checking for Change
console.debug("Array: " + (oldFlights == newFlights)); // false
console.debug("#0: " + (oldFlights[0] == newFlights[0])); // false
console.debug("#1: " + (oldFlights[1] == newFlights[1])); // true
26.09.2016
14
App
Home Booking Boarding
Store
State
… boarding
… …
Boarding
Reducer
State State StateAction Action Action
Action
…
Reducer
Action
Single Immutable State Tree
…
DEMO
26.09.2016
15
DEMO
UNDO/REDO
26.09.2016
16
Undo/Redo
State0
Undo/Redo
State1
State0
Undo Stack
26.09.2016
17
Undo/Redo
State1
State0
Undo Stack
State2
Undo/Redo
State1
State0
Undo Stack
State3
State2
26.09.2016
18
Undo/Redo
State1
State0
Undo Stack
State3
State2
UNDO
Undo/Redo
State1
State0
Undo Stack
State3
State2
UNDO
26.09.2016
19
Undo/Redo
State1
State0
Undo Stack
State3
State2
UNDO
Redo Stack
Undo/Redo
State1
State0
Undo Stack
State2
State3
Redo Stack
26.09.2016
20
Undo/Redo
State1
State0
Undo Stack
State2
State3
Redo Stack
REDO
Undo/Redo
State1
State0
Undo Stack
State3
State2
26.09.2016
21
DEMO
Fazit
• Zentraler Zustand vereinfacht Abgleich zwischen Komponenten
• Immutables: Performance und Nachvollziehbarkeit
• Observables: Performance
• Actions: Nachvollziehbarkeit, Undo/Redo
• Reducer: Testbarkeit
• Tools für „Zeitreise“
• Kritik: Immutability braucht ein wenig Übung!
• Aber: Ansätze machen auch isoliert voneinander Sinn!
26.09.2016
22
Kontakt
[mail] manfred.steyer@SOFTWAREarchitekt.at
[web] SOFTWAREarchitekt.at
[twitter] ManfredSteyer

Weitere ähnliche Inhalte

Was ist angesagt?

Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Christian Janz
 
Migrationspfade für Angular 2
Migrationspfade für Angular 2Migrationspfade für Angular 2
Migrationspfade für Angular 2Manfred Steyer
 
Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive
Wiederverwendbare Komponenten mit Angular 2.0 – Deep DiveWiederverwendbare Komponenten mit Angular 2.0 – Deep Dive
Wiederverwendbare Komponenten mit Angular 2.0 – Deep DiveManfred Steyer
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Manfred Steyer
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebSebastian Springer
 
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten KoebkeOSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten KoebkeNETWAYS
 

Was ist angesagt? (7)

Angular 2 Slides
Angular 2 SlidesAngular 2 Slides
Angular 2 Slides
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
 
Migrationspfade für Angular 2
Migrationspfade für Angular 2Migrationspfade für Angular 2
Migrationspfade für Angular 2
 
Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive
Wiederverwendbare Komponenten mit Angular 2.0 – Deep DiveWiederverwendbare Komponenten mit Angular 2.0 – Deep Dive
Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive
 
Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1Web APIs mit ASP.NET Core 1
Web APIs mit ASP.NET Core 1
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
 
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten KoebkeOSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
 

Andere mochten auch

Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2Manfred Steyer
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkManfred Steyer
 
Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Manfred Steyer
 
Get that Corner Office with Angular 2 and Electron
Get that Corner Office with Angular 2 and ElectronGet that Corner Office with Angular 2 and Electron
Get that Corner Office with Angular 2 and ElectronLukas Ruebbelke
 
Performance Optimization In Angular 2
Performance Optimization In Angular 2Performance Optimization In Angular 2
Performance Optimization In Angular 2Eyal Vardi
 
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Ontico
 
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15MoscowJS
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptStas Vyschepan
 
шардинг на коленке
шардинг на коленкешардинг на коленке
шардинг на коленкеAlexandre Kalendarev
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Ontico
 
Controlling Component Chaos with NuGet and Versioning
Controlling Component Chaos with NuGet and VersioningControlling Component Chaos with NuGet and Versioning
Controlling Component Chaos with NuGet and VersioningPerforce
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Ontico
 
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...Ontico
 
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Ontico
 
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Ontico
 
Как сравнить и выбрать хостинг-провайдера или О чем умалчивают маркетологи / ...
Как сравнить и выбрать хостинг-провайдера или О чем умалчивают маркетологи / ...Как сравнить и выбрать хостинг-провайдера или О чем умалчивают маркетологи / ...
Как сравнить и выбрать хостинг-провайдера или О чем умалчивают маркетологи / ...Ontico
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in RussianOleg Kachan
 

Andere mochten auch (20)

Progressive web apps with Angular 2
Progressive web apps with Angular 2Progressive web apps with Angular 2
Progressive web apps with Angular 2
 
Angular 2 Components
Angular 2 ComponentsAngular 2 Components
Angular 2 Components
 
Datengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity FrameworkDatengetriebene Web APIs mit Entity Framework
Datengetriebene Web APIs mit Entity Framework
 
Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2Databinding and Performance-Tuning in Angular 2
Databinding and Performance-Tuning in Angular 2
 
Get that Corner Office with Angular 2 and Electron
Get that Corner Office with Angular 2 and ElectronGet that Corner Office with Angular 2 and Electron
Get that Corner Office with Angular 2 and Electron
 
Performance Optimization In Angular 2
Performance Optimization In Angular 2Performance Optimization In Angular 2
Performance Optimization In Angular 2
 
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
 
Where to test first?
Where to test first?Where to test first?
Where to test first?
 
Quality assurance
Quality assuranceQuality assurance
Quality assurance
 
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScript
 
шардинг на коленке
шардинг на коленкешардинг на коленке
шардинг на коленке
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
Controlling Component Chaos with NuGet and Versioning
Controlling Component Chaos with NuGet and VersioningControlling Component Chaos with NuGet and Versioning
Controlling Component Chaos with NuGet and Versioning
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
 
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...
Организация конвейера автоматизации тестирования / Алексей Петров (Mail.ru Gr...
 
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
 
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
 
Как сравнить и выбрать хостинг-провайдера или О чем умалчивают маркетологи / ...
Как сравнить и выбрать хостинг-провайдера или О чем умалчивают маркетологи / ...Как сравнить и выбрать хостинг-провайдера или О чем умалчивают маркетологи / ...
Как сравнить и выбрать хостинг-провайдера или О чем умалчивают маркетологи / ...
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in Russian
 

Ähnlich wie Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store

Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJSSebastian Springer
 
JavaServer Faces 2.2 (Herbstcampus 2013)
JavaServer Faces 2.2 (Herbstcampus 2013)JavaServer Faces 2.2 (Herbstcampus 2013)
JavaServer Faces 2.2 (Herbstcampus 2013)Michael Kurz
 
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtWarum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtSebastian Springer
 
Angular von 0 auf 100
Angular von 0 auf 100Angular von 0 auf 100
Angular von 0 auf 100Yvette Teiken
 
Powerful mostly unknown Javascript-Features
Powerful mostly unknown Javascript-FeaturesPowerful mostly unknown Javascript-Features
Powerful mostly unknown Javascript-FeaturesSascha Hameister
 
Varianten des "Observer Pattern"
Varianten des "Observer Pattern"Varianten des "Observer Pattern"
Varianten des "Observer Pattern"Thomas Mentzel
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptRalf Schwoebel
 
W-Jax 2015: QS-Maßnahmen bei Continuous Delivery
W-Jax 2015: QS-Maßnahmen bei Continuous DeliveryW-Jax 2015: QS-Maßnahmen bei Continuous Delivery
W-Jax 2015: QS-Maßnahmen bei Continuous DeliveryStephan Kaps
 
Let's talk about Java EE
Let's talk about Java EELet's talk about Java EE
Let's talk about Java EEAndreas König
 

Ähnlich wie Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store (13)

JavaScript Performance
JavaScript PerformanceJavaScript Performance
JavaScript Performance
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
JavaServer Faces 2.2 (Herbstcampus 2013)
JavaServer Faces 2.2 (Herbstcampus 2013)JavaServer Faces 2.2 (Herbstcampus 2013)
JavaServer Faces 2.2 (Herbstcampus 2013)
 
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtWarum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser macht
 
Angular von 0 auf 100
Angular von 0 auf 100Angular von 0 auf 100
Angular von 0 auf 100
 
Inversion of flow
Inversion of flowInversion of flow
Inversion of flow
 
Windows 8.1 UI für Entwickler
Windows 8.1 UI für EntwicklerWindows 8.1 UI für Entwickler
Windows 8.1 UI für Entwickler
 
GWT: Eintauchen in MVP und Internationalisierung
GWT: Eintauchen in MVP und InternationalisierungGWT: Eintauchen in MVP und Internationalisierung
GWT: Eintauchen in MVP und Internationalisierung
 
Powerful mostly unknown Javascript-Features
Powerful mostly unknown Javascript-FeaturesPowerful mostly unknown Javascript-Features
Powerful mostly unknown Javascript-Features
 
Varianten des "Observer Pattern"
Varianten des "Observer Pattern"Varianten des "Observer Pattern"
Varianten des "Observer Pattern"
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 
W-Jax 2015: QS-Maßnahmen bei Continuous Delivery
W-Jax 2015: QS-Maßnahmen bei Continuous DeliveryW-Jax 2015: QS-Maßnahmen bei Continuous Delivery
W-Jax 2015: QS-Maßnahmen bei Continuous Delivery
 
Let's talk about Java EE
Let's talk about Java EELet's talk about Java EE
Let's talk about Java EE
 

Mehr von Manfred Steyer

Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Manfred Steyer
 
The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")Manfred Steyer
 
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectModern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectManfred Steyer
 
Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Manfred Steyer
 
ASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsManfred Steyer
 
EF Core 1: News features and changes
EF Core 1: News features and changesEF Core 1: News features and changes
EF Core 1: News features and changesManfred Steyer
 
Angular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonAngular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonManfred Steyer
 
Angular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonAngular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonManfred Steyer
 
ASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonManfred Steyer
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Manfred Steyer
 
Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Manfred Steyer
 
Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co.	Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co. Manfred Steyer
 
Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co.	Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co. Manfred Steyer
 
Komponenten mit Angular 2, Deep Dive
Komponenten mit Angular 2, Deep DiveKomponenten mit Angular 2, Deep Dive
Komponenten mit Angular 2, Deep DiveManfred Steyer
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Manfred Steyer
 
Microservice-Architekturen
Microservice-ArchitekturenMicroservice-Architekturen
Microservice-ArchitekturenManfred Steyer
 

Mehr von Manfred Steyer (19)

Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
 
The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")The newst new Router for Angular 2 ("Version 3")
The newst new Router for Angular 2 ("Version 3")
 
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId ConnectModern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
 
Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2Der neueste neue Router (Version 3) für Angular 2
Der neueste neue Router (Version 3) für Angular 2
 
Webpack
WebpackWebpack
Webpack
 
ASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-DevsASP.NET Core 1 for MVC- and WebAPI-Devs
ASP.NET Core 1 for MVC- and WebAPI-Devs
 
EF Core 1: News features and changes
EF Core 1: News features and changesEF Core 1: News features and changes
EF Core 1: News features and changes
 
Angular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 LondonAngular 2: Migration - SSD 2016 London
Angular 2: Migration - SSD 2016 London
 
Angular 2 - SSD 2016 London
Angular 2 - SSD 2016 LondonAngular 2 - SSD 2016 London
Angular 2 - SSD 2016 London
 
ASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 LondonASP.NET Web API Deep Dive - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 London
 
Was bringt Angular 2?
Was bringt Angular 2?Was bringt Angular 2?
Was bringt Angular 2?
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1
 
Angular 2: Routing
Angular 2: RoutingAngular 2: Routing
Angular 2: Routing
 
Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2Moderne Web-Anwendungen mit Angular 2
Moderne Web-Anwendungen mit Angular 2
 
Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co.	Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co.
 
Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co.	Datenbasierte Services mit Entity Framework und Co.
Datenbasierte Services mit Entity Framework und Co.
 
Komponenten mit Angular 2, Deep Dive
Komponenten mit Angular 2, Deep DiveKomponenten mit Angular 2, Deep Dive
Komponenten mit Angular 2, Deep Dive
 
Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1Web APIs mit ASP.NET MVC Core 1
Web APIs mit ASP.NET MVC Core 1
 
Microservice-Architekturen
Microservice-ArchitekturenMicroservice-Architekturen
Microservice-Architekturen
 

Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store