1

我正在开发coldfusion9应用程序现在我们想在我们想知道的情况下将我们的应用程序升级到coldfusion 2021

  1. 如果我们将应用程序 Coldfusion 9 升级到 Coldfusion 2021,我们是否需要在升级后进行任何代码修改,或者只是升级到 Coldfusion 2021 来做所有事情?
  2. 因为 Coldfusion 2021 具有云支持,所以我们的 Coldfusion 9 代码在升级后是否可以在云中运行。如果它可以运行,我们需要做的所有代码和配置级别修改是什么?

寻找您最早的回复......

谢谢……</p>

4

2 回答 2

2

正如@Redtopia 所说,“这取决于”。它很少是你可以从 CF x 升级到 CF z 的花瓶,在 x 和 z 之间有多个主要版本。您的应用程序有多大?不仅仅是代码库,还有功能集合?

至于“云”,请意识到这是一个营销术语,意思是“别人的电脑”。转换的那部分取决于许多事情本身。你也在从 Windows 转换到 Linux 吗?那会有额外的痛点。

例如,ColdFusion 10 从使用 JRun 切换到使用 Tomcat 作为底层 Java servlet 平台。从那时起,每个版本的 CF 都对 Tomcat 进行了升级。

有一些已弃用的标签可能仍然有效。许多内置的 JavaScript 库已经升级或完全关闭,所以如果您使用<CFFORM>,有些可能有效,有些可能无效。CFchart 的工作方式与您的预期不同。

然后是 CF9 让你侥幸逃脱,后来的版本变得更加严格。标签属性不正确等。

如果您尝试转换为开源 CF 引擎 Lucee,您将需要做一些额外的工作来了解 CF Admin 与 Adob​​e CF Admin 的工作方式。大部分是相同的,但有足够的差异,你可以有一个额外的学习曲线的过程。

我们不要忘记,您还将大幅升级底层 JDK 的版本,这可能会带来额外的麻烦。

关于代码分析器,您可能会在那里遇到一些头疼的问题。我上次使用它从 CF 11 升级到 2018。我得到了无数的误报,它在标签属性 ( secure="true") 中寻找静态值,而你有一个变量集 ( secure="#isSecure#")。不确定他们是否采取了任何措施来解决这个问题。

最后,正如 Miguel 建议的那样,遵循迁移指南。但也要确保遵循ColdFusion 锁定指南来解决与新服务器安装有关的许多安全问题。

我已经多次这样做了,它很少像你希望的那样容易。底线是,您必须先对所有内容进行端到端测试,然后才能知道什么有效,什么无效,以及完成转换可能需要付出多少努力。

于 2021-10-25T14:36:57.963 回答
1
  1. 不幸的是,没有一个简单的按钮可以自动为您执行此操作。代码分析器和其他工具可能会对您有所帮助,但归根结底是您或团队中的其他人对这个代码库的了解程度。我给你举几个例子。

一个。在我们的代码库中,当我们从 CF 9 迁移到 CF 11 或更高版本时,我们遇到的主要问题是 cfprocparam 数据类型在以前的版本中是宽松的。我们必须确保 CF 代码和 SQL Server 存储过程之间的所有数据类型匹配。这是迁移过程中最痛苦的部分,但一旦我们知道必须做什么,事情就会变得容易得多。因此,了解代码库中有多少查询与存储过程将使您对工作量有所了解。

因此,在同一行中,您必须查看您的代码并彻底测试所有页面,以确定升级后哪些区域出现故障。

湾。像 datepicker 等旧库将会中断,至少 CF 2018 有一个解决方法。我不知道这是否在 CF 2021 中得到了解决。

  1. 这取决于 1。我相信如果你得到 1,那么 2 会起作用,因为你已经处理了底层的兼容性代码问题。

奖金提示和建议

I. 请考虑您将如何执行此操作,即本地开发或 QA/UAT 服务器。你需要为此制定一个游戏计划。一个单独的设置或安装只是为了迁移是要走的路,这样你就不会破坏事情并感到沮丧。

二、确保您为代码库创建了某种版本控制和分支,以便您可以继续处理项目以及 CF 2021 迁移更改

三、最后但是同样重要的。为您的本地或 QA 设置获取 FusionReactor for ColdFusion 监控工具。我会非常推荐这个。这将解决并将您的故障排除工作从几分钟和几小时减少到几秒钟。在新版本中,他们有快照视图,基本上可以将您定位到代码,是的实际 cfm 代码似乎正在发生错误。Intergral 团队经过深思熟虑的出色功能。

于 2021-10-27T17:28:04.807 回答