Aspnetcore: Where is ASPNET going?

Created on 24 May 2016  路  21Comments  路  Source: dotnet/aspnetcore

To the ASPNET team, and all the people contributing to the project:

For the last 5 years I have been watching closely .net MVC technologies. And Seriously, It's getting hard for me to keep on. To many changes over small span of time, changes that are completely different for what it was on the change before that one. It feels like ASPNET is a 15 years old with lots of hormonal stuff going on and doesnt even know what it wants to do with its life.

Dont get me wrong, but I really like the way it's now. But I think it's too late.

Why so many breaking changes on RC2? Why so many naming changes on packages over RC1. Why someone did not plan a bit more before releasing it to open source?

Why so little documentation?

Why make people read LOTS of not-so-good-docs to then, 2 month later, change all of the contents to a new code design just because it gonna look better. renaming, renaming, renaming.

I want to code and finish my projects, not to spend all my day in github reading ever-changing documentation, issues, and rm files.

I know lots of changes are good, A LOT good, but for me its too much nonsense.

I just wanted to tell you and remind you those times when Visual Studio and .net worked like a charm, from scratch. Now, for example, I upgraded to RC2, created a new web project, and didnt compile. There were lots of references missing. It's not the way it suposed to be. It is RC2, not alpha.

Just a little reflexion. And I know im not the only one with these thoughts.

Sorry if i hurted anyone's feelings. It's not my intention.

Cheers,

JC

Most helpful comment

I want to code and finish my projects, not to spend all my day in github reading ever-changing documentation, issues, and rm files.

You probably shouldn't use pre-release open-source tools, then.

All 21 comments

I want to code and finish my projects, not to spend all my day in github reading ever-changing documentation, issues, and rm files.

You probably shouldn't use pre-release open-source tools, then.

@andreujuanc

First, RC1/RC2 are not "fixed product". You can't expect the same stability from a Release Candidate release than something already released. But let me address your points one by one.

Why so many breaking changes on RC2?

They ripped the old DNX/DNU/DNVM out of there to be replaced by the dotnet-cli. This had to happen. Otherwise, only web applications are going to run on Core and people would have asked for console/desktop applications soon enough.

Then there's the continued work to provide a complete product for RTM by the end of June. All those efforts together make for a lot of breaking changes.

Why so many naming changes on packages over RC1.

RC1 happened in November 2015. What you are seeing is the cumulative work of 6 months of work.
Some of those renames were done around Christmas. Some earlier. But yeah... better to get the naming right while you are not RTM. Otherwise, huge changes like this will break live applications.

Why someone did not plan a bit more before releasing it to open source?

It's the whole point of Microsoft embracing open-source. They are making the sausage out in the open. It might make some people mad when things change but... you are literally looking at them butcher the cow and grind the meat. Not for the feeble of heart.

Why so little documentation?

There is tons of documentation but is it lacking? Yeah. I'm assuming that the huge bulk of it will be done by RTM.

I want to code and finish my projects, not to spend all my day in github reading ever-changing documentation, issues, and rm files.

Then you should be wary of building on anything that is not RTM. RC1/RC2 are still pre-release versions and are subject to change. Yes, they have a "go-live" license but it doesn't mean that everything is frozen in place.

I just wanted to tell you and remind you those times when Visual Studio and .net worked like a charm, from scratch.

It that .NET/Visual Studio was released once a year and was pushed to us without any possibilities of input. What you are doing right now, opening an issue and talking about the framework, wouldn't have been possible back then. It's the whole new open-source kind of thing. People are doing pull requests to .NET now.

Yes, things are changing and quickly but it's for the best. Unless you want to actually test pre-release software, you should stick to the latest version of the .NET framework.

If you have other questions, please go ahead!

Cheers,

I Understand all of this. Everything, But it is really frustrating when I cant even run a single TEST project.

_File > New project > Asp.Net Core Web Application > F5 > Error_

I understand renaming once, but everytime i check the project it has changed the name or namespace or something. Which makes everything harder. Harder even for the team making the visualstudio tools. Because it seems they cant keep up with these changes.

