Чем отличается концептуально и что лучше использовать в каком случае:
public readonly MyType MyData;
public MyType MyData { get; }
И то и другое можно инициализировать при определении или в конструкторе.
В случае свойства это вызов метода, но возможно компилятор оптимизирует.
В случае свойства, если MyType есть структура, то её члены невозможно изменить - свойство даёт копию.
Что ещё?