1

I am working on coldfusion9 application now we want to upgrade our application to coldfusion 2021 in this context we want to know

  1. If we upgrade our application coldfusion 9 to coldfusion 2021 do we need to do any code modifications after upgrade or simply upgrade to Coldfusion 2021 does all the things?
  2. Because coldfusion 2021 has cloud support does our coldfusion 9 code will work in the cloud after upgrade.. if it will work what are all the code & configuration level modifications we need to do?

Looking for your earliest reply.....

Thanks…

Miguel-F
  • 13,450
  • 6
  • 38
  • 63
  • This type of question is likely to be closed because it is not programming specific and is too broad for StackOverflow. That being said, [read and follow the CF 2021 migration guide](https://www.adobe.com/content/dam/acom/en/products/coldfusion/pdfs/cf2021/cf2021-migration-guide.pdf). It is not going to get you 100% there but should be a good start. You can run the _Code Analyzer_ tool to review your codebase for things that need to be changed. – Miguel-F Oct 25 '21 at 12:17
  • It won’t be a simple install and will likely be a significant effort, depending on how big your app is. Might want to check out Lucee since it will be an effort anyway, and Lucee is open source and has a solid user base. I switched about 6 years ago and never looked back. – Redtopia Oct 25 '21 at 13:50

2 Answers2

2

As @Redtopia says, "it depends". It will rarely be the vase that you can just upgrade from CF x to CF z where there have been multiple major releases between x and z. How large is your application? Not just the code base, the collection of features?

As for "the cloud", just realize that is a marketing term that means, "someone else's computers". That part of the conversion depends on a number of things on its own. Are you converting from Windows to Linux as well? That would have additional pain points.

For example, ColdFusion 10 switched from using JRun to using Tomcat as the underlying Java servlet platform. Then there have been upgrades of Tomcat with every version of CF since then.

There are some deprecated tags that may still function. Lots of the built-in JavaScript libraries have either been upgraded or switched out entirely, so if you're using <CFFORM>, some may work, some may not. CFchart will work differently than you expect.

Then there are things CF9 let you get away with that later versions became more strict about. Incorrect tag attributes and the like.

And if you try converting to Lucee, the open source CF engine, you'll have some additional work to do in understanding how that CF Admin works vs. the Adobe CF Admin. It's mostly the same, but there are enough differences that you could have an additional learning curve to the process.

And let's not forget that you're also going to be significantly upgrading the version of the underlying JDK, which could bring additional headaches.

Regarding the code analyzer, you may run into some headaches there. I last used it to upgrade from CF 11 to 2018. I got an infinite number of false positives where it's looking for a static value in a tag attribute (secure="true") where you're got a variable set instead (secure="#isSecure#"). Not sure if they've done anything to address that.

Finally, as Miguel suggests, follow the migration guide. But also make sure to follow the ColdFusion lockdown guide to address many of the security concerns with the new server installation.

I've done this multiple times, it's rarely as easy as you'd hope. Bottom line is, you'll have to test everything end to end before you know what does and doesn't work and how much effort may lay ahead to complete the conversion.

Adrian J. Moreno
  • 14,350
  • 1
  • 37
  • 44
1
  1. Unfortunately there is not a easy button that will do this automatically for you. The code analyzer and other tools might help you a bit but it really boils down to how much you or someone else in the team knows inside out about this code base. I will give you couple of examples.

a. in our code base when we migrated from CF 9 to CF 11 or up, the main problem we ran into is that the cfprocparam datatype which was lenient in previous versions. We had to make sure all our datatypes matched between CF code and SQL Server Stored Procs. This was the most painful part of the migration but once we know what we had to do, things became much easier. So knowing how many queries you have vs stored procedures in your code base will give you an idea on the level of effort.

So on the same lines you will have to see your code and test thoroughly all the pages to identify which areas are breaking after the upgrade.

b. old libraries like datepicker etc will break and there is a work around atleast for CF 2018. I dont know if that was taken care of in CF 2021.

  1. This is dependent on 1. I believe if you get 1 right then 2 will work because you have already taken care of the underlying compatiliby code issues.

Bonus tips and suggestions

I. Please think about how you are going to do this i.e. either local development or QA/UAT server. You need to have a gameplan for this. A separate setup or install just for migration is the way to go so you dont break things and get frustrated.

II. Make sure you have some kind of version control and branches created for your code base so you can keep working on projects as well as CF 2021 migration changes

III. Last but not the least. Get FusionReactor for ColdFusion monitoring tool for your local or QA setup. I would recommend this very highly. This will solve and reduce your troubleshooting efforts from minutes and hours to seconds. In the new version they have snapshot view which basically pinpoints you to the code, yes actual cfm code where the error seems to be happening. Brilliant feature which was very well thought out by Intergral team.

Dharman
  • 30,962
  • 25
  • 85
  • 135
ah7866
  • 136
  • 3