.NET Core has pretty strong backwards compatibility rules:
https://github.com/dotnet/corefx/blob/master/Documentation/c...
> We generally don't accept change proposals that are in bucket #1.
...
> Bucket 1: Public Contract Clear violation of public contract.
> Examples:
> - Renaming or removing of a public type, member, or parameter
> - Changing the value of a public constant or enum member
> - Sealing a type that wasn't sealed
> - Making a virtual member abstract
> - Adding an interface to the set of base types of an interface
> - Removing a type or interface from the set of base types
> - Changing the return type of a member
> - ...or any other incompatible change to the shape of an API