Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Wiki to mention that changes to .NET Core must be binary compatible with the full .NET Framework #13977

Closed
justinvp opened this issue Jan 11, 2015 · 4 comments
Assignees
Labels
area-Meta documentation Documentation bug or enhancement, does not impact product or test code
Milestone

Comments

@justinvp
Copy link
Contributor

A question came up in the comments for #13933 about the possibility of a binary breaking change in the .NET Core Regex collections from the Regex collections in the full .NET Framework.

@davkean responded:

You need to be able to build against this library and run on .NET Framework 4.6.

And I asked:

So if you accept this suggestion (adding the generic interfaces to these types), the changes will have to be added to .NET 4.6 as well? How much time is left to make changes to .NET 4.6?

And @weshaggard responded:

Yes @justinvp any types that already exist on the full desktop framework will need to be updated there as well if they are updated in .NET Core. We have a high level goal of making code written for .NET work no matter what .NET platform you are targeting. As for how much time is left to add new public APIs to .NET 4.6 at this point we are not accepting any more unless they are critical.

With that said we fully expect .NET Core to evolve much more quickly then the full .NET framework that ships in Windows. We just have to be aware that any changes need to eventually make it there as well so while thinking about breaking changes you cannot just consider .NET Core you must consider the other platforms as well. If we don't do that then we risk diverging the platforms and making .NET development as a whole more difficult.

I think it'd be worth adding this to one of the wiki pages so it is clear to everyone that types in .NET Core that exist in the full .NET Framework must be binary compatible. I don't think this is explicitly stated anywhere currently.

@terrajobst terrajobst self-assigned this Jan 11, 2015
@terrajobst
Copy link
Member

Thanks. I'll take a stab at this.

@akoeplinger
Copy link
Member

So if I rely on new APIs in .NET Core I'll have to live with not being compatible with full .NET until it "eventually" catches up?

Is this the problem the .NET "distribution" Immo talked about plans to solve? E.g. you ensure a hypothetical .NET 4.8 is binary compatible with .NET Core 1.1 packages.

Would love to get a blog post about this since it seems to be one of the main confusion points.

@davkean
Copy link
Member

davkean commented Jan 12, 2015

My statement was incorrect. What I should have said, is that I need to be able to build against .NET Core and run on a future .NET Framework version, not necessarily the current one. What that means is that any decision you make now, should not back you into a corner to prevent that from occurring.

@terrajobst
Copy link
Member

I believe this is taken care of by our triaging document.

Olafski referenced this issue in Olafski/corefx Jun 15, 2017
Update description for .NET Standard
@msftgits msftgits transferred this issue from dotnet/corefx Jan 31, 2020
@msftgits msftgits added this to the 1.0.0-rtm milestone Jan 31, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Jan 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Meta documentation Documentation bug or enhancement, does not impact product or test code
Projects
None yet
Development

No branches or pull requests

5 participants