Performance Optimizations, List Operations, Glyphicons, Java 8 and More

Skip navigation

Performance Optimizations, List Operations, Glyphicons, Java 8 and More

Performance Optimizations, List Operations, Glyphicons, Java 8 and More by Johan den Haan

It’s time for another update on the product front. We have released a whole range of neat improvements that I’m sure you will like!

Applications reload 4 times faster

First of all, we improved the performance of opening an application built on the Mendix App Platform a lot. These improvements combined lead to 4 (!) times faster performance when reloading the application, as visualized in the following figure:

Reload time

The improvements are all about how we deal with static content, i.e. the HTML, JavaScript, CSS, images, and other resources. All static content now has proper HTTP caching headers. We use a cache bust to update the cached content when you do a new release of your application.

A cache bust is a unique string generated on every project deployment. To make use of cache busting you should modify your existing theme’s HTML files.

  • Add `?{{cachebust}}` to every URL pointing to a static resource (e.g. scripts and stylesheets).
  • Additionally add a property with name `cacheBust` and value `”{{cachebust}}”` to the `dojoConfig` defined in the index page.

If you create a new application, the default theme will automatically include the new cache bust configuration.

In addition, custom widgets are now automatically bundled when you create a deployment package, either locally or in the Mendix Cloud. This speeds up loading of the app, as it decreases the amount of requests required to load a Mendix application. Please note that this bundling process includes more stringent checks on how custom widgets use our APIs.

List operations for developer productivity

It was great to see how enthusiastically our community engaged in the first “Idea forum.” We selected the top 3 ideas for implementation. The first one is part of this release:

We added two new operations to the ‘List Operation’ microflow action: ‘Head’ and ‘Tail’.

  • Head returns the first element of the list, or empty if the list contains zero elements.
  • Tail returns a new list containing all elements excluding the first element, or an empty list if the list contains zero or one element(s).

The next release will include another top-voted idea: autospace in microflows. I already played with a first implementation, and I think you are going to like it… a lot!

We are about to select the next implementation candidates from the submitted ideas in the second edition of the Idea Forum. Again, an amazing amount of quality ideas have been posted. Thanks for being so involved with the direction of our product!

Bootstrap glyphicons for better looking UIs

Another neat improvement: we included more than 200 glyphicons in our Business Modeler. Glyphicons are the modern take on images.

GlyphiconsGlyphicons have a number of advantages over bitmap icons:

  • They are actually characters in a special font that comes with Bootstrap, the CSS framework we use.
  • Their size and color can be changed using CSS.
  • They remain sharp at any size and resolution.
  • They also result in better performance, as no separate image requests need to be made to the server.

And the best part of this feature: we included a way to batch update button icons (with some nice filtering options) to quickly update existing application models. Read everything about it in this blog post.

And a lot more…

I need to wrap up, but there are just a few more features I want to briefly highlight:

  • Annotations in Domain Models
    It is now possible to add annotations in domain models. This is a frequently requested feature that will help you to better document your models.
  • Java 8 support
    We have added support for Java 8. The Mendix Runtime now runs on both Java versions 7 and 8. During installation of the Mendix Business Modeler, JDK 8 will be installed if no JDK is present yet on the system. No new JDK will be installed when JDK 7 is already available.
  • MariaDB support
    In addition to MySQL, we now support MariaDB 5.5.
  • Deprecations as a separate category
    We now show deprecations as a separate category in the error list to make them easier to find. Previously, they were in the warning category. Deprecated features will disappear in a future release and should not be used anymore.

As always, you can read the full release notes here, and download the latest release here.

Author Info