Переход с Coldfusion 9 на Coldfusion 2021

Я работаю над приложением coldfusion9, теперь мы хотим обновить наше приложение до coldfusion 2021, в этом контексте мы хотим знать

  1. Если мы обновим наше приложение Coldfusion 9 до Coldfusion 2021, нужно ли нам вносить какие-либо изменения в код после обновления или просто перейти на Coldfusion 2021, чтобы сделать все?
  2. Поскольку в coldfusion 2021 есть облачная поддержка, будет ли наш код coldfusion 9 работать в облаке после обновления ... если он будет работать, какие изменения на уровне кода и конфигурации нам нужно сделать?

Ищу ваш самый ранний ответ ...

Спасибо…

2 ответа

Как говорит @Redtopia, «это зависит от обстоятельств». Редко бывает, что ваза можно просто обновить с CF x до CF z, когда между x и z было несколько основных выпусков. Насколько велико ваше приложение? Не просто кодовая база, а набор функций?

Что касается «облака», просто поймите, что это маркетинговый термин, означающий «чужие компьютеры». Эта часть преобразования зависит от ряда вещей сама по себе. Вы тоже переходите с Windows на Linux? У этого были бы дополнительные болевые точки.

Например, ColdFusion 10 переключился с использования JRun на использование Tomcat в качестве базовой платформы сервлетов Java. Затем были обновления Tomcat с каждой версией CF с тех пор.

Некоторые устаревшие теги все еще могут работать. Многие встроенные библиотеки JavaScript были либо обновлены, либо полностью отключены, поэтому, если вы используете <CFFORM>, некоторые могут работать, некоторые - нет. CFchart будет работать не так, как вы ожидаете.

Кроме того, есть вещи, которые CF9 позволили вам избежать, но в более поздних версиях они стали более строгими. Неправильные атрибуты тегов и тому подобное.

И если вы попробуете преобразовать в Lucee, движок CF с открытым исходным кодом, вам придется проделать некоторую дополнительную работу, чтобы понять, как этот CF Admin работает по сравнению с Adobe CF Admin. В основном это то же самое, но есть достаточно различий, чтобы вы могли дополнительно изучить этот процесс.

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

Что касается анализатора кода, то там у вас могут возникнуть головные боли. В последний раз я использовал его для обновления с CF 11 до 2018. Я получил бесконечное количество ложных срабатываний, когда он ищет статическое значение в атрибуте тега ( secure="true"), где вместо этого у вас установлена ​​переменная ( secure="#isSecure#"). Не уверен, что они сделали что-нибудь для решения этой проблемы.

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

Я проделывал это несколько раз, это редко бывает так просто, как вы надеетесь. Суть в том, что вам придется протестировать все от начала до конца, прежде чем вы узнаете, что работает, а что не работает, и сколько усилий может потребоваться для завершения преобразования.

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

а. в нашей кодовой базе, когда мы переходили с CF 9 на CF 11 или выше, основная проблема, с которой мы столкнулись, заключалась в том, что тип данных cfprocparam был снисходительным в предыдущих версиях. Мы должны были убедиться, что все наши типы данных совпадают между кодом CF и хранимыми процедурами SQL Server. Это была самая болезненная часть миграции, но когда мы узнали, что нам нужно делать, все стало намного проще. Поэтому знание того, сколько запросов у вас есть по сравнению с хранимыми процедурами в вашей базе кода, даст вам представление об уровне усилий.

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

б. старые библиотеки, такие как datepicker и т. д., сломаются, и есть работа, по крайней мере, для CF 2018. Я не знаю, позаботились ли об этом в CF 2021.

  1. Это зависит от 1. Я считаю, что если вы получите 1 правильно, то 2 будут работать, потому что вы уже позаботились об основных проблемах кода совместимости.

Бонусные советы и предложения

I. Пожалуйста, подумайте, как вы собираетесь это делать, т.е. локальную разработку или сервер QA/UAT. Для этого у вас должен быть план игры. Отдельная установка или установка только для миграции - это способ, чтобы вы не сломали ничего и не расстроились.

II. Убедитесь, что у вас есть какой-то контроль версий и ветки, созданные для вашей базы кода, чтобы вы могли продолжать работать над проектами, а также над изменениями миграции CF 2021

III. Последний по порядку, но не по значимости. Получите инструмент мониторинга FusionReactor для ColdFusion для локальной настройки или настройки контроля качества. Я очень рекомендую это. Это позволит решить и сократить ваши усилия по устранению неполадок с минут и часов до секунд. В новой версии у них есть представление моментальных снимков, которое в основном указывает на код, да и на фактический код cfm, в котором, похоже, происходит ошибка. Блестящая функция, очень хорошо продуманная командой Intergral.

Другие вопросы по тегам