Cloud-first? Mobile-first? You know what that means: Async-first! Is the world of async/await passing you by? No need to worry with this catchup session! Join async guru Stephen Cleary for a down-to-earth introduction to the new async and await keywords. No previous expertise required! We'll cover just what you need to know as a developer: where async helps (and where it doesn't), how it works (without unnecessary details), and best practices to get you started on your async adventure!
Asynchronous code using the new async and await keywords seems to be everywhere these days! These keywords are transforming the way programs are written. Yet many developers feel unsure about Async programming. This webcast covers: How the async and await keywords really work; How to think about asynchronous code; The difference between asynchrony and parallelism; Common mistakes when learning asynchronous programming; Fixing Async code smells with CodeIt.Right.
Asynchronous code is pretty straightforward if you don't have any existing code to maintain, but it can be much more difficult when working in a brownfield scenario! This article discusses a variety of approaches to introducing asynchronous code while maintaining backwards compatibility.
An exhaustive look at unit testing async
methods. This article covers the basics of unit testing async
methods, mocking techniques, and special considerations. Also includes an overview of the current status of common unit testing frameworks (MSTest, xUnit, and NUnit) as well as some helper libraries (e.g., Moq, Microsoft Fakes), with a look at future directions.
Most async
tutorials assume a client-side application. But does async
have a role to play on the server? The answer is most definitely "yes!" This article examines async
on ASP.NET applications: the benefits of async
, how it works in an ASP.NET environment, and common pitfalls to avoid.
An introduction to asynchronous, parallel, reactive, and dataflow programming; and a reference for common solutions.
The third in a series on dealing with async
and await
in Model-View-ViewModel applications. Considers common patterns for asynchronous services: how async
interacts with inheritance, factories, unit testing, lazy initialization, and construction.
The second in a series on dealing with async
and await
in Model-View-ViewModel applications. Examines several patterns for representing asynchronous operations as MVVM commands (ICommand
).
The first in a series on dealing with async
and await
in Model-View-ViewModel applications. Introduces a pattern for data-binding to the results of asynchronous operations.
A "second step" for learning async
; a good followup read after an async
tutorial. Provides guidelines for avoiding common pitfalls, and includes several cheat sheets and resources for async
development.
A thorough look at the SynchronizationContext
type, starting with some history and concluding with how it is used by various components (including components in development such as the compiler support for async
and await
).
A brief description of the Boost.TypeTraits
library, which uses advanced template techniques to determine (and manipulate) type properties at compile-time. This was the first article on template metaprogramming; the TypeTraits
library provided the groundwork for more advanced template metaprogramming. Co-authored this article with John Maddock.