Dotnet logo

.NET Tools

Essential productivity kit for .NET and game developers

.NET Annotated Monthly | September 2020

This month in computing history: The first instance of a computer bug was found in September 1947. It’s called a bug because when this happened, it was a moth that wandered into the machine and caused the glitch. This is possibly now the world’s most famous insect. Check out the log report in the link with the moth taped to the paper. It was called a log report because they didn’t have bug reports yet. And it was on paper – they were made from actual logs at that time.

.NET Annotated Monthly newsletter by JetBrains!

.NET news

.NET tutorials and tips

Lessons learned after migrating 25+ projects to .NET Core – Thomas Ardal has migrated 25 projects, and is sharing his breadth of experience. Read this post to find out all the traps that you may encounter when migrating.

C# 9.0: Init-only Properties – Create Immutable Properties Without Constructor Boilerplate – Thomas Claudius Huber demonstrates some much needed information on init-only properties in C# 9, and how to create immutable properties.

Constrained Open Generics Support Merged in .NET Core DI Container – Jimmy Bogard lays out some details about generics in .NET Core.

Producer/consumer pipelines with System.Threading.Channels – Maarten Balliauw answers the question "Is there an async producer/consumer collection these days in .NET?" and shows how to use one.

Implementing and Debugging Custom MSBuild Tasks – All about builds. It’s Matthias’ specialty (being the person who built Nuke). So check out this post about implementing and debugging custom MSBuild tasks.

Dispose Resources Asynchronously With IAsyncDisposable – Async! It’s the way to go nowadays. In almost all scenarios, it makes software work better. So read this post where Khalid Abuhakmeh shows us how to create disposable resources asynchronously.

What is Azure SQL Edge – Hosted by Anna Hoffman & Marisa Brasile. Vasiya Krishnan introduces Azure SQL Edge and its features that make it the optimized database engine for IoT Scenarios.

Aspect Oriented Programming Using proxies in ASP.NET Core – AOP is useful, though it hasn’t caught much traction in the .NET community. So here’s a chance to look into it. Post by Zanid Haytam.

xUnit Unit Test Razor Pages – Bradley Wells instructs us in how to unit test Razor Pages with the popular xUnit testing framework.

Should you unit-test API/MVC controllers in ASP.NET Core? – This often asked but important question is answered by Andrew Lock. And of course, the answer is "it depends", but on what? Read on to find out more!

Tree Structure in EF Core: How to configure a self-referencing table and use it. – Dmitry Pavlov shows how to make tree structures in EF core via self-referencing tables. This is a great resource, with clean and concise code.

Getting Started with GraphQL in ASP.NET Core – Complete Guide – Were you looking at the myriad of GraphQL options out there and overwhelmed by them? If so, then let Mukesh Murugan explain how you can get started using it.

Write OnClick Events in C# using Blazor and Eliminate JavaScript – David Grace says that we no longer need JavaScript, at least in OnClick events, in this Blazor tutorial.

How to deploy ASP.NET Blazor WebAssembly to GitHub Pages – Read this great tutorial by Niels Swimberghe showing how to not just deploy, but deploy Blazor WebAssembly to GitHub Pages.

SQL Server – Discovering the HierarchyId data type – The vast majority of .NET developers have used SQL databases at some point, but many aren’t even aware of the hierarchyid type! In this post Gérald Barré breaks it down and shows all the great ways you can manage hierarchical data.

Build a REST API in .NET Core – This tutorial on how to create a REST API in .NET Core Camilo Reyes is an excellent starting point for those building APIs. REST assured, there is great information here.

ASP.NET Core Web API – Repository Pattern – The Repository Pattern is one of the most popular and useful patterns when interacting with a backend data store. If you want to make one with ASP.NET Core, then check out this great post by Marinko Spasojevic.

Online Multiplayer Word Game With Blazor and SignalR on .NetCore – Play around and write your own game based on this fun post Bora Kaşmer demonstrating game creation with Blazor and SignalR!

Events, community and culture

Things only programmers will say
File that under "Things only programmers say".

The tweet asks, Genuine question: As someone trying to become a Software Engineer, is it worth my time to invest in learning touch typing? If so, how many wpm is considered enough to be decent? Currently I am at about 33 wpm.

I think that typing in and of itself doesn’t necessarily help you program. However, if you can type well enough so that you can focus on the problem solving and thinking that software development requires, that frees up some mental energy that would have gone to the keyboard. It makes it easier if your fingers can go as fast as you can think, but it’s not about the fingers themselves. Readers, what do you think?

Random interesting and cool stuff

How To Better Navigate Remote Performance Reviews – Working as a remote employee? Kat Boogaard reviews performance reviews! See how you can make the most of that next performance review.

Noteworthy new Surface Duo app sample – Gadgets are fun! The Surface Duo is a new gadget by Microsoft, with mixed reviews, particularly when considering the price tag. But this super cool note app from Kristen Halper urges me to want one. What about you?

And finally…

Here’s a chance to catch up on JetBrains news that you might have missed…


Blog posts:

Check out this fantastic offer! CODE Magazine is offering a free subscription to JetBrains customers!

If you have any interesting or useful .NET or general programming news to share via .NET Annotated Monthly, leave a comment here, email me at, or drop me a message via Twitter.

Subscribe to .NET Annotated!

image description