Bye Bye Mendix 7!

Mitchel Mol
|
June 7, 2024

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.

Why upgrade?

Security

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.

Functionality

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!

Support

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.

How should I 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:

  • Review the release notes to spot any changes that might affect your application. Look especially at the breaking changes section.
  • Back up your application.
  • Download the latest version of the new Major version you are upgrading to (keep the MTS (Medium-Term Supported) and LTS (Long-Term supported) versions in mind, as you might not want to be on the absolute bleeding edge of the latest major version).
  • Open your application in the new version.
  • Let Studio Pro convert your application.
  • Update widgets/modules and other Marketplace components to the version supporting the new Mendix version you are upgrading.
  • Update any custom widgets and Java to be compatible with the new version of Mendix.
  • Update the theming (CSS) to fit the new version of Mendix.
  • Review and test your application.

What do I need to upgrade?

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.

Who does the upgrade?

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.

When should I 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.

Let's make a start together!

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.

Low-code café online

Digitalisering met Simone Mink: Do's and Don'ts
Register now!
By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.

Heading

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

Low-code café online

Digitalisering met Simone Mink: Do's and Don'ts
Register now!
By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.