Digests » 227

sponsor

HelloSign API: Everything IT Requires and Developers Love

We know that no API can write your code for you (unfortunately), but ours comes close. With in depth documentation, customizable features, amazing support, and a dashboard that makes your code easy to debug, you won't find an eSignature product with an easier path to implementation. Or thats more liked by your team. Try it free today!

.net

The danger of TaskCompletionSource class

This class is very useful not only when you need to make an old code to look modern and fancy. TaskCompletionSource<T> is used in a variety of cases when an operation's lifetime is controlled manually, for instance, in different communication protocols. So, let's mimic one of them.

How Microsoft rewrote its C# compiler in C# and made it open source

Roslyn is the codename-that-stuck for the open-source compiler for C# and Visual Basic.NET. Here’s how it started in the deepest darkness of last decade’s corporate Microsoft, and became an open source, cross-platform, public language engine for all things C# (and VB, which I’ll take as a given for the rest of this piece).

A History of .NET Runtimes

It got me thinking, how many .NET Runtimes are there? I put together my own list, then enlisted a crack team of highly-paid researchers, a.k.a my twitter followers

C# Journey into struct equality comparison, deep dive

By default, struct can't be compared by ==, but class can. Basically, in order to be able to compare struct with == operator you must explicitly implement it. Which is a no-brainer at all, but the approach you actually choose to do it may be tricky. I want to show you several ways of doing it and describe pros and cons of each approach.

Middle Ground between Server and Workstation GC

A long time ago I wrote about using Workstation GC on server applications when you have many instances of your server app running on the same machine. By default Server GC will treat the process as owning the machine so it uses all CPUs to do the GC work. More and more folks find themselves in a situation where they might have a few active instances of their server application running on the same machine. You could of course run each instance inside a container (a job object on Windows or cgroups on Linux) to limit resources that way. For example, if you limit the job object to only use 10 out of 40 CPUs on the machine, naturally Server GC will only create 10 GC threads.