Several years ago I started building a bigger project as a Software as a Service application. Beside all the different technical requirements, being able to work directly on my MacBook Pro without starting virtual machines, was a big wish. At this time a tool chain based on Node.js, Express, NPM and WebStorm was available. Over the years building backend services with Node.js, and this means with JavaScript, felt like rapid prototyping. Getting started is very fast and lightweight but when the project grows compile time features like a strong type system are missing. Year over year I did reviews how to get esp. the beauty of C# and the powerful compiler infrastructure of .NET back.
In the last month Microsoft released Visual Studio for Mac and with it the investments into .NET Core increased. Building backend services in Visual Studio for Mac based on .NET Core and ASP.NET Core including the out of the box support in Azure App Services is definitely what I was looking for.
Because of that I decided to give it a spin. After a couple weeks working with the framework I can say it was the right decision because of the following key reasons:
- Full managed and type safe environment based on the powerful C# compiler
- Broad ecosystem for components similar to NPM via NuGet
- Ability to convert runtime errors in compile time errors
- Hosting the results on Linux, Docker Containers or just Azure App Services
- ASP.NET Core comes with out of the box easy to use Dependency Injection system
- ASP.NET Core learned and steeled the best things from the node + express chain
- C# Attribute and Extension-Classes are unbeatable to beatify your code
And last but not least everything works well on my MacBook Pro without the need of a single virtual machines – Thanks Microsoft for letting me keep the platform I love!