лучшая практика для сохранения модели классов - PullRequest
2 голосов
/ 09 июня 2010

Мое приложение содержит набор классов моделей.например, Person, Department ...

Пользователь изменяет значения для экземпляров этих классов в пользовательском интерфейсе, и эти классы сохраняются в моем файле "проекта".В следующий раз пользователь сможет открыть и отредактировать проект.

Следующая версия моего продукта может кардинально изменить классы модели.По-прежнему нужно будет открывать файлы существующих проектов (я буду знать, как обрабатывать недостающие данные).

Как лучше сохранить мои классы моделей в файле проекта?

Самый простой способпостоянные классы - это сериализация контракта данных.Однако это не удастся сломать изменения (я ожидаю, что такие будут).Как с этим справиться?

  • использовать другое постоянство, например, сбор имени-значения или db, который является более допустимымДля этого необходимо либо использовать как старые, так и новые модели, либо манипулировать XML, что лучше?

Ответы [ 2 ]

0 голосов
/ 09 июня 2010

Поскольку в будущем вам необходимо поддерживать все файлы «проекта», созданные вашим текущим приложением. На мой взгляд, приложение для переноса ваших текущих данных в новый формат является лучшим решением. Этот подход позволил бы сохранить новый код в чистоте для чтения и записи нового формата данных. Таким образом, логика не будет загромождена чем-то вроде того, если старый формат сделает это, если новый формат сделает это. Кроме того, приложение миграции будет независимым и может быть легко протестировано на любые проблемы, связанные с неправильным преобразованием данных.

0 голосов
/ 09 июня 2010

Я бы порекомендовал включить номер версии в схему файла вашего проекта. Затем предоставьте XSLT для преобразования между различными версиями схемы проекта. Когда файл открыт, сначала откройте как XML и проверьте версию. Если это не последняя версия, преобразуйте ее, затем обработайте как обычно.

...