Переход с Coldfusion 9 на Coldfusion 2021
Я работаю над приложением coldfusion9, теперь мы хотим обновить наше приложение до coldfusion 2021, в этом контексте мы хотим знать
- Если мы обновим наше приложение Coldfusion 9 до Coldfusion 2021, нужно ли нам вносить какие-либо изменения в код после обновления или просто перейти на Coldfusion 2021, чтобы сделать все?
- Поскольку в 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, чтобы устранить многие проблемы безопасности при установке нового сервера.
Я проделывал это несколько раз, это редко бывает так просто, как вы надеетесь. Суть в том, что вам придется протестировать все от начала до конца, прежде чем вы узнаете, что работает, а что не работает, и сколько усилий может потребоваться для завершения преобразования.
- К сожалению, нет простой кнопки, которая сделает это автоматически за вас. Анализатор кода и другие инструменты могут вам немного помочь, но на самом деле все сводится к тому, насколько вы или кто-то другой в команде знаете наизнанку об этой базе кода. Приведу пару примеров.
а. в нашей кодовой базе, когда мы переходили с CF 9 на CF 11 или выше, основная проблема, с которой мы столкнулись, заключалась в том, что тип данных cfprocparam был снисходительным в предыдущих версиях. Мы должны были убедиться, что все наши типы данных совпадают между кодом CF и хранимыми процедурами SQL Server. Это была самая болезненная часть миграции, но когда мы узнали, что нам нужно делать, все стало намного проще. Поэтому знание того, сколько запросов у вас есть по сравнению с хранимыми процедурами в вашей базе кода, даст вам представление об уровне усилий.
Таким образом, в тех же строках вам нужно будет увидеть свой код и тщательно протестировать все страницы, чтобы определить, какие области ломаются после обновления.
б. старые библиотеки, такие как datepicker и т. д., сломаются, и есть работа, по крайней мере, для CF 2018. Я не знаю, позаботились ли об этом в CF 2021.
- Это зависит от 1. Я считаю, что если вы получите 1 правильно, то 2 будут работать, потому что вы уже позаботились об основных проблемах кода совместимости.
Бонусные советы и предложения
I. Пожалуйста, подумайте, как вы собираетесь это делать, т.е. локальную разработку или сервер QA/UAT. Для этого у вас должен быть план игры. Отдельная установка или установка только для миграции - это способ, чтобы вы не сломали ничего и не расстроились.
II. Убедитесь, что у вас есть какой-то контроль версий и ветки, созданные для вашей базы кода, чтобы вы могли продолжать работать над проектами, а также над изменениями миграции CF 2021
III. Последний по порядку, но не по значимости. Получите инструмент мониторинга FusionReactor для ColdFusion для локальной настройки или настройки контроля качества. Я очень рекомендую это. Это позволит решить и сократить ваши усилия по устранению неполадок с минут и часов до секунд. В новой версии у них есть представление моментальных снимков, которое в основном указывает на код, да и на фактический код cfm, в котором, похоже, происходит ошибка. Блестящая функция, очень хорошо продуманная командой Intergral.