Каков самый простой способ конвертировать из asp classic в asp.net?

Я разработчик .Net, которому было поручено обновить классический asp-сайт до asp.net. Веб-сайт в настоящее время работает на удачу и пузырьковой жевательной резинки, но не хватает времени или денег, чтобы остановить прогресс и полностью переписать. Конечно, мне все равно нужно будет предоставлять новые функции во время обновления.

Какие стратегии следует использовать для постепенного изменения asp.net? Должен ли я преобразовать в одноуровневое решение .net, а затем реорганизовать его на подходящее многоуровневое решение или мне теперь разработать свой бизнес и слои данных? Должен ли я перейти прямо к 3.5 или проще просто перейти к 1.1 и обновить до 2.0 или 3.5 после?

Полная конверсия, вероятно, займет 3-5 месяцев. Существует также некоторый существующий код 1.1, поэтому я рассматриваю его использование как точку перехода.

Ответы

Ответ 1

Будучи давним классическим программистом asp, а теперь и разработчиком ASP.NET, я бы потратил время и правильно его архитектуру в рамках 2.0 (3.5, если вам нужны/нужны функции).

В моей последней работе у нас была большая часть очень плохо созданных классических приложений asp, которые мы перестраивали, и подход "nuke and pave" был самым успешным. Используйте существующее классическое приложение в качестве функциональной спецификации и каркасов, а также создайте свои задачи и технические характеристики.

Ответ 2

Не выбрасывайте свой код!

Это единственная худшая ошибка, которую вы можете сделать (на большой кодовой базе). См. Вещи, которые вы не должны делать, часть 1.

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

Для новых функций в вашем приложении напишите на С# и вызовите его из классического ASP. Вы будете вынуждены быть модульными при перезаписи этого нового кода. Когда у вас есть время, рефакторинг части вашего старого кода на С# также, и выработайте ошибки, когда вы идете. В конце концов, вы замените приложение всем новым кодом.

Вы также можете написать свой собственный компилятор. Мы уже давно написали один для нашего классического приложения ASP, чтобы позволить нам выводить PHP. Он назвал Wasabi, и я думаю, что причина, по которой Джефф Этвуд думал, что Джоэл Спольский ушел со своего рокера. На самом деле, может быть, нам стоит просто отправить его, и тогда вы сможете это использовать.

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

Кроме того, если это внутреннее приложение, просто оставьте его. Не переписывайте его - вы единственный клиент, и если вам нужно выполнить его как классический asp, вы можете выполнить это требование.

Ответ 3

Сколько времени займет полная конвертация/переписывание? Это также будет зависеть от того, как вы структурировали свой оригинальный проект.

I может ответить, что вы должны просто нацелить v2.0 (3.5, если вы хотите/нуждаетесь в его функциях) с самого начала. Нет необходимости подвергать себя 1.1 рамочной основы.

Ответ 5

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

Ответ 6

Взгляните на Форумы Snitz (www.snitz.com) - они в настоящее время находятся в ASP, но порт для ASP.NET почти завершен. Обе базы кода доступны для вас, чтобы вы могли посмотреть, чтобы вы могли понять, как это было сделано там, чтобы помочь вам.

Ответ 7

Я бы не стал входить в .NET 1.1, так как Microsoft заканчивает поддержку v 1.1.NET Framework 10/14/2008. Расширенная поддержка работает до 10/8/2013, но, как правило, она дорого стоит покупать. Любые ошибки или дыры в безопасности не будут устранены и будут вашей проблемой.

http://support.microsoft.com/lifecycle/?LN=en-us&x=11&y=10&p1=1249

Пол

Ответ 8

Самый простой способ сделать это - просто прыгнуть в голову первым. получить некоторые книги asp.net и погрузиться в визуальную студию. Делайте примеры, играйте с ним, создавайте что-то забавное для себя. Вы научитесь делать.

Ответ 9

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

Я бы порекомендовал .NET 2.0 или 3.5 более 1.1. ASP.NET MVC выглядит как привлекательный путь обновления.