I recommend anyone looking at .NET core to use Java for now. The languages are basically mutually intelligible and while java is a bit less syntactically pleasant it gets the job done, and the tools are quite mature. Arguably Java has, and has had, 99% of what .NET core is trying to achieve for many years. Using the right frameworks it's incredibly fast, multiplatform, and even serverless.
The biggest problem that you run into with Java is too much choice, the opposite of the .NET framework. Deciding which tools to use takes a fair amount of research because the ecosystem is so massive. I've been cutting my teeth on it for the past couple months and I would say go with these frameworks:
DropWizard Play Jersey
running on Grizzly, Jetty, or Netty depending on which project supports what.
Database-wise for ORM nothing beats Hibernate. Entity framework is basically a slower more confusing copy of hibernate, coming from someone that's used both. The main advantage of EF is LINQ which Hibernate can't quite match in theory but usually does in practice(the queries generated by HQL tend to be a lot less....stupid)
This has been my experience with MS in general. Initially everything seems great and you feel productive, but as soon as you decide to go off-road you lose all that you gained and more with buggy and poorly documented software.
EF isn't great, but there are a ton of ORM frameworks that blow NHibernate out of the water. These days I'm just using Dapper for most projects. It's small, fast and very easy to use.
The above opinion is based on my experience developing a Kafka client library (I use OSX / VS Code) for Confluent https://github.com/confluentinc/confluent-kafka-dotnet as well as a substantial side project.
I was always partial to Pythons Flask as well
What did we run into? Tons of brokenness. Inability to use C# libs was the biggest problem, if you're trying to make anything significant you're going to have to roll your own everything. Java is the safest bet for large projects, I've never run into any issues finding a quality library to do anything. This is coming from a guy that's been a career C# dev for years and wishes he could defect to Java.
I've been using .Net for over 10 years now, and just launched a new product on Asp.Net Web API + SQL Server + Orleans.
Whatever Microsoft says, .Net Core is not at all ready. The tooling and libraries are still undergoing major (and breaking) changes. You'll spend more time debugging it than your own code.
I (foolishly) tried to adopt it a year ago (RC), and again six months ago (1.0). Each time I ran into a critical bugs and omissions.
.Net Core will probably, eventually be great. It isn't yet.
Edit: Here's an example of the fun you'll have, published today: https://blogs.msdn.microsoft.com/dotnet/2017/01/30/announcin...