Единственный подход, который сработал для меня, - это разделить области функциональности на маленькие кусочки и переписать. «Конвертация» сначала, а затем рефакторинг несколько раз казалась хорошей идеей, но в итоге превратилась в ужасную путаницу кода, написанного в ASP.NET вместо ASP - и это не добавило никакой ценности.
Если у вас есть сайт с различными областями функциональности, выделите его и начните с него (я выбрал «связаться с нами»). Напишите это так, как вы думаете, должно быть написано - то есть предположим, что ваша новая часть вписывается в конечный дизайн вашего хорошо написанного приложения. Если вам необходимо добавить «хаки» для взаимодействия со старой системой, убедитесь, что они изолированы и прокомментированы.
Когда вы работаете над обновлением, подумайте: «Могу ли я выделить некоторые функциональные возможности здесь в свое собственное русло?» - если это так, преобразуйте его, а затем обновите. Я обнаружил, что если вы настаиваете на поддержании чистоты НОВОГО приложения и позволяете себе добавлять небольшие взломы в старое приложение для общения, вы получите лучшие результаты.
Это означает, что у вас будет какое-то время два отдельных приложения (два веб-приложения IIS), что может сделать управление файлами cookie / url и сессиями немного затруднительным, а также добавит еще одну проблему развертывания. Чтобы бороться с этим, убедитесь, что вы минимизируете состояние в своем веб-приложении (всегда хорошая идея) и делитесь им с помощью чего-то другого, кроме Session
.
Если вы делаете это по кусочку за раз, делаете кусочки достаточно маленькими, и у вас есть хороший дизайн заранее, это работает хорошо - по крайней мере, по моему опыту, это способ, который работает лучше всего. Обратите внимание, что мой опыт может не соответствовать действительности.