Combination of AspNet 5, AspNet vNext, AspNet Core AND .Net 4.6 .Net Core .Net makes finding documentation harder and fragmented.

Im not opening this issue "just because" but so using this new workflow, getting feedback from all perpective might be good for the project.

It that .NET/Visual Studio was released once a year and was pushed to us without any possibilities of input.

True, and as i wrote before, I really like this new approach.

Thanks for your replies.

@MaximRouiller I think it's very reasonable to expect no breaking changes between RC1 and RC2, especially when the framework touts that it wants to follow semantic versioning. The rest of the world doesn't issue breaking changes between release candidates unless there is some horrific bug that requires a breaking change. I think it's misguided to advocate that this is okay because "They are making the sausage out in the open".

It's perfectly okay to admit that Microsoft is trying to feel their way through this. From an outsiders perspective, they are pushing traditional boundaries in their own company, and that takes time to adjust to. I think it would be remiss to pretend this is going to be acceptable going forward. At some point, some standards have to exist for the project. It isn't just @andreujuanc's opinion that Microsoft appears very schizophrenic right now, if you look around the web, this sentiment is felt in several places.

That said, I expected this; this isn't easy. They shifted their entire paradigm and you can see them trying to figure it out in real time. Someday, this will make an excellent case study of big corporate going to an OSS model, and the tribulations involved in that process. I love what they are doing with this project and I think that in a few years, this will be a "go-to" framework just like ASP.NET full is, if not the preferred framework for building web apps.

it's very reasonable to expect no breaking changes between RC1 and RC2

Agreed. But when better to do them? Now when everything is still pre-release and "fluid" or after RTM when you start having millions of apps on your framework? Sooner is better in this case. And it's still pre-release software. When they say "release candidate", it's just that. A candidate for release. Huge changes can still happen if they find something major.

especially when the framework touts that it wants to follow semantic versioning

Oh, it is. It's all under pre-release. Major/minor are set to 1.0. They are not going to increment that number every time they code a breaking change or do a pre-release.

It's perfectly okay to admit that Microsoft is trying to feel their way through this.

I'm not working there so I don't know but I agree with the feeling. Just like you said... it's new ground for them. I think they are still perfecting their release cycle/versioning.

That said, I expected this; this isn't easy.

You got that right! It's INSANE when you think about it. They are building the next application model out in the open and accepting input from the community. Selling that to a company would be mental. Yet, here they are. Making deliveries and doing public YouTube videos about where things are at.

Insane I tell you.

most of us working with rc1 knew soon after its release that there were going to be breaking changes in rc2 especially the big rename to *Core. Myself, I adjusted my attitude back then to think of rc1 as beta9 and now I think of rc2 as rc1. The team has acknowledged that some mistakes were made with naming. Doing all this stuff out in the open has been a new experience for Microsoft and they are no doubt learning from the process, in fact many of the changes have come about from what they learned as they made progress and they are the kind of changes it is better to make while still in preview even if in retrospect that makes the naming of prior versions look worse. We have also seen them broaden their vision from cross platform ASP.NET to seeing cross platform console apps and open possibilities beyond that. The ASP.NET team was separate from the .NET team in the beginning of this but from what they learned along the way they ended up bringing all the .NET teams back together as one and that has made them think more broadly about how it all needs to fit together. Watching it all unfold closely has been fascinating for me and I really think they are on the right track.

@MaximRouiller I'm with you, I know those changes absolutely had to happen. My point is more that this framework moved into release candidacy too quickly.

@MaximRouiller I dont think it is so insane. A bit portion of Linux, for example, has been maintained by private companies. And it is a big OS project.

I agree with @joeaudette with most of what he said. Made me think now that this project is Microsoft way to go major on an OS project of this amplitude. It's probably their "test", and if it goes well I expect more stuff to go OS. That would explain all the breaking changes and naming issues to begin with.

And @wmccullough , I (and probably i can say we, to include everyone in this convo) never intended to say that these changes were not necesary, they are, but they should have been done earlier (in my opinion).

