Thread pool starvation and the power of async/await

The first time I was ever introduced to the problem of thread pool starvation was by the great Sj√łkki Gummi Gau, a close colleague of mine and an amazing developer. He called me up and asked me to guess how long a program would take to run. It was a very simple program; it just Read more about Thread pool starvation and the power of async/await[…]

Mocking dependencies for more maintainable unit tests

Using a mocking framework in your unit tests will make your unit tests much shorter, much easier to comprehend, and much easier to maintain. In short, a good mocking framework is an absolutely must have tool in any developers toolkit. In this article, I will discuss what a mocking framework is and why it is Read more about Mocking dependencies for more maintainable unit tests[…]

Dependency Injection: Frameworks

As I mentioned in a previous article, there are multiple dependency injection frameworks our there for .net framework. Here, we will be talking a bit about the most popular ones and show very simple examples of how to get started with them and how to use them. This is not an exhaustive list! There are Read more about Dependency Injection: Frameworks[…]

Exceptions: Catch everything, handle nothing

When writing code, there is a certain feeling of importance with regards to one’s code. It should never stop. It should always execute to the end. It should not cast any exceptions, since my code can handle everything. Remember that a developers motto is “Everything is possible”. This leads to one of the biggest anti-patterns Read more about Exceptions: Catch everything, handle nothing[…]

Dependency Injection: An introduction

What is dependency injection? Dependency injection is often confused with inversion of control. Inversion of control is a design pattern in which your classes delegate the responsibility of creating and disposing of any dependencies it might have. Dependency injection is a design pattern that supports inversion of control, in which a class requires any dependencies Read more about Dependency Injection: An introduction[…]