Mendix 7 has been at the end of life for almost a year now. This means that security patches and critical bug fixes have not been released since. Unless you bought the extended support package, you must take immediate action if you haven't already, especially since you cannot deploy a new version of your Mendix 7-based application from July 1st 2024.
Support for a major version is halted when three new major versions are released. Mendix 7 lost support the moment Mendix 10 was released in June 2023. That means you should start creating a strategy for upgrading any Mendix 8 applications, as Mendix 11 will be released a year from now.
I have helped many companies with upgrades as far back as Mendix 2. Since then, a lot has changed. Besides a few minor inconveniences, upgrading a Mendix application is relatively easy if you haven’t extended it much with Java or custom widgets.
First of all, there is the focus on security. When running your application on an older unsupported version of Mendix, you might be at risk of security issues. I’m not talking about the security issues you need to act on, such as good password management, but the parts Mendix takes care of for you. As a low-code platform, there are many aspects that Mendix does for the application, but you can’t influence it. Running an older, unsupported version means that any newly discovered security issues will not be patched anymore.
New Mendix versions bring many new features. These might not always be features you need, but if you do, they can help your application development or even offer better features for your end users. Starting with Mendix 8, there have been improvements to queueing, REST service implementation, data widgets, AI, AWS integrations and much more!
Mendix support will not be able to assist you with an unsupported version of Mendix. If you run into any trouble, you will be requested to upgrade it as soon as possible. Many issues with the platform could have been patched in a more recent version of Mendix.
The same goes for any widgets, modules, and other components you use from the app store; support for older versions compatible with older Mendix versions will be limited to nonexistent.
The rest of the Mendix community will move on to the newer versions, and they will not be able to help with your questions from older versions except to encourage you to upgrade.
The first important step when upgrading is to review the Mendix documentation. The release notes and the upgrade documentation will provide extensive information on breaking changes between major versions, steps to upgrade gracefully, and anything to remember when moving from Mendix 7 to 8 to 9 and eventually 10.
These are the generic best practices:
Besides the Mendix application you opened via Studio Pro, you must upgrade any code in your application that has become incompatible with the new version. But even code that is backwards compatible needs your attention.
Due to the latest improvements in the version you are upgrading towards, you should eliminate and replace old methods with new, improved ones. For example, Mendix 9 introduced the task queue, a built-in queueing mechanism that is multi-instance compatible with this introduction. The separate process queue module became irrelevant and should be replaced by the implementation-friendly and more efficient task queue implementation. There are many more of these types of “easy upgrades”.
Besides that, any custom Java/JavaScript and CSS should be closely analysed to take advantage of any improvements to the new Mendix version. Besides that, you are likely to stumble upon breaking changes due to Java/JavaScript API changes and the evolving DOM structure.
First and foremost, this will be the responsibility of the developers as most of the work will be done within Mendix Studio Pro and any IDE that takes care of the extensions and theming.
However, an upgrade requires preparation and a lot of testing effort. So, a team's PO needs to plan and ensure an upgrade can be done with as little interference as possible. If you want to continue developing new features while upgrading, you will likely end up implementing the features twice: once in the old version code base and once in the upgraded version.
Then, there is the testing effort; end-users and the development team are involved. If available, the test engineers must review the whole application to ensure it operates as expected after the upgrade.
I have always liked the December - January period. Even though many folks are on holiday, it is a period in which not many new features are generally demanded. This gives you plenty of time as a development team to do the upgrade while not losing focus on feature implementation.
I recommend waiting until the second MTS of the latest major version before upgrading. Unless you need a new feature. This gives widget, module, and other component developers a reasonable amount of time to upgrade their contributions to the marketplace. On top of that, Mendix R&D will figure out any bugs they did not catch during their extensive testing/BETA period with the new major version. Besides that, Mendix has released many BETA features in the latest GA (General Availability) major version and MTS versions of the then latest Major version of the platform. This means that when you start using these features, they could change significantly with the final LTS version, causing a lot of additional development effort to move your code to the GA version of those features.
Does upgrading your Mendix application give you nightmares? Do you still have no idea where to start? Or has your original Mendix implementation team left the building, and you thought you were set for life?
Please reach out and let me or my colleagues from Blue Green Solutions give you a helping hand. As mentioned in the introduction, I have guided many upgrades, returning to my first upgrade from Menidx 2 to 3. I won’t say all of them have been easy. Some of them have given me nightmares. However, the upgrade process has become easier over the years. This is important as Mendix apps have become much more complex, and I only function with a good night's sleep.