Rob Janssen

All | Unread | Read

Generating IDs in C#, 'safely' and efficiently

Recently I needed to find an efficient algorithm for generating unique IDs in a highly concurrent and low latency component. After looking at several options I settled for the algorithm used by the Kestrel HTTP server.

Strategy Pattern – Head First Design Patterns – ep 1

This series examines every design pattern in the book "Head First: Design Patterns". This time we look at Strategy Pattern.? Get the book Mentioned: Sandi Metz – Nothing is Something

Asynchronous programming

If you have any I/O-bound needs (such as requesting data from a network or accessing a database), you'll want to utilize asynchronous programming. You could also have CPU-bound code, such as performing an expensive calculation, which is also a good scenario for writing async code.

Async/Await - Best Practices in Asynchronous Programming

These days there’s a wealth of information about the new async and await support in the Microsoft .NET Framework 4.5. This article is intended as a “second step” in learning asynchronous programming; I assume that you’ve read at least one introductory article about it.

A little trick when working with ConcurrentDictionary

ConcurentDictionary has one specific feature: in some cases it may not behave exactly as you'd expect. Here is a small example.

Eyes wide open - Correct Caching is always hard

In my last post I talked about Caching and some of the stuff I've been doing to cache the results of a VERY expensive call to the backend that hosts my podcast. As always, the comments are better than the post! Thanks to you, Dear Reader.

Making ConcurrentDictionary GetOrAdd thread safe using Lazy

I was browsing the ASP.NET Core MVC GitHub repo the other day, checking out the new 1.1.0 Preview 1 code, when I spotted a usage of ConcurrentDictionary that I thought was interesting.

Dependency Injection revisited - Mark Seemann

Over the last decade, Dependency Injection has moved from obscurity into the realm of something that every library and framework must address. During the same time, functional programming has gathered much interest. Dependency Injection is an attempt to control non-deterministic behaviour, but the w

Mod and Remainder are not the Same

Get ready, here comes some fringe pedantry that could very well be the difference in an interview, or the thing that saves you from hours of chasing a production bug!

Task, Async Await, ValueTask, IValueTaskSource and how to keep your sanity in modern .NET world

C# and .NET went through a lot of changes in recent years. First, came Task Parallel Library. Later, async-await made everyone adding Async suffix to their methods and putting a lot of awaits.

This Read-It-Later-list is just that, bookmarks of stuff I intend to read or have read. I do not necessarily agree with opinions or statements in the bookmarked articles.

This list is compiled from my Pocket list.