If you’ve built applications using ASP.NET Core then you’ve most likely used the built-in dependency injection container from Microsoft.Extensions.DependencyInjection. This package provides an implementation of the corresponding abstractions found in Microsoft.Extensions.DependencyInjection.Abstractions. In the previous post, we learned about the IServiceCollection, including how service registrations are converted to ServiceDescriptors and added to the collection. We’ll continue learning about […]
Category: .NET

Additional HTTP, Sockets, DNS and TLS Telemetry in .NET 5
In this post, I describe and demonstrate some of the new telemetry and event counters from sources such as HTTP, Sockets, DNS and TLS.

.NET Internals: System.Threading.Channels – UnboundedChannel<T> Part 3
In the previous post in this mini-series, we learned how items are written to an UnboundedChannel<T>. We explored the UnboundedChannel<T> type itself in the first blog post. Today I will complete the series and focus on how items are read from an UnboundedChannel using its UnboundedChannelReader. Other Posts in Series Part 1 – UnboundedChannel<T> Part […]

.NET Internals: System.Threading.Channels – UnboundedChannel<T> Part 2
In part 1 of this mini-series, we began to explore the internals of the UnboundedChannel<T> type, learning about its class hierarchy and how an instance can be instantiated. In this post, we’ll continue our journey and focus on how items are written to an UnboundedChannel. Other Posts in Series Part 1 – UnboundedChannel<T> Part 2 […]

.NET Internals: System.Threading.Channels – UnboundedChannel<T> (Part 1)
In a previous post, I introduced System.Threading.Channels and explained how it can be used. At a high-level, it provides a modern, optimised asynchronous API for in-process publisher/subscriber patterns. Since that post, Stephen Toub, Partner Software Engineer at Microsoft, has published an in-depth blog post which shows how the feature is designed and covers common consumption […]