SlideShare ist ein Scribd-Unternehmen logo
Beyond Primzahlen:
Asynchrone und parallele
Programmierung in der Praxis
Roman Schacherl | softaware gmbh | @rschacherl
© FOCUS.DE / REUTERS
Roman Schacherl
async
await
Task Parallel Library
Task
TaskCompletionSource
Die Welt ist asynchron.
Cloud
Services
Auf allen Ebenen…
Agenda
async / await
Best Practice / Bad Practice
Praxisbeispiele
WPF / MVVM
ASP.NET MVC
Windows Azure
async / await
async / await verwaltet die Asynchronizität und
erleichtert die Verwendung.
Es werden aber keine automatischen Threads
erzeugt!
async void
async void ist fire-and-forget!
Macht nur in Ausnahmefällen Sinn,
zB bei Eventhandlern
async & synchr. Methoden
Beispiel © Stephen Toub, „Async‘ing Your Way to a Successful App with .NET“, //build 2013
async & synchr. Methoden
Beispiel © Stephen Toub, „Async‘ing Your Way to a Successful App with .NET“, //build 2013
async & synchr. Methoden
Synchrone (CPU-intensive) Methoden (wenn möglich)
nicht in einer Async-Methode „verstecken“!
TaskCompletionSource
TaskCompletionSource<T> ermöglicht die Abbildung
von Events auf Tasks
SZENARIO 1
WPF / MVVM-Anwendung
mit async / await-Unterstützung
WPF / MVVM
Async-Methoden in Entity Framework 6
CancellationToken in Async-Methoden vorsehen, falls
die Operation abgebrochen werden kann
SZENARIO 2
ASP.NET MVC-Anwendung
mit async / await-Unterstützung
Async Actions
Vermeiden von Skalierungsproblemen
 Ressourcen sparen
Serverseitiges Timeout mit CancellationToken
SZENARIO 3
ASP.NET MVC-Anwendung
mit vielen Requests eines Users
SessionState
Falls eine Web-Anwendung Sessions einsetzt, werden
standardmäßig keine Actions eines Benutzers parallel
ausgeführt
SessionState-Attribut schafft Abhilfe
SZENARIO 4
Windows Azure Worker Role
Abarbeitung einer Queue
Worker + Queue
Pattern für die Abarbeitung von Arbeitspaketen
z.B. Import aus externen Systemen
Leichte (auch automatisierte) Skalierbarkeit in
Windows Azure
Standard-Features
Dequeue-Count, Try/Retry, etc.
SZENARIO 5
Traffic Manager:
Parallelisierung im Großen
Auf allen Ebenen…
Fragen?
Roman Schacherl
roman.schacherl@softaware.at
@rschacherl softaware gmbh
Ziegelweg 2
4481 Asten, Austria
office@softaware.at
www.softaware.at
facebook.com/softawaregmbh

Weitere ähnliche Inhalte

Ähnlich wie Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

Ähnlich wie Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis (12)

Asynchronität und Parallelisierung in Businessanwendungen
Asynchronität und Parallelisierungin BusinessanwendungenAsynchronität und Parallelisierungin Businessanwendungen
Asynchronität und Parallelisierung in Businessanwendungen
 
Continuous Delivery with ansible
Continuous Delivery with ansibleContinuous Delivery with ansible
Continuous Delivery with ansible
 
Erfahrungen bei der Integration von„OpenCms for UCS“ auf OpenStack - Univenti...
Erfahrungen bei der Integration von„OpenCms for UCS“ auf OpenStack - Univenti...Erfahrungen bei der Integration von„OpenCms for UCS“ auf OpenStack - Univenti...
Erfahrungen bei der Integration von„OpenCms for UCS“ auf OpenStack - Univenti...
 
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwaltenDevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten
DevDay 2016: Sascha Askani - Cloud-Umgebungen mit Terraform verwalten
 
Cloud Native Computing
Cloud Native ComputingCloud Native Computing
Cloud Native Computing
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
 
Hybride Schönheit - Das Java/JavaScript Webframeworks Echo
Hybride Schönheit - Das Java/JavaScript Webframeworks EchoHybride Schönheit - Das Java/JavaScript Webframeworks Echo
Hybride Schönheit - Das Java/JavaScript Webframeworks Echo
 
Cloud-native Apps 2.0
Cloud-native Apps 2.0Cloud-native Apps 2.0
Cloud-native Apps 2.0
 
Wie nutzen wir Cloud-Infrastruktur @ VSHN.ch
Wie nutzen wir Cloud-Infrastruktur @ VSHN.chWie nutzen wir Cloud-Infrastruktur @ VSHN.ch
Wie nutzen wir Cloud-Infrastruktur @ VSHN.ch
 
Trivadis TechEvent 2016 APEX Applikationen auf Wolke 7 von Andrej Gorodetsky ...
Trivadis TechEvent 2016 APEX Applikationen auf Wolke 7 von Andrej Gorodetsky ...Trivadis TechEvent 2016 APEX Applikationen auf Wolke 7 von Andrej Gorodetsky ...
Trivadis TechEvent 2016 APEX Applikationen auf Wolke 7 von Andrej Gorodetsky ...
 
Docker: Container Management (Webinar vom 09.04.2015)
Docker: Container Management (Webinar vom 09.04.2015)Docker: Container Management (Webinar vom 09.04.2015)
Docker: Container Management (Webinar vom 09.04.2015)
 
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
 

Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis