Основным отличием является то, что если вам позже потребуется добавить логику в ваш метод получения или установки, а другие библиотеки DLL уже скомпилированы с вашими, вы можете легко изменить
public string Name { get; set; }
в
public string Name { get{/*special code*/} set{/*special code*/} }
и это не будет серьезным изменением для публикации вашей новой библиотеки DLL и не будет перекомпилировать другие библиотеки DLL.
Принимая во внимание, что если вы изменили
public string Name;
в
public string Name { get{/*special code*/} set{/*special code*/} }
тогда вам необходимо убедиться, что все библиотеки DLL, которые используют вашу, перекомпилированы, поскольку они переходят от доступа к полю к доступу к свойству.
Это, очевидно, большая проблема, когда вы отправляете библиотеки DLL другим программистам (например, как проект с открытым исходным кодом или как поставщик компонентов), чем если вы просто создаете приложение для себя / работодателя