Dotnet core a year later

19 Jan 2018

We asked the other developers in December 2016 what they wanted to work on. They said that they wanted to work on dotnet core and MVC. I was a bit hesitant at first since that would imply using something relatively new to base the business on. A coworker at the time did inject that he was using it in production already.

It has been an interesting journey. From json + xproj to a new csproj format. The nice thing about the new format is that it includes packages in the csproj. The file format has been cleaned up (so that we no longer need to use albacore scripts to detect csproj issues. Using NuGet is less painful compared to previously (I feel less of a need for paket but NuGet still have catching up to do). Though, there is still a bit of weirdness that make it difficult for people. I’m helping a dev get into Mvc 2. Due to lots of different blogs about Mvc, Mvc Core 1, Mvc Core 2. This is similar to what we see on for instance differences between different minor versions of Angular. As the documentation for Mvc on microsoft sites is quite good, it becomes less of an issue than for NG.

We have used EF Core 1-2. I’ve previously used NHibernate. EF does not perform as well as NHibernate but is easier to start out with. I wish we had used Dapper since it’s easier to get performant and having to write SQL discourages the use of more complicated schemas. EF migrations doesn’t feel as elegant as some of the other migration frameworks, it does however work well enough due to the fact that it can be used on the command line.

What has worked well has been to use Swashbuckle.AspNetCore. It helps with keeping documentation in sync and cuts down on the need for hand written API cruft.

A lot of the API’s have been improved in core. Default dependency injection and logging abstraction, et.c. has made the C# code more pleasant to work with. That the configuration is using dependency injection instead of global values makes it easier to reason about configuration.



Do you want to send a comment or give me a hint about any issues with a blog post: Open up an issue on GitHub.

Do you want to fix an error or add a comment published on the blog? You can do a fork of this post and do a pull request on github.