Всем привет.
Хочу рассказать о своем опыте импортозамещения UI.
Не предлагаю ничего нового, известный подход, приложенный к конкретной задаче.
Кратко задачу можно описать так:
Есть: Исходный проект с множеством таблиц и форм.
Задача: Нужно в целевом проекте создать аналогичные таблицы и формы по другой технологии. По сути много однотипных классов и файлов, отличающихся заранее известными частями.
Решение:
1. Автоматически собрать необходимую информацию из исходного проекта в файл.
2. Дополнить этот файл в той части которую не получилось собрать автоматически.
3. Создавать нужные файлы по шаблону заменяя подстановочные символы в шаблоне значениями из файла. Полученные файлы могут быть если необходимо доработаны.
Первое что приходит на ум при решении такой задачи — это использовать встроенный в VisualStudio кодогенератор, он реализует похожую задачу. Я изначально рассматривал использование его. Но передумал. Получается много сложнее. Кроме того, генератор в студии предполагается использовать постоянно, мой генератор нужен одноразово что бы создать заготовку кода. Хотя я не исключаю, что буду применять его и далее.
Очевидные для меня плюсы такого подхода:
1) На порядок быстрее.
2) Код максимально однообразен.
3) Код можно легко покрыть автоматически созданными тестами.
4) В случае внесения в шаблон изменений, а это обязательно случится и не раз, можно быстро пересоздать код.(если шаблон доработан, то используя систему контроля версий можно быстро поправить как надо)