Я бы задала вопрос , почему вам нужно провести рефакторинг этого? если ответ «Так что его стандарты соответствуют», «Это выглядит лучше» или «Так наша команда разработчиков довольна», я бы серьезно пересмотрел это.
Если ответ «потому что мы не можем удовлетворить бизнес-потребности из-за сложности изменения / обновления нашего приложения», то у вас есть веская деловая причина.
Я работал над многими проектами, где мой первый инстинкт был переписать и переписать его. Многие из тех, что я сделал, на самом деле записывают и переписывают, только чтобы выяснить, на полпути к этому первоначальные разработчики, хотя они делали это не так, как я (или даже имел плохие стандарты кодирования), исправили много проблем, которые я никогда не рассматривал!
Точно так же я работал над одним или двумя, где переписывание или глубокий рефакторинг имели вескую деловую причину, и результат был успешным. Тем не менее, это всегда больно вносить эти изменения.
Итак. В заключение, если бы мне пришлось сделать это из-за сильной потребности бизнеса, я бы, вероятно, начал с создания сценария тестирования (ручное тестирование) или, еще лучше, автоматизированных тестов (UI или UNit Tests, не имеет значения), которые грубо тестируют функциональность ваше приложение.
Тогда я бы по очереди взял Views и создал для них ViewModels, перенеся функциональность в ViewModels. Например, перемещение свойств зависимости & INotifyPropertyChanged в виртуальную машину.
Я бы тогда посмотрел на инъекцию зависимостей, например. StructureMap для связывания зависимостей, требуемых в этих моделях представления или каким-либо другим методом для поддержания низкого уровня связи.
Эти и другие методы описаны в книге Разработка приложений Brownfield в .NET .
Наконец, я бы с восхищением оглянулся на свой красивый код, который выполняет половину функций, которые делало старое приложение. Шутка! Хорошо, эта последняя часть была оскорбительной, я думаю, что есть много причин, почему это очень хорошая вещь (рефакторинг), однако из горького опыта я научился не принимать эти решения легко.
С наилучшими пожеланиями!