beyond primzahlen: asynchrone und parallele programmierung in der praxis
DESCRIPTION
Ist Ihnen schon aufgefallen, dass alle Samples zum Thema Asynchronität und Parallelisierung Primzahlen berechnen? Viele Anwendungen haben aber ganz anders gelagerte Probleme – zum Beispiel datenorientierte Businessanwendungen. Roman Schacherl zeigt, wie asynchrone und parallele Programmierung Ihren Alltag in WPF, Web und Azure verändern kann.TRANSCRIPT
Beyond Primzahlen:Asynchrone und parallele Programmierung in der Praxis
Roman Schacherl | softaware gmbh | @rschacherl
© FOCUS.DE / REUTERS
Roman Schacherl
async
awaitTask Parallel Library
TaskTaskCompletionSource
Die Welt ist asynchron.Cloud
Services
CLOUDAuf allen Ebenen…
WEBPC
Agenda
async / awaitBest Practice / Bad Practice
PraxisbeispieleWPF / MVVMASP.NET MVCWindows 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-Anwendungmit 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-Anwendungmit async / await-Unterstützung
Async Actions
Vermeiden von Skalierungsproblemen Ressourcen sparen
Serverseitiges Timeout mit CancellationToken
SZENARIO 3
ASP.NET MVC-Anwendungmit 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 RoleAbarbeitung 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-FeaturesDequeue-Count, Try/Retry, etc.
SZENARIO 5
Traffic Manager:Parallelisierung im Großen
CLOUDAuf allen Ebenen…
WEBPC
Fragen?
Roman [email protected]@rschacherl
softaware gmbhZiegelweg 24481 Asten, Austria
[email protected] www.softaware.atfacebook.com/softawaregmbh