Это общий вопрос, касающийся Workflow Foundation (.NET 3.5) и контроля версий данных, с которыми он работает. У нас есть много пользовательских действий, которые работают с некоторыми данными, и эти данные могут быть интересны также для будущего анализа уже завершенных рабочих процессов (при условии, что мы настроили отслеживание таким образом, чтобы оно сохраняло его в сериализованной форме).
Может быть необходимо отобразить данные из прошлого в пользовательском интерфейсе, но данные неизбежно изменят структуру (определение класса / внутреннюю структуру, если она динамическая), и повторно развернутая версия нашей библиотеки будет содержать новое определение данных, в то время как сериализованные данные в базе данных отслеживания останутся в старой структуре.
Лучше ли использовать динамические структуры, которые не изменяются с самого начала (например, пакет свойств), или, скорее, позже иметь дело с перераспределением и каким-то образом преобразовывать сериализованный BLOB в новый? Вы когда-нибудь использовали какой-то подход в подобном сценарии?