beyond primzahlen: asynchrone und parallele programmierung in der praxis

29
eyond Primzahlen: synchrone und parallele rogrammierung in der Praxis man Schacherl | softaware gmbh | @rschacherl

Upload: rschacherl

Post on 28-May-2015

204 views

Category:

Technology


2 download

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

Page 1: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

Beyond Primzahlen:Asynchrone und parallele Programmierung in der Praxis

Roman Schacherl | softaware gmbh | @rschacherl

Page 2: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

© FOCUS.DE / REUTERS

Page 3: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

Roman Schacherl

Page 4: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis
Page 5: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis
Page 6: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis
Page 7: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis
Page 8: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

async

awaitTask Parallel Library

TaskTaskCompletionSource

Die Welt ist asynchron.Cloud

Services

Page 9: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

CLOUDAuf allen Ebenen…

WEBPC

Page 10: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

Agenda

async / awaitBest Practice / Bad Practice

PraxisbeispieleWPF / MVVMASP.NET MVCWindows Azure

Page 11: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis
Page 12: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis
Page 13: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

async / await

async / await verwaltet die Asynchronizität und erleichtert die Verwendung.Es werden aber keine automatischen Threads erzeugt!

Page 14: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

async void

async void ist fire-and-forget!

Macht nur in Ausnahmefällen Sinn, zB bei Eventhandlern

Page 15: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

async & synchr. Methoden

Beispiel © Stephen Toub, „Async‘ing Your Way to a Successful App with .NET“, //build 2013

Page 16: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

async & synchr. Methoden

Beispiel © Stephen Toub, „Async‘ing Your Way to a Successful App with .NET“, //build 2013

Page 17: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

async & synchr. Methoden

Synchrone (CPU-intensive) Methoden (wenn möglich) nicht in einer Async-Methode „verstecken“!

Page 18: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

TaskCompletionSource

TaskCompletionSource<T> ermöglicht die Abbildung von Events auf Tasks

Page 19: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

SZENARIO 1

WPF / MVVM-Anwendungmit async / await-Unterstützung

Page 20: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

WPF / MVVM

Async-Methoden in Entity Framework 6

CancellationToken in Async-Methoden vorsehen, falls die Operation abgebrochen werden kann

Page 21: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

SZENARIO 2

ASP.NET MVC-Anwendungmit async / await-Unterstützung

Page 22: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

Async Actions

Vermeiden von Skalierungsproblemen Ressourcen sparen

Serverseitiges Timeout mit CancellationToken

Page 23: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

SZENARIO 3

ASP.NET MVC-Anwendungmit vielen Requests eines Users

Page 24: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

SessionState

Falls eine Web-Anwendung Sessions einsetzt, werden standardmäßig keine Actions eines Benutzers parallel ausgeführt

SessionState-Attribut schafft Abhilfe

Page 25: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

SZENARIO 4

Windows Azure Worker RoleAbarbeitung einer Queue

Page 26: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

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.

Page 27: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

SZENARIO 5

Traffic Manager:Parallelisierung im Großen

Page 28: Beyond Primzahlen: Asynchrone und parallele Programmierung in der Praxis

CLOUDAuf allen Ebenen…

WEBPC