"Generic" achitecture

If you write your own properties, you know what the getter/setter do.
Writing string MyProperty {get;set;} isn’t more expensive than string MyField; as the compiler treats a property with empty getter/setter just like a regular field.

Today they are focusing on .NET Core and they are free to change what they did wrong. Looks like they haven’t seen anything wrong with properties.