Of couse being not fully released gives you this "ability" to do this kind of "last minute change". And if a change if for good purpose, then it's welcome.

Again, dont get me wrong, I love this project, ive been using .net before its first release. But I wanted to give my opinion on this matter, since I know a lot of people in this community (.net community i mean) and they were bit skeptic on all this matter.

I am glad I got replies to my little whimper, and I hope this community continues growing the way it is :)

@andreujuanc I'm with you too. I actually can see both sides of the conversation. I wonder the same things as you. I wouldn't mind seeing a real roadmap for this thing. I want this to be the framework that was promised (Game of Thrones joke, sorry).

I'm sad to say, I sort of agree with this too.

These changes should have been figured out before calling it RC1. Frankly, it destroys trust. We are starting a new project right now, I kind of would like to use asp.net core for it, they say RC2 is "closer to RTM"....frankly I don't trust them with that. Release Candidate used to mean something. NO new features, NO breaking changes unless something disastrous happened. RC1 was beta at best.

I trust them to build good software, make an awesome framework. But I don't trust them that they will not just pull the rug out of anyone anymore. We already know "sometime after RTM" project.json will go away. The cli will probably change again too. I don't know.

So when will things stabilize? I realize I can use RTM, I realize this is open source. It'll probably be supported. What about build infrastructure, tools, etc.

I don't care if you need to make changes, it's awesome to see it, to give feedback. But this constant we go back on all our decisions and just implement things like this now, until 2 weeks from now when we might try another way, AFTER a release candidate is just not good.

We just made the decision for now to wait it out. It's a bit sad, I was so excited for this for the longest time, but I just cannot recommend in good conscious to my boss to adopt it yet or in the near future.

They've clearly said there is a very high bar to jump over before any changes will be made to RC2. I wouldn't expect any further major changes

There'll still be changes, but they'll be minimal, the bar is raised with every release. So far we're at 3 breaking changes between RC2 and RTM https://github.com/aspnet/Announcements/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.0.

@chrisaut exactly! I think it should have been named as alpha version and not "RC1", Rc2 maybe beta and so on. Makes people have better planning for their projects. Today two friends dropped ASP.Net in favor of java, just because of stability. They said to me something like "Ok, maybe in 2 monthes its going to be alright, but we dont know if ASP.Net Core 2.0 will break everything again." Coudnt even answer that question.

@davidfowl If there are still breaking changes, why RC2 was not delayed until these changes were made? Whats the hurry?

Its my point, there is a feeling of "rush" , to get this project released as soon as they can, but i think it was better to take easy and plan eveything a bit more.

When you call a software Release Candidate, you can expect lots of people using that software thinking that it is a relatively stable release.

@andreujuanc

There's not much that can be done against breaking changes. You release something that works on a day. The next day, you find something that doesn't make sense and is inconsistent with your API. Do you change it or keep it for the sake of compatibility? Because that's what the .NET Framework has been doing for over 10 years. If you change it, it's Breaking Changes and people scream. You don't change it, your API is inconsistent and you're stuck not touching anything for 10 years because people will scream if you do.

Damned if you do. Damned if you don't.

Unless you know ahead of time what is going to be breaking, you'll invariably introduce breaking changes at some point. If they hold a release for every possible breaking changes that they haven't thought of yet, we wouldn't have any framework today.

Release Candidate is still preview/early release/bleeding edge software. You use it, you know that addendum and you live with it. So is the life of early access software.

/run for cover. :runner:

@davidfowl If there are still breaking changes, why RC2 was not delayed until these changes were made? Whats the hurry?

We don't think we're in alpha, the framework and libraries are pretty close to v1. Also, all breaking changes aren't equal, some are more impactful than others. We also need to think about _not_ living with half baked features, so it's possible that some things get completely removed (because of incompleteness).

Also, we're responding to feedback, we're not changing things for fun. Most of the issues are based on actual problems people are running into using our stack. The fact that we even have time to react to that feedback is great and we'll continue to be careful with breaking changes the closer we get to RTM.

@wmccullough

especially when the framework touts that it wants to follow semantic versioning

