4 ms·
I am concerned that .NET Core has put .NET on a very dark path. It feels like the developers have built this from a theoretical programming paradise point of v
by Renner1 10y ago
I am concerned that .NET Core has put .NET on a very dark path.
It feels like the developers have built this from a theoretical programming paradise point of view: Everything's "just" a handler in a pipeline. All dependencies are now "micro". Nothing has a hard dependency on anything else.
The result of all this is a framework that might be beautiful at it's core, but becomes gradually more prickly as you get closer to the development surface. It feels like their answer to usability is "Oh, we'll just throw together a metapackage for that." It scares me that they think they can wrap up all the complexity they've created in a way that won't lead to the developer having to dig through the .NET source to make stuff work.
It's worrisome to see how brittle the system is at this late stage. It shows that this has been built from the inside-out rather than outside-in with a focus on usability. All the ugly stuff that should be buried inside the framework has been pushed out to the edge of the system for the developer to deal with. Watch any of the recent ASP.NET streams to see numerous illustrations of this whenever they open up a Core project.
ASP.NET used to be a reprieve from all the hideousness of other tools like NPM and Node. Now I'm seeing all the same problems in ASP.NET. Have you tried deploying a DNX / Core app? Good luck if any file path is longer than 255 characters. Tried pulling in the dependencies from a project.json behind a corporate firewall? Good luck. It might work half the time, but it needs to work 100% of the time to be practical.
All these tiny metapackages will lead to dozens of projects all in intermediate undefined states whereas in the past we had a clear distinction - that repository from 2010? It's MVC3. Ok, we know how to upgrade that because the process is well-defined. I expect ASP.NET core will be more a case of deleting out all your semver numbers from project.json, executing the update command and holding your breath. I dread this the way I dread opening any Javascript/NPM project that's more than a year old.
Given the rise of Javascript clients with REST servers I question whether it's even worth sticking with Core when other languages can do the same thing with fewer pain points. I really want to see Core succeed but I'm just not sure about it given what we've seen so far.
- pbz 10y agoI've used Core RC1 for a few months now and I haven't seen any of the issues you're worried about. I've had way more pain with TypeScript, VS, and node integration than anything .NET specific. From my point of view the .net piece just works, even with the RC bits. It's just a bit more granular than before, but VS helps you a lot. All you have to do is type a class name and VS can suggest to import a library that you never included in your project. This alone, in my opinion, makes it a lot easier than before - I wouldn't want to go back.
- Renner1 10y agoThe fact that one person hasn't experienced these issues doesn't invalidate my argument. I am sure some people will have no issues, but there will be some percentage of people who do have issues and I suspect that percentage will be quite large. I also suspect a lot of people who have not encountered issues aren't actually building software for an employer. As someone else mentioned, a lot of the more vocal people tend to be unemployed hobbyists who have no deadlines or who don't venture off the beaten path because they don't have any requirements.
- pbz 10y agoYou seem to suspect a lot without bringing any evidence; nothing but FUD. I can just as easily suspect that you're full of it.
- garganzol 10y agoI'm with Rener on this. He mentioned important areas where .NET Core falls apart. Would like to see it changing, but as for now almost nobody is going to use .NET Core for anything serious. .NET Core is selfishly designed for .NET Core developers, not for .NET Core customers.
- voltagex_ 10y agoHave you raised bugs when you hit issues with Core?
- cmdkeen 10y agoOK to address those: The micro packages are Microsoft packages which means they'll be testing them thoroughly and independencies between them will be recorded via NuGet. The whole "delete numbers and update" bit makes no sense given the NuGet update command. The point of current ASP.Net Core development is that they are being open about the sausage making process in order to avoid massive breaking changes in the future. Opening an MVC3 project has a defined update process because 3->6 has a massive update process. The team is aiming to only add new functionality going forward (at least for a very long time), they don't want to have to release Core 2.0 but 1.18. Things may break at the moment but that is almost certainly because you're hooked up to the MS CI build MyGet repository, certainly that is what the ASP Live streams are doing, so it is hardly surprising that things don't always work. They've just committed to 6+ weeks of fixing stuff before the RTM - stability will improve.