
WebView2, a browser for WinForms in .NET 5
In .NET 5, WinForms got a WebView2 control for displaying web pages.. even ones we create on-the-fly while the app’s running. Let’s kick the tires.
In .NET 5, WinForms got a WebView2 control for displaying web pages.. even ones we create on-the-fly while the app’s running. Let’s kick the tires.
In .NET 5, WinForms got a major upgrade to the MessageBox called TaskDialog. It’s way more flexible and powerful - let’s check it out!
Async code isn’t always intuitive, but practicing helps. Let’s take a look at Async, CancellationToken, and IProgress, in a few short examples.
When sending notifications in a WinForms app, a MessageBox is the only way to go… or is it? Let’s get creative and see what else we might do.
Writing async code whenever possible is great, but how do we do it when we’re stuck with legacy (and very synchronous) code?
When it comes to finding a bug in an app, few things beat a good trail of logs. And for writing those logs, few tools beat NLog in simplicity or flexibility. I rarely appreciate just how flexible it is though, so it’s worth spending a little time taking a closer look.
A big challenge with any language is trying to group and organize things sensibly, and returning multiple values is no exception. Let’s check out Tuples and deconstruction, and see how they can help us out.
Sometimes the safer way to “update” old code is to leave it be and paint over it with a newer construct. Let’s see how to modernize a BackgroundWorker using Tasks and TaskCompletionSource.
Named arguments in C#.. they’ve been around a long time, but does anyone use them? Let’s check out another feature that helps tame wild code.
The longer I write software, the more I come to appreciate clear code. String interpolation in C# is just one more way to help us do that.