One email per week, 5 links.
Do you want to keep up to date with the latest trends of Microsoft .NET development?
But keeping up to date with all the blogs, podcasts, and articles is time consuming so why not let someone else curate the content for you?
With our weekly newsletter you will get 5 top stories hand-picked into your inbox every Monday with topic ranging from C#, .NET, and CLR, the world of web and cloud with ASP.NET, Blazor, and Azure and app development with WPF, Xamarin, and UWP.
Escape the distractions of social media and own your focus. Check out the latest issue and subscribe!
Open Source Uno Platform lets you build single-codebase applications for Windows, WebAssembly, Linux, macOS, iOS and Android. Fluent, Material and Cupertino design included in-the-box. Try now via 3 min step-by-step tutorial.
this week's favorite
This is the first article in a series about building a .NET application using a modular monolith architecture. The aim of this architecture is to keep the simplicity of a monolith design while providing a better structure so that as your application grows it doesn’t turn into what is known as “a big ball of mud” (see the original article which describes a big ball of mud as “haphazardly structured, sprawling, sloppy, duct-tape-and-baling-wire, spaghetti-code jungle”).
Writing code is hard. Writing asynchronous code is even harder. Luckily C# provides us with the `async` and `await` keywords to make asynchronous programming a little easier. This is the first of a series of posts in which I'll be going over writing asynchronous code in C# as well as a bit into the internals of how it works under the hood.
ASP.NET Core MVC uses number of built-in filters like Authorization, Resource, Action, Exception, and Result filters. Filters help you to remove repetitive code by injecting them at certain stages of the request pipeline.
In this article, we are going to discuss pattern matching, introduced in C# 7.0 and improved in C#8.0 and C# 9.0. This article can be very useful for beginners, intermediates, and professionals.
In my previous post I showed how to create a Simple Moving Average calculator. The implementation was very simple, so it was conceptually easy to follow, but had a few limitations. In this post, I address some of those limitations to make the implementation thread-safe and to separate the updating of the average from the fetching of the current value.
Stream is hiring in Boulder and Amsterdam. Apply now!