Как преобразовать устаревшие ASP-приложения в ASP.NET?

У нас есть большое ASP (классическое ASP) приложение, и мы хотели бы преобразовать его в .NET, чтобы работать над дальнейшими релизами. Нет смысла продолжать использовать ASP, поскольку он устарел, и мы не хотим переписывать его с нуля (Joel Spolsky сообщает вам почему).

Есть ли способ конвертировать его из ASP в ASP.NET автоматически?

Ответ 1

Ну, Я работал в компании, где все веб-приложения были классическими ASP. Когда было принято решение перейти на .NET, нам пришлось найти способ превратить 168 (!) Веб-приложений в эту новую структуру. В то время я пробовал все доступные инструменты, и все это не удалось.

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

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

Ответ 2

Даже если есть инструменты для преобразования между классическим ASP и ASP.NET, они не будут генерировать очень хорошие результаты: эти две среды просто слишком принципиально разные. Быстрый Google показывает несколько результатов, в основном из разнообразия "у нас будут наши ребята в Индии".

Мой совет: не касаться существующего ASP-кода. Среда выполнения будет поддерживаться Microsoft в обозримом будущем, поэтому срочно не нужно мигрировать. Вместо этого начните работу над новыми функциями в ASP.NET: таким образом, вы не будете сдерживаться унаследованными концепциями и можете использовать новую прохладу, предоставляемую Framework (включая такие вещи, как ASP.NET MVC) любым способом, который вы видите подходит.

Конечно, ваш новый код должен будет работать с существующей средой ASP. Совместное использование состояния сеанса между ASP и ASP.NET, скорее всего, будет одним из ваших первых требований, но вскоре вы обнаружите больше таких проблем.

"Правильное" решение для таких вопросов будет полностью зависеть от вашего текущего кода и требований: иногда вы сможете переносить .NET-код в COM-объект для использования вашим ASP-кодом, иногда частичный перенос/перенос может быть решением.

Однако в среднем подход "двух миров" должен быть полностью осуществимым и позволять вам разрабатывать захватывающие новые функции, не беспокоясь о своем устаревшем коде.


Декабрь 2009 г. дополнение к оригинальному ответу: Просто наткнулся на ASP Classic Compiler, который является активно поддерживаемым компилятором VBscript, который преобразует классические ASP-страницы в код, который запускается изначально на ASP.NET. В нем есть несколько интересных функций, таких как возможность использовать его как пользовательский ViewEngine ASP.NET MVC, поэтому, несмотря на его статус бета-версии, определенно стоит обратить внимание...

Ответ 3

У Microsoft есть статья на MSDN, которая рассказывает о Перенос ASP-страниц в ASP.NET. Они в основном говорят вам установить .net на свой компьютер/сервер и преобразовать одну страницу за раз. ASP и ASP.NET могут сосуществовать, поэтому он может переименовать каждую страницу в "aspx", когда вы идете. Однако следует отметить, что состояние сеанса и состояние приложения не разделяются между страницами ASP и ASP.NET(см. @mdb answer для обхода этой проблемы.)

Существует также Ассистент миграции ASP ASP.NET, но я не уверен, что проект/программа все еще активна. Вы можете попробовать его, загрузив с этой страницы:

http://www.asp.net/downloads/archived/migration-assistants/asp-to-aspnet/

Ответ 4

gmStudio - это комплексный инструмент обновления VB6/ASP/COM для .NET. Он может читать, анализировать, интерпретировать, переписывать и реструктурировать (как С# или VB.NET) отдельные страницы + включает или целые сайты.

Технология находится в активной разработке с 2007 года, и мы использовали ее, чтобы помочь нам переписать сайты в пределах от нескольких сотен страниц до 1000 страниц.

Инструмент одобрен в MSDN здесь.

A (старое) демо-видео на ScreenCast здесь. (Мне действительно нужно обновить это! До тех пор, пожалуйста, дайте мне знать, если вы хотите увидеть демо-версию, чтобы увидеть последнюю версию.)

Намного больше рассказать, пожалуйста свяжитесь с нами, если вы заинтересованы.

Отказ от ответственности: я работаю для Великих Миграций.