asynchronität und parallelisierungin businessanwendungen
TRANSCRIPT
Roman Schacherl | softaware gmbh
@rschacherl
Asynchronität und Parallelisierung
in Businessanwendungen
Roman SchacherlGründer & Geschäftsführer
softaware gmbh
@rschacherl
softaware [email protected]
www.softaware.at
Holzhandel Pharmasektor Personaldienstleister Motorsport
Schulbereich Therapie Erdölindustrie Rettungswesen
Finanzsektor Musik Kantine Musik Erdölindustrie Therapie
Personaldienstleister Holzhandel Pharmasektor Motorsport
Pharmasektor Schulbereich Musik Personaldienstleister
Erdölindustrie Holzhandel Finanzsektor Holzhandel
Pharmasektor Personaldienstleister Motorsport Schulbereich
Therapie Erdölindustrie Rettungswesen Finanzsektor Musik
Kantine Musik Erdölindustrie Therapie Personaldienstleister
Holzhandel Pharmasektor Motorsport Pharma
Windows Azure C# Microsoft .NET SQL Server WPF Silverlight
ASP.NET Windows Store Apps C# Windows Phone JavaScript
Microsoft PixelSense Typescript WCF Webservices HTML
Silverlight Windows Store Apps Windows Phone ASP.NET
Microsoft PixelSense Windows Azure WPF Webservices
Typescript ASP.NET Azure HTML JavaScript Windows
Windows Azure C# Microsoft .NET SQL Server WPF Silverlight
ASP.NET Windows Store Apps C# Windows Phone JavaScript
Microsoft PixelSense Typescript WCF Webservices HTML
Silverlight Windows Store Apps WPF ASP.NET Windows Phone
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“!
WPF / MVVM
• Async / Await in EF 6
• CancellationToken in Async-Methoden
vorsehen, falls die Operation
abgebrochen werden kann
Async Actions
• Vermeiden von Skalierungsproblemen
Ressourcen sparen
• Timeout mit CancellationToken
SessionState
• Falls eine Web-Anwendung Sessions
einsetzt, werden standardmäßig keine
Actions eines Users parallel ausgeführt
• SessionState-Attribut schafft Abhilfe,
falls Performance (und keine Session)
benötigt wird
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.
Global Windows Azure Bootcamp2014 March 29th 2014
Austria: Linz
http://bit.ly/gwab_at
Germany: Bad Homburg
http://bit.ly/gwab_de