Каковы некоторые полезные стратегии для преобразования классического приложения ASP в ASP.NET - PullRequest
3 голосов
/ 07 сентября 2010

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

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

Какие же полезные стратегии мы можем использовать, чтобы помочь нам преобразовать это приложение, не имеяон потребляет все наши ограниченные ресурсы на время переписывания?

Ответы [ 3 ]

2 голосов
/ 07 сентября 2010

Звучит как интересный вызов. Это определенно не будет легким делом, особенно если вы не можете посвятить какие-либо ресурсы проекту полный рабочий день.

Если у вас работает 10-летнее приложение, я бы не советовал вообще переписывать его. Я бы начал с того, чтобы сесть и понять, каким должен быть ваш конечный продукт.

Это будет веб-приложение ASP.NET MVC, приложение веб-форм ASP.NET или что-то еще? Как только это решение будет принято, придумайте свободный дизайн для архитектуры. Если вы все делаете правильно, вы можете создавать кусочки бизнес-логики в .NET и использовать ее из своего классического кода ASP, пока не будете готовы переписать пользовательский интерфейс в .NET.

1 голос
/ 07 сентября 2010

Я согласен с тем, что Джастин сказал ; если у вас есть работающее приложение, вам понадобится веская причина (т. е. money ), чтобы оправдать расходы на переписывание приложения для новой платформы.

Хотя ASP classic и ASP.NET имеют похожий синтаксис и некоторые общие соглашения о кодировании, они очень сильно отличаются друг от друга. Если вы попытаетесь просто скопировать и вставить классический ASP-код в приложение ASP.NET, вы, возможно, сможете заставить его работать, но при этом вы потеряете многие преимущества веб-форм ASP.NET или ASP. NET MVC (и соответствующие им фреймворки, конечно).

Вы можете, однако, расширить функциональность существующего сайта с помощью кода .NET через веб-сервисы или COM-взаимодействие. У нас есть классический веб-сайт ASP старше 10 лет, и я использовал как веб-сервисы .NET (.asmx), так и COM-вызываемые библиотеки .NET для улучшения нашего существующего приложения. В обоих случаях я написал всю свою новую бизнес-логику в компоненте .NET и предоставил короткий интерфейс для работы с существующей страницей ASP. Это позволило моему .NET-коду быть очень легко тестируемым и все еще использовать наши существующие (огромные) инвестиции в наш классический сайт ASP.

0 голосов
/ 07 сентября 2010

Единственный подход, который сработал для меня, - это разделить области функциональности на маленькие кусочки и переписать. «Конвертация» сначала, а затем рефакторинг несколько раз казалась хорошей идеей, но в итоге превратилась в ужасную путаницу кода, написанного в ASP.NET вместо ASP - и это не добавило никакой ценности.

Если у вас есть сайт с различными областями функциональности, выделите его и начните с него (я выбрал «связаться с нами»). Напишите это так, как вы думаете, должно быть написано - то есть предположим, что ваша новая часть вписывается в конечный дизайн вашего хорошо написанного приложения. Если вам необходимо добавить «хаки» для взаимодействия со старой системой, убедитесь, что они изолированы и прокомментированы.

Когда вы работаете над обновлением, подумайте: «Могу ли я выделить некоторые функциональные возможности здесь в свое собственное русло?» - если это так, преобразуйте его, а затем обновите. Я обнаружил, что если вы настаиваете на поддержании чистоты НОВОГО приложения и позволяете себе добавлять небольшие взломы в старое приложение для общения, вы получите лучшие результаты.

Это означает, что у вас будет какое-то время два отдельных приложения (два веб-приложения IIS), что может сделать управление файлами cookie / url и сессиями немного затруднительным, а также добавит еще одну проблему развертывания. Чтобы бороться с этим, убедитесь, что вы минимизируете состояние в своем веб-приложении (всегда хорошая идея) и делитесь им с помощью чего-то другого, кроме Session.

Если вы делаете это по кусочку за раз, делаете кусочки достаточно маленькими, и у вас есть хороший дизайн заранее, это работает хорошо - по крайней мере, по моему опыту, это способ, который работает лучше всего. Обратите внимание, что мой опыт может не соответствовать действительности.

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