Versioning made easier with Nerdbank.GitVersioning
Versioning is next to naming one of the hardest parts in software development. First to get it right (well is there a right or wrong?) and second to make your customers understand what the version bump means. Thanks to SemVer2 this has become a lot easier and a lot more understandable. But still many of us who use CI Build Systems like Azure DevOps use the default build number generated by the system and also do not update the version of the compiled output. If you would check the properties of the assembly a lot will have version 220.127.116.11.
Use NodaTime to replace C# DateTime
It is hard to get your date and times right
As a developer you have probably had many discussions in your teams all around date and times. In this blog post I wanted to share some insights of how to make sure you get your time zones right in a globally distributed system. In my opinion it is one of the hardest tasks to get right, also due to the cloud, you do not know where your servers will be hosted and their local time settings. Also you might not know from where the client will access your application and you want to present the date and time in his local time zone. If you want to show the correct timestamp to the user according to his time zone setting, the C# DateTime construct would be enough for most of the scenarios, but it does not supply you with a nice and understandable interface. If you are interested in more details, you should read the following blog post by Jon Skeet (https://codeblog.jonskeet.uk/2019/03/27/storing-utc-is-not-a-silver-bullet/).
Using Vue.js as a drop in component in your Razor Pages
In this blog post I wanted to share how I am using Vue.js as a "drop in" component on a razor page. By drop in component I mean that I use Vue.js only for client side model binding on certain pages. This is similar to how we used to use Knockout.JS in ASP.NET MVC application. I will not explain what Vue.js is or what it does behind the scenes, I will show how I used Vue.js to create a paged list.