We've hopped on the AspNetCore train a few weeks ago and its been a blast ever since. Just having working Swagger API documentation generation OOTB has been worth it for us.<p>It has the perfect storm of REST API & SPA web app hosting framework features in my mind:<p>- Annotation and convention based controllers. Binding of headers, body, and query params is so damn easy now.<p>- Annotation-based Swagger API documentation. It just works if you follow the directions. No need to define metadata classes or any other nonsense. Response types, content types, headers, required properties, etc - its all annotations and its all easy.<p>- Much better hosting of static content. We love how easy it is to build out a RiotJS SPA web app and backing RESTful JSON API service in one quick stack.<p>- Flexibility with HTTP hosting: HttpSys, IIS, Kestrel, Roll Your Own, etc.<p>- Pipeline and extension items are very easy to write now. We actually found it easier and faster to just hand-roll our token authentication pipeline item than to configure an existing provider.<p>- DI is some intersection of magical and simple. Microsoft's built-in DI provider kicks ass.<p>- Leverages open-source libraries where obviously appropriate by default. E.g. Newtonsoft.Json as it's the best JSON serializer ever written for .NET (or any language for that matter IMO).<p>- Can host on Windows directly through full 4.6.x framework for access to DirectoryServices and Drawing or host on top of dot net core for cross platform (sacrificing windows-specific capabilities).<p>- Windows service hosting features built-in (used to have to resort to TopShelf).<p>I had to hack in a few things that we liked from the Nancy project (e.g. automatic URLACL setup for HttpSys hosting), but these were very minor QOL items.<p>I think that every .NET/C# shop should take a VERY HARD look at this stack for any new development. Keep in mind that even though cross platform is marketed as a large part of this, you can reap 100% of the benefits on full 4.6 framework if you still need to operate in that domain.
Lots of good points, but one thing still keeps me off this particular train:<p>.NET does not (yet?) have the same level of availability of high quality free libraries that other major platforms do. Things like image processing, database DSLs, etc. I think this is in part because Microsoft provides such a comprehensive stack that it kind of discourages the kind of diversity that leads to the proliferation of libraries.
.NET documentation used to be top quality, but not anymore.
Quality of MSDN articles has declined a lot, going from full, explicit documentation with examples, to just placeholders in many cases.<p>PS: criticism of MS or .NET in HN even in reasonable terms is guaranteed -6 karma. But I have karma to spend.
One of the things myself and others maintain about Python's Flask is that it's very easy to get up and running. I think ASP.NET Core really has nailed that same sort of streamlined approach. It's less confusing where things plug in and are extendable vs ASP.NET MVC (which I've had the fortune of using since version 3). The <i>idioms</i> make a lot more sense than they used to -- and it's great to see ASP.NET Core idioms expand to other .NET web technologies (e.g. Giraffe).
.NET Core feels very much simplified and has a lot of really wonderful Front End templates, specifically JavaScriptServices for their React + Redux, Vue, and Angular starter projects. They feel very much like a Node and React + Redux project but with a C# backend and TypeScript. I've found it to be really enjoyable having a type checker, server side rendering, webpack, and a great deployment story. All out of the box.<p>You can see an example of something similar here: <a href="https://aspnet-core.azurewebsites.net/" rel="nofollow">https://aspnet-core.azurewebsites.net/</a> and <a href="https://github.com/kriasoft/aspnet-starter-kit" rel="nofollow">https://github.com/kriasoft/aspnet-starter-kit</a>
Check out Botwin for a sleeker HTTP experience on top of ASP.NET Core pipeline <a href="https://github.com/jchannon/Botwin" rel="nofollow">https://github.com/jchannon/Botwin</a>
I'm a junior dev and I have been meaning to master a framework really well. I really like the concept of .net core, I have decided to stick with it. But the documentation is scattered, it doesn't feel consistent.<p>I wish they made that documentation as pleasant and well put together as Django's documentation.<p>As a junior dev good docs are the biggest thing for me.
* .NET Standard is a set of APIs that all .NET platforms have to implement. This unifies the .NET platforms and prevents future fragmentation.<p>* .NET Standard 2.0 is implemented by .NET Framework, .NET Core, and Xamarin. For .NET Core, this added many of the existing APIs that have been requested.<p>This seems to support the narrative that windows is really fickle in what is 'the thing we are definitely going to support from now on'.
The .net core platform is miles better than the old .net platform, so for everyone used to the old one, that's a major improvement. But it's still not good enough platform compared to many others and not interesting enough in others cases like compared to elixir.
I'm a long-time Java programmer, but I have to admit that .NET Core development is fun.<p>I like it best on RHEL, or better yet on OpenShift for instant Kubernetes goodness.<p>The Java guys better up their game, pronto. .NET Core 2.0 is capable, miles ahead of 1.0. If 3.0 jumps that much, it'll be a compelling platform.
You should definitely like if you want telemetry auto-reported to Microsoft for every app you make! It doesn't get any better, folks. You don't even have to consent for it. See <a href="https://news.ycombinator.com/item?id=15439001" rel="nofollow">https://news.ycombinator.com/item?id=15439001</a>