преобразование устаревшего ASP-приложения в ASP.NET: лучший подход - PullRequest
1 голос
/ 05 октября 2009

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

Существует также кнопка «Печать в Word Doc», при нажатии которой происходит переход к совершенно отдельному файлу ASP, который создает (предположительно) такое же представление в HTML, отправляемом в виде документа Word.

Проблема в том, что мы обнаружили несоответствия и ошибки в двух создаваемых версиях. Мой первый ответ с применением принципа СУХОЙ: «Это необходимо переписать в ASP.NET с помощью одного файла с выделенным кодом, выводящего представление как для веб-страницы, так и для документа Word, так что у нас есть одно место для поддержки источник.

Однако, входя в это, я подвергаю сомнению мудрость такого подхода и выношу совет.

Проблема заключается в том, что из-за интеграции представления с редактированием на веб-странице, в отличие от простого представления рабочего документа, две функции действительно имеют две разные цели. Кроме того, код ASP, хотя и уродлив и сложен в обслуживании, создает довольно красивый документ. Делать то же самое в ASP.NET, по крайней мере, с использованием элементов управления ASP.NET, таких как FormView, - непростая задача. (Одним из требований переписывания является то, что новая страница должна функционировать так же, как старая страница, за исключением, конечно, ошибок.) Интеграция javascript для выполнения функций редактирования на стороне клиента обеспечивает хороший UX (при условии, что они работают правильно) , Вероятно, я могу выполнить то же самое с AJAX и / или jQuery, но мне интересно, действительно ли я что-то здесь получаю.

Как бы вы справились с этим?

Ответы [ 3 ]

4 голосов
/ 05 октября 2009

Вы также должны принять во внимание несколько других вопросов:

  • Насколько критичны дефекты?
  • Как много времени, чтобы сделать это, вы должны получить это вещь исправлена?
  • Сколько времени это займет вам исправить недостатки в классике ASP?
  • Сколько времени тебе понадобится, чтобы преобразовать все это в ASP.NET?
  • В конце концов, будет кто-нибудь волнует, какая платформа это реализовано в? То есть будут ли они все еще сможете выполнить свою работу? Потому что в конце дня это все, что действительно имеет значение.

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

Мой вам совет: придерживайтесь классического ASP, пока не получите ошибки. ТОГДА перенести его на ASP.NET. Я бы предпочел портировать фиксированный продукт, чем сломанный.

1 голос
/ 05 октября 2009

Я работал над проектами, в которых мы «преобразовали» классическое приложение ASP в приложение .NET. Вот что мы сделали:

  1. Сделал копию классических файлов ASP, а затем использовал функцию автоматического преобразования из Visual Studio, чтобы преобразовать эту новую копию в приложение .NET.
  2. Перечислили функции .NET, которые мы хотели использовать в этом новом приложении, а затем нашли правильные места в приложении для их реализации.
  3. Переписал код там, где это необходимо, чтобы в полной мере воспользоваться такими функциями.
  4. Рефакторинг существующего классического кода ASP, чтобы избежать повторного изобретения колеса там, где оно не было необходимо.
  5. Протестировал все, а затем запустил оба приложения параллельно, пока мы не почувствовали, что новое приложение .NET работает должным образом.
1 голос
/ 05 октября 2009

Это действительно сложный вопрос, который вы задаете. Главная проблема в самом конце:

Мне интересно, действительно ли я набираю что-нибудь здесь.

Нужна ли модификация, чтобы сделать небольшой мод? или это большой? Сколько вам придется поддерживать это в будущем?

Вы будете получать дивиденды только от ваших усилий в будущих модификациях. Если вы никогда больше не коснетесь этой системы, переписывание не принесет никакой пользы.

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