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 cowoker 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). 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 asp.net Mvc 2. Due to lots of different blogs about asp.net Mvc, asp.net Mvc Core 1, asp.net 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 asp.net 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.
Comments or errors? Fork this post and do a pull request on github