Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.
Here are the things that caught my eye recently in .NET. I’d love to hear what you found most interesting this week. Let me know in the comments or on Twitter.
IHostingEnvironment vs IHostEnvironment – obsolete types in .NET Core 3.0
In this post I describe the differences between various ASP.NET Core types that have been marked as obsolete in .NET Core 3.0. I describe why things have changed, where the replacement types are, and when you should use them.
Async demystified – Karel Zikmund
Do you struggle to understand async/await in C#? How it works and why? I did. So I asked the best – the author of async, Stephen Toub. This talk is summary of the most interesting insights from him that helped me and my colleagues on CoreFX team to finally truly understand the magic behind async/await.
The talk will cover: History and evolution of asynchronous programming patterns in C# and their problems. Leading to async/await and demonstrating the “why” behind its design choices.
Touch on the “how” it works behind the scenes.
Reasons for customizing and hyper-optimizing async for high-performance areas (like Networking stack).
Touch on related building block – ThreadPool.
Hands on sync-over-async pattern and associated problems. Workarounds in your code if you hit it. Potential solutions in future .NET versions.
Pulumi 💜 .NET Core
Today we are excited to announce the Preview of .NET Core support for all of your modern infrastructure as code needs. This means you can create, deploy, and manage your infrastructure, on any cloud, using your favorite .NET language, including C#, F#, and VB.NET.
Memory management and garbage collection (GC) in ASP.NET Core
Memory management is complex, even in a managed framework like .NET. Analyzing and understanding memory issues can be challenging. This article:
Was motivated by many memory leak and GC not working issues. Most of these issues were caused by not understanding how memory consumption works in .NET Core, or not understanding how it’s measured.
Demonstrates problematic memory use, and suggests alternative approaches.