Мне было поручено поддерживать приложение, изначально написанное на VB6. С тех пор он был импортирован в VB .Net и, мягко говоря, код не является объектно-ориентированным. Код пронизан классами, которые не содержат ничего, кроме атрибутов (переменных) и методов (функций) Public Shared, в результате чего приложение не может открывать более одного проекта одновременно.
Проект состоит из XML-файла, который содержит общие параметры проекта, а также расположение в базе данных Access, которая содержит другие данные, связанные с проектом. За прошедшие годы формат файла XML был изменен, и была принята стратегия обновления и управления версиями. Выбранная стратегия выполняет обновление при открытии всякий раз, когда встречается старая версия. До настоящего времени обновления состояли только из перестановки данных в файле XML или внесения изменений в схему базы данных и перемещения данных из файла XML в базу данных.
Имея немного фона в ООП, мне легко увидеть, что проект должен быть автономным объектом, с которым взаимодействуют другие объекты. Однако я не вижу, как применить выбранную стратегию обновления в ООП.
Проблема реализации выбранной стратегии обновления в ООП пока не позволяет мне использовать ООП. Если у кого-то есть опыт выполнения такой задачи или рекомендации по ее выполнению, буду признателен за любую помощь, которую вы можете оказать.