This presentation will showcase the magic of asynchronous programming in C# 5. We'll start with the basics: exactly what asynchronous programming is, how it differs from multithreading, and why it's become so important in today's cloud-connected world. We'll then set up scenarios to demonstrate the headache that asynchronous programming creates today - and how it's solved so elegantly with the new async and await keywords. They'll be plenty of practical examples - from making a responsive UI to writing high-concurrency apps. The session will be structured as an overview followed by a deep-dive with more advanced examples and under-the-covers discussions. We'll also describe how this technology fits in with other asynchronous offerings such as the Reactive Framework, and how you can plan for it (or even use it) today.