Два ваших класса на практике идентичны по функциональности и возможностям.
Цель синтаксиса автоматических свойств (первый класс) в основном состоит в том, чтобы дать вам быстрый способ объявить то же самое, что и второй класс, который вы показываете.
Я бы придерживался первой версии, пока вам не понадобится добавить код в метод получения или установки (например, проверка нового значения для свойства.)
Назначение синтаксиса автоматического свойства двойное: оно было частично добавлено для упрощения Linq, а частично добавлено для упрощения простого объявления свойств, а не открытых полей.
Если вы объявите класс, используя автоматические свойства (опять же, первая версия), то все другие сборки, скомпилированные с вашим кодом, будут знать, что ваш класс объявляет эти вещи как свойства, а не как поля. Если позже вы решите, что вам нужно добавить код, например, проверку, эти другие сборки не нужно перекомпилировать, поскольку они все еще находят свойства.