Mendix upgrade preparation time!

It's been too long since my last post, but I genuinely have been too busy developing apps and growing our Mendix business to carve some time out to write (just ask my family!) That said, I wanted to get a few notes written down to help me remember a few things as we prepare our apps for the update process and maybe key other readers in on oft-overlooked features of the latest releases of Mendix to help them prepare as well.

5.18 or later

First and foremost, if you plan to update your projects to 6.0, you'll first need to ensure your project has been updated to 5.18 or later. By doing so you'll be dealing with 90% of the potential issues anyway.

Tools-->Check widgets

Once you do that update, you'll want to check the compatibility of your widgets. Starting around Business Modeler version 5.18 (if I recall correctly), the R&D team added a new feature to let you validate if your project widgets are compatible. When you upgrade your project with a new modeler, you'll usually have errors to fix before trying to deploy, but those errors don't indicate whether or not your widgets are compatible. Be sure to run this and check your widgets for compatibility.

Update your modules

If you are using Mendix-delivered modules, such as REST services or SAML, be sure to download the updated version that applies to your chosen release. Often times this clears up a lot of the errors as deprecated functions or layouts are usually released in these. 

A word of warning: While I'm sure none of you modify the standard modules directly and instead have custom microflow calls from another module or associate table, if you didn't follow best practices and customized your standard modules, move that customization out before you update. Otherwise you will lose all of your work!

Check your page layouts

The layouts have gone through a few different iterations of late If you are using the standard layouts and deriving your custom layouts from them, make sure to check that they still make sense after mapping in the updated modeler.

replace custom CSS with bootstrap themes

If possible, think about replacing your custom CSS work with theme-driven templates that you modify the css using SASS as a pre-processor. The time spent in the conversion is a huge savings as you need to add or modify to your existing application.

Batch replace

Keeping with bootstrap enabled principles and responsive designs, you can leverage the responsive icons instead of the old icons so they will shrink or grow according to the device your accounts are using to access the application. Under TOOLS in the Modeler, there are a number of options to batch replace icons, layouts, and others.

Wrap up

While this isn't an exhaustive list, it should help point you in the right direction for planning for your project upgrades. If you are like me, you don't update every time a new modeler version is released each month. When dealing with enterprise customers, that rate of change is still too great for governance to stay in front (which for the record needs to be addressed industry wide...I might share my thoughts on this in a future blog post). But when Major releases come out, such as the shift from 5.X to 6.X, we need to pay attention and respond and start working on updating accordingly. Hopefully these features and tips help you with your planning!

Also, see this Mendix blog for a more exhaustive list and dealing with Java 8.

EDIT: I found when working with Mendix 6 and Java SDK 8 that I could not get Mendix to find the SDK when installed on a drive other than C. I don't know if this was an isolated issue or common but I will raise it on as well.