Hey I'm Steven · .NET Developer in Zurich, Switzerland.
You want to know more about me? Checkout my LinkedIn or Github.
You want more of my content, then checkout: Tips&Tricks.
Also this blog is open source on Github

Recent Posts

Logging Source Code Generators

Since .NET6 we have the possibility to define an easy way of logging common statements:

Meet Compile-time logging source generators. This article will show why we have them and how to use them. Of course a smaller benchmark will also follow.

Read the whole article

Git-Flow, GitHub-Flow, Gitlab-Flow and Trunk Based Development explained

There are plenty of models how to do your branching in git. All of them are viable approaches with their respective pros and cons. So let's have a look at those branching strategies and where they are great and where they are falling off.

So let's deep dive into: Git-Flow, GitHub-Flow, Gitlab-Flow, Trunk Based Development.

Read the whole article

Preview image blogpost

Blazor Client - Loading Screen

If you are using Blazor WebAssembly aka client-side Blazor you are faced with an issue: The .NET runtime including your assemblies has to be downloaded first. We are taking about some megabytes as the initial load.

Depending on the connection of your client there is a time where basically nothing happens. The default template just has a simple "Loading..." text. So let's change that.

Read the whole article

Preview image blogpost
  • 11/07/2022
  • 14 min

How does git work?

In this blog post I will show you how git works. Or better we will see how git works on the example of some of the commands.

Are you confused about origin, remote, rebase or merge? You see stuff like origin/main and origin main and just question marks appear? Say no more!

Read the whole article

Preview image blogpost

Abstract class vs interface

In C# we have abstract classes and we also have interfaces. Both seem very similiar but they are fundamentally different concepts.

Therefore let's discover what the difference is, what the overlap is and when to use what.

Read the whole article

Preview image blogpost

SOLID Principles in C#

SOLID principles is one of those words/phrases you hear so often about. Also one of those things you most often get asked by your recruiter in a technical assessment.

So let us dissect why Uncle Bob formulated them and how they contribute to "Clean Code".

Read the whole article

Preview image blogpost
  • 30/06/2022
  • 4 min

C# vNext - What could come

C# 11 is in front of our doorsteps. A lot of the features are know, so let us have a look at the future. We will discover some features which could be included in C# 12 or later.

Base for this is the csharplang-repository. So let's discover brand new features and how they could help us in our everyday life. We will see things like:

  • Compound assignments in object initializer
  • Discriminated unions
  • semi-auto properties aka field
  • ConfigureAwait(false) on assembly level
  • Exponentiation operator

Read the whole article

Preview image blogpost

Central nuget store for your UNO Platform App

With the newest UNO Platform update to .NET 6 we can leverage some cool things to simplify our dependency management. We combine .NET 6 with the new feature called Directory.Build.props to make that work.

Read the whole article

Preview image blogpost

When does Blazor (not) render?

This blog post whill shed some light on when Blazor renders your content. Of course there are obvious candidates, but there are also some things to be aware about.

Read the whole article

Preview image blogpost

Wrap Event based functions into awaitable Tasks - Meet TaskCompletionSource

You might have code where an object offers you an event to notify you when a specific operation is done. But event's can be tricky to use, especially when you want to have a continuous flow in your application.

That is where TaskCompletionSource comes into play. We can "transform" an event based function into something which is await-able from the outside world via the await keyword.

Read the whole article

An error has occurred. This application may no longer respond until reloaded. Reload x