When I first heard about .NET Core, I was so excited! I’m not a huge Microsoft fanboy but I have used it some throughout my career. Even if you hate .NET you have to admit the news of the new framework was a bit interesting and exciting for some. If they could pull this off, that being:
- Open-source community
- Modern technology
- Enterprise friendly
- Great developer tooling
…it would be great! That was in late 2014 though, its now 2016 and we still have yet to see a actual release. Sure, they released RC1 but if you know anyone who upgraded an actual application to that they will all tell you to stay away. I did upgrade, being the over ambitious engineer I am and heres my story where everything went bad…
Naming
If you’ve ever seen the image stating Programmers’ Hardest Task depicted below…
…its painfully obvious even Microsoft even suffers from this.
First it was .NET6, then ASPNET5 and now its .NET Core. Along with name changes come API changes, example dnx is now dotnet in the CLI. dotnet seems a bit more obvious to me but come on just pick something! This kinda makes me feel like there is a lack of direction amongst the team.
Release Schedules
I don’t know how many times I’ve seen a release milestone date on github and them totally act like it was never there, its almost like they are like…
The key to software development is to release fast and often! Since 2014 NodeJS has had roughly 175 releases ( including io.js ). Joyent ( company behind NodeJS ) was bootstrapped in 2004 and has raised about $125m in funding. While we don’t know the net worth of this organization, we do of Microsoft which is a whopping $68.6 billion, why can’t they keep up then?
In using the new framework, I had bugs and raised them to the team via Github and they were always responded quickly, however, they never released the version that had the fixes…leaving me to hack around core bugs!
I think we can all agree they just need to release the damn thing already and iterate from that!
Also, whoever is in charge of the release versioning needs to re-read SEMVER. When you say a release is RC that means its pretty much good to go; you aren’t going to have API changes. As I look at RC2, there are some fundamental changes that are going to impact my projections for our release given now I’m going to have to change a bunch of crap.
Getting with the times….
I think the thing that most got me worked up to write this article is this; the whole Project.json deboggle that just hit last week. ASPNET5 started off great; modern tooling, killing old concepts, etc. One of the small things that I loved was no more XML config BS. We had moved past the 2000s into the modern world of JSON.
And then reality set in, as they started integrating with other pieces of the framework, there was push back and guess what? Its back!! Thats so frustrating that everyone can’t get on the same page and move forward. This tweet pretty much sums it up….
If your more interested in this topic, here is a good read: https://blog.rendle.io/thoughts-on-project-files/
And not all the future is bright either, there is still looming bugs surrounding the next gen web product that are not getting attention either. One in particular dear to my heart ( I ❤ JS ) is SignalR still has a hard dependency on jQuery https://github.com/SignalR/SignalR/issues/372. This was logged in 2012 ( granted that was still in jQuery’s reign of the internet ) but seriously, very little new development is using jQuery anymore with the rise of frameworks like React and Angular and yet a core component for Microsofts modern web development in the .NET stack requires it for what exactly? jQuery is for DOM querying & manipulation, not sockets!
Developer Confidence
If we sum all the above, being:
- Lack of direction
- Lack of ability to release consistently with correct versioning
- Lack of ability to get all the teams on the same page
- Lack of innovation
I don’t know about you but this gives me NO CONFIDENCE in the near term future of this framework. If you don’t have confidence in something, you aren’t going to use it. Microsoft is trying desperately to compete with the open-source frameworks like NodeJS as they start creeping their way into the enterprise.
Summing it up
Developers who are .NET fanboys will just stay on 4.5 whatever framework for a few more years until this levels out and then adopt it. For those of us that have .NET in our background but are exploring other technologies and bringing them to work with us, this is a HUGE blow for Microsoft. Yes, I think Microsoft will get there but its not gonna be anytime in the next year.
--------
Hope you enjoyed my take on this! Follow me on Twitter and Github for more software dev opinions/projects/etc.