Segment is an API-first analytics solution that empowers 15,000+ startups to scale their data infrastructure. Collect data from web, server, mobile, and cloud apps; send it to 300+ data destinations. See if you qualify for our startup program. Get $50K in Segment Credits w/ C# Digest.
this week's favorite
In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. In addition, design patterns allow developers to communicate using well-known, well understood names for software interactions.
In this post I look at some of the ways you can misuse System.Random for generating random numbers, specifically around thread safety. I start by showing how to use the built-in thread-safe Random generator in .NET 6. I then step back to previous .NET Core implementations, before the thread-safe Random generator was added, and show how to add your own. Finally, we take one more step back to .NET Framework, and look at he issues that arise there.
In this blog post I look at a few things I wish were different in C# and .NET. I consider this an anti-post in the sense that I actually believe there is an unsound obsession in programming circles with counting code lines or characters as exemplified in my own blog post World’s Smallest C# Program (featuring N).
We heard from you that direct dependencies are easy to track, but that you struggle with tracking transitive dependencies. We want to make that easier for the day-to-day management of your NuGet packages in Visual Studio.
Durable Entities are a special type of Azure Function that allow you to implement stateful objects in a serverless environment. They make it easy to introduce stateful components to your app without needing to manually persist data to external storage, so you can focus on your business logic. We’ll demonstrate their power with a real-life example in the last section.