Hacker News new | ask | show | jobs
by throwawasiudy 3430 days ago
I agree 100%. My last place was a 100% MS shop and while .NET core seems like it will be great we ran into endless problems, specifically with compatibility and existing libraries. We couldn't get anything more than a toy project to work.

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)

2 comments

>I agree 100%. My last place was a 100% MS shop and while .NET core seems like it will be great we ran into endless problems, specifically with compatibility and existing libraries. We couldn't get anything more than a toy project to work.

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.

Standard .Net is acutally one the most well documented and stable platforms I've used.
I agree .net standard is super well documented.
What? Just use .NET standard, no need to switch to a wholly new language (unless of course if your initial goal was some kind of cross-platform requirement).

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.

Dapper isn't an ORM in the same sense as EF and nHibernate, it's not bad, just different. There is plenty of room for both on a project.