Semver says it's a free for all in pre-release. There's no guarantee anything works from pre-release to pre-release.

I think its a little unfair to say the .net teams have been rushing, they have come across changing requirements and slipped the dates to accommodate the changes. Could Microsoft planned things better/informed internal teams about future plans regarding xamarin and the generalized .net core stuff? absolutely, but things doesn't always work out that way and I think its better that they do these changes now rather than not at all or post rtm.

There's also the impact of the breaking change to consider, the changes between rc2 and rtm _are_ breaking but not by very much, they are small changes that either remove stuff used earlier in the dev cycle or move things around. its not the kind of breaking change we saw between rc1 and rc2.

Maybe there should be a "slightly breaking" and "really breaking" change tag instead of just one :)

-edit-
ah @davidfowl posted while I was typing, didn't mean to repeat the same points

Various, prominent people have also voice their opinion in the past couple of days.

http://www.aaronstannard.com/dotnetcore-boil-ocean/
https://twitter.com/Nick_Craver/status/735978937839452161
http://hadihariri.com/2016/05/27/rc-means-something/

Admittedly this is very one sided, I may have missed positive opinions. But it does demonstrate that IMO it's not just a couple of people feeling this way, but it seems to be a growing sentiment among the community

I need popcorn. I have nothing smarter to say.

I'm a little bit phased out on this whole ASP.NET Core & Cie. I don't know where all of this is going. The new blog post doesn't tell me anything other than we'll have an RTM but it's not going to be the "real" version I should recommend to my clients.

I already told them that the future was bright and cool. Yeah, we might have to rewrite some parts but no rush... the 4.X+ will be supported for a while and new development can be done on the new framework.

They were happy with this. Now everything I said is bullshit. They will not want to use .NET Core 1.0. Why? They will have their cake and eat it too! I just don't know what "Core" will be like however.

I'm expecting that... it will not _really_ be Core anymore. Fancy name to represent something completely different.

I can say we all agree we like changes, specially for good reasons. We like to have a better platform, We dont care last minute changes or bug fixes. We all are developer, and we understand this.

But, I can certainly see I am not the only one who thought RC was RC and not some sort or alpha (prealpha? perhaps). And this is not about the product, but about the labeling of it. (I wont go into it since @chrisaut already posted some very interesting articles/discussions about it)

So, in this way, having the product "under development" is not a bad thing, it is just the way it is. It's a big project that needs lots of people and coordinate with them is not an easy task.

If you think that just labeling RC gives you power to do anything you want, then IMO you are wrong. This is not the way you should communicate with end-users, and specially to those who use your product to build over it.

When I started to mess with it (Aspnet core) some months ago I wouldnt be complaining about all of this if it was labeled as Alpha, even as beta i woudnt even consider to start this discussion.

My conclusion: I think labeling and roadmaps are very important and they shoudnt be underestimated.

@MaximRouiller

RC1 happened in November 2015. What you are seeing is the cumulative work of 6 months of work.
Some of those renames were done around Christmas. Some earlier. But yeah... better to get the naming right while you are not RTM. Otherwise, huge changes like this will break live applications.

Don't get me wrong, I love that Microsoft is doing and the fact we even have a voice and active engagement in the evolution of the stack is brilliant. My only gripe is that Microsoft released RC1 with a "Go Live" licence: https://blogs.msdn.microsoft.com/webdev/2015/11/18/announcing-asp-net-5-release-candidate-1/

So where you have said:

Otherwise, huge changes like this will break live applications.

I think this is the issue, the Go live licence kind of encouraged developers that this was a releasable / stable platform that you can Go Live with - i.e use in Production apps. So these changes _are_ breaking Live Applications. Microsoft shouldn't have introduced this Go live licence in my humble opinion, the stack and the tooling simply were nowhere near stable enough.

Still, it's easy for me to be critical like this in hindsight :)
I think I will start to feel a lot more comfortable after I have managed to migrate our solution to RC2!

This issue is being closed because it has not been updated in 3 months.

We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.

Was this page helpful?
0 / 5 - 0 ratings