Каков наилучший подход к управлению версиями отслеживаемых данных в рабочих процессах? - PullRequest
3 голосов
/ 27 января 2010

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

Может быть необходимо отобразить данные из прошлого в пользовательском интерфейсе, но данные неизбежно изменят структуру (определение класса / внутреннюю структуру, если она динамическая), и повторно развернутая версия нашей библиотеки будет содержать новое определение данных, в то время как сериализованные данные в базе данных отслеживания останутся в старой структуре.

Лучше ли использовать динамические структуры, которые не изменяются с самого начала (например, пакет свойств), или, скорее, позже иметь дело с перераспределением и каким-то образом преобразовывать сериализованный BLOB в новый? Вы когда-нибудь использовали какой-то подход в подобном сценарии?

1 Ответ

1 голос
/ 27 января 2010

Многое зависит от того, как вы развернете свое приложение. Если вы используете строгое имя и внедряете в GAC или несколько частных путей сборки, десериализация рабочего процесса приведет к десериализации точной версии вашего класса. Это означает, что ваш код должен работать с несколькими версиями, и это может быть немного болезненно. Хранение данных в пакете свойств не поможет вам там. Если вы используете перенаправления сборки для указания на текущую версию действия, эта часть решается, и я полагаю, что использование пакета свойств сделало бы жизнь проще Тем не менее, пока я склонен придерживаться свойств зависимостей и обычных сериализуемых классов.

Я сделал серию постов в блоге о длительных рабочих процессах и управлении версиями, где вы столкнулись с точно такой же проблемой. Проверьте здесь для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...