Какой самый простой способ конвертировать из asp classic в asp.net? - PullRequest
14 голосов
/ 18 сентября 2008

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

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

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

Ответы [ 9 ]

13 голосов
/ 19 сентября 2008

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

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

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

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

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

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

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

11 голосов
/ 19 сентября 2008

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

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

1 голос
1 голос
/ 18 сентября 2008

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

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

0 голосов
/ 16 ноября 2008

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

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

0 голосов
/ 19 сентября 2008

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

0 голосов
/ 19 сентября 2008

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

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

Пол

0 голосов
/ 19 сентября 2008

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

0 голосов
/ 18 сентября 2008

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

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