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

У нас есть большое приложение ASP (классический ASP), и мы хотели бы преобразовать его в .NET, чтобы работать над дальнейшими выпусками. Нет смысла продолжать использовать ASP, поскольку он устарел, и мы не хотим переписывать его с нуля (Джоэл Спольски говорит вам[Зачем](http://www.joelonsoftware.com/articles/fog0000000069.html)).

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

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

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

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



ET. Он может читать, анализировать, интерпретировать, переписывать и реструктурировать (как C # или VB.NET) отдельные страницы + целые сайты.

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

Инструмент одобрен[на MSDN здесь.](https://msdn.microsoft.com/en-us/vstudio/dn569303 "here")

(Старое) демо-видео[на ScreenCast здесь.](http://www.screencast.com/t/ODliZjcxM) (Мне действительно нужно обновить это! До этого, пожалуйста, дайте мне знать, если вы хотите, чтобы живая демоверсия увидела последние новости.)

Есть еще что рассказать, пожалуйста[Свяжитесь с нами, если вы заинтересованы.](https://www.greatmigrations.com/en/resources/gmstudio-demo.aspx)

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



[Миграция ASP-страниц в ASP.NET](https://msdn.microsoft.com/en-us/library/dddsc60w(VS.71).aspx), Они в основном говорят вам установить .net на ваш компьютер / сервер и преобразовывать одну страницу за раз. ASP и ASP.NET могут сосуществовать, поэтому могут переименовывать каждую страницу в «aspx» как вы идете. Однако следует помнить, что состояние сеанса и состояние приложения не являются общими для страниц ASP и ASP.NET (см.[ответ @ mdb](https://stackoverflow.com/questions/111071/tools-for-converting-from-asp-to-aspnet#111108) для обхода этой проблемы.)

Существует также[Ассистент миграции с ASP на ASP.NET](https://msdn.microsoft.com/en-us/asp.net/aa336626.aspx), но я не уверен, что проект / программа все еще активен. Вы можете попробовать это, загрузив с этой страницы:

[http://www.asp.net/downloads/archived/migration-assistants/asp-to-aspnet/](https://www.asp.net/downloads/archived/migration-assistants/asp-to-aspnet/)



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

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

Конечно, ваш новый код должен будет работать с существующей средой ASP.[Совместное использование состояния сеанса между ASP и ASP.NET](https://msdn.microsoft.com/en-us/library/aa479313.aspx) Скорее всего, это будет одним из ваших первых требований, но вы скоро обнаружите больше подобных проблем.

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

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

December 2009 addition to original answer: Просто наткнулся на[ASP Classic Compiler](https://aspclassiccompiler.codeplex.com/), который активно поддерживается компилятором VBscript, который преобразует классические страницы ASP в код, который изначально работает на ASP.NET. У него есть несколько интересных функций, таких как возможность использовать его как пользовательский ViewEngine ASP.NET MVC, поэтому, несмотря на его бета-статус, определенно стоит присмотреться ...