Mendix Release 9.18 – Next-level Performance
This month brings a jam-packed release focused on boosting performance to the next level. No matter if it’s Studio Pro, or your own performance, with this release you will be able to build apps faster and better. Why? Studio Pro has been significantly improved! Including working with Git, page building has become more productive with multiple page parameters and the new app explorer, sign-in is faster with the new SSO improvements, and generating validations is now a breeze with the new validation bot. That’s not all! We’ve got updates around mobile encrypted storage, improved logging, the new email connector, and last but certainly not least: Business events.
The 9.18 release is also not an ordinary release – it is an MTS release which means we will backport bug fixes to this version to offer a rich, but stable version, which is especially interesting for projects in production. Read more about MTS releases in our documentation.
With Mendix 9.18, we doubled down on performance improvements to make Studio Pro faster – a lot faster! In some instances, such as when finding usages and duplicating documents, it is up to 12 times faster than in version 8. With this release, working in Studio Pro is now smoother than ever.
Tab switching speed has also been improved significantly, as well as the performance of the app security dialog (which is now also resizable!). Another improvement we’re serving up is the performance in certain tables, where enhancements were made to the speed of configuring REST services, enumerations, or anywhere else that tables are used.
Startup when you don’t have a network connection, as well as the App Selector, have also been improved, meaning that you can start working on your app sooner. We also resolved several memory leaks that would slow down your experience over time, meaning that Studio Pro keeps running smoothly when you work for longer periods of time.
Next to that we added native ARM CPU support which means that Studio Pro runs a lot faster in Parallels on new Macs, like the M1(Pro) and Surface Pro X.
Overall, Studio Pro now responds faster than ever, making this the best Studio Pro experience yet.
For customers that are already using Team Server Git, released with 9.12, we’re happy to share that performance has significantly improved as well. Together with Studio Pro, we now install a command-line client (CLI) for Git, allowing us to rely on proven tooling for the best performance when interacting with the server.
To help with rapidly growing local repositories you can now execute a repository optimization directly from Studio Pro, which executes the command for Git garbage collect. Additionally, we execute this in the background periodically; something you can tweak in the preferences.
In the last quarter of the year we will also release a self-service SVN to Git migration, so make sure to check next month’s blogs or keep refreshing home.mendix.com 😉
External browser SSO
Signing in is now easier than ever! Instead of signing in to Studio Pro from the sign-in window, your default browser will open. This allows you to use the session from your browser in case you are already logged in there, creating a faster login. You can also now sign in from the app selector window. This makes it a lot easier to see if you are logged in or not.
Improved page-building experience
This month brings big improvements in your page-building experience!
We made page building simpler and more powerful by introducing a new tool window called Page Explorer, which shows your page structure as a tree view. Tree view gives a quick and clear overview of your page structure for faster understanding of your page, and makes it easy to add or move widgets via drag-and-drop to copy and paste widgets. It can also be used to open the widget properties.
We see the biggest value for design mode as it gives often-needed control. However, it can be used in combination with structure mode as well. Use how you like it!
With a default Studio Pro layout, the new view can be found on the left pane behind the App Explorer. Alternatively, it can be activated in the View menu.
Multiple page parameters
With this release, we improved our page modeling language by adding support for multiple page parameters, which makes it much more simple to use multiple objects on a page that do not have an association. You can now pass multiple arguments when opening a page in the same way as you are used to with microflows and nanoflows! Previously you had to use an NPE to bring them together, or use a dataview with a microflow as a data source. Not anymore! This makes it simpler, faster and keeps your domain model cleaner!
It is still very familiar, but now you can add multiple top-level data views, each connected to a different parameter. Page parameters can be referred to from top-level and nested data views, and a page parameter can also be used by multiple data views. Additionally, you can directly select associations of a page parameter, reducing the need for an additional data view just to be able to follow the association, therefore reducing the complexity of the page.
Page parameters are created automatically when you select an entity for a context data source of a data view, or you you can define the parameters of a page at page level directly, whatever you prefer. Read more in the documentation.
Mobile operating systems do an excellent job in keeping their users’ data safe and secure. In particular, they can encrypt all user data stored on the mobile device. In some scenarios, though, this built-in encryption might not be enough. For apps handling extra sensitive data, like medical records, it must be ensured that this data is encrypted even if the host device is not, or is in some way compromised.
In this release, we are adding an option to encrypt the local database (that is the database stored on the mobile device to hold all synchronized objects) of native mobile apps build with Mendix. You can enable this option in the configuration dialog of the native mobile profile. Encryption should only be enabled if needed, because it comes with an impact on performance, especially for slower mobile devices. You can read more about local database encryption in the documentation.
Download and open files
There are several use cases for mobile apps to open documents like a PDF or Word document from you native mobile app (while you are offline). We now added a “Download File” activity, similar to the microflow variant, that enables you to store the file on your file system and open the file using an installed app. Download the latest version Native Mobile Resources module to start using this.
With this release, a new Mendix Assist feature called Validation Assist is revealed! Validation rules are conditions that should be satisfied before an object is committed. There are different ways to set up data validations in Mendix. Currently, building data validations in microflows is a manual and repetitive task. Validation Assist helps developers to build validation microflows in a more automated way using pre-built expressions. The main features of the Validation Assist are the following:
– List of checks for all members which data type can be empty, for example, when a customer’s name is not filled in a form
– Prefilled dialog box with microflow and validation properties
– Ability to extract validations as a sub-microflow
– Ability to call an existing validation sub-microflow in a new validation microflow
– Auto-generation of the validation microflow
Language selector widget
With Mendix you can make multi-lingual apps. This month we’re showcasing a widget that makes it simple for end-users to change the language of the app, especially for anonymous users. This widget is included by default in the Atlas layouts, and is easy to use by updating Atlas core module. However, you can also download the widget separate from the marketplace.
New date functions in expressions
Sometimes you’d like to write a Decision expression to validate if a specific date falls in a range of dates, e.g. in a specific week, month or year. We’re adding a set of four new BeginOf… date functions, like BeginOfMonth, BeginOfWeek, to calculate the beginning of a date range. Furthermore there are also four EndOf… functions to calculate the end of a date range. This can be used, for example, to check if a new employee starts working this month for the company.
With the latest version of our Email connector it will be even easier to send and receive emails. The new connector combines all existing capabilities and we added a bunch of stuff on top of it.
It is now even easier to set up your email accounts, as we have added a simple configuration flow that will help you get started in no time. And since Microsoft has announced the deprecation of basic authentication for their email infrastructure, the new connector allows you to setup Azure OAuth as authentication option. Want it extra secure? Just use our new encrypt and signing capabilities to ensure emails are being sent according to any compliance policies you might have.
Anything new marks the end of something old. With all the good stuff going on in our new connector we will deprecate the existing ones – E-Mail module with templates and IMAP/POP3 incoming email.
Business events and event broker
We’re excited to launch a completely new way of connecting your apps. Mendix Business Events can be used to inform applications about important events in your organization in real-time without creating a tight dependency between your applications.
Expectations that your users have of your software keep rising: When they order something in your webstore, for example, they expect it delivered immediately, or if they file an insurance claim they want to receive reimbursement within minutes. Being able to act in near real-time is crucial for the service quality customers have come to expect, as well as to ensure your organization works as efficiently and effectively as possible.
Modeling the required software with synchronous integration like Rest, OData or Webservices is a possible but not easy feat, and it comes at a cost. Clients will often poll a service periodically, like every five minutes or every hour, to ask for changes. This puts serious load on the service and the client apps. Alternatively, the service app needs to maintain a registration of all interested apps, send events to all of them, and provide retry functionality in case subscribed applications are not available.
Business Events and the Event Broker offer a much simpler way to model this based on asynchronous communication. The Mendix Event Broker ensures Business Events will be delivered almost instantaneously to all subscribed apps reliably, even when apps are temporarily unavailable. This allows you to do something like, for example, upgrade apps without impacting business continuity.
Business Events are modeled as part of your domain model as they represent key information for your organization. For example, if you have an app handling customer claims, events can be used to signal a claim was filed, cancelled, approved, or declined.
A Business Events Service defines the events provided by an app. Here you list all the Business Events, and provide relevant documentation and information. Once defined, you can export a contract describing this Business Events service. This contract can be used by developers implementing other apps to understand what events are provided by the service. The Business Events contract is based on the open standard for event-based contracts, AsyncAPI.
Business Events defined in a contract will be visualized in the Data Hub pane, similar to how you see External Entities provided by services.
You can subscribe a microflow to an event by simply dragging the relevant Business Event to your domain model.
Every time your application receives a Business Event, your microflow will be triggered so you can immediately execute any logic or workflow to handle the event.
To exchange events between apps you will need an Event Broker. A multi-tenant Event Broker is provided for all free apps, enabling event communication between apps in your organization. For licensed nodes, you can contact your CSM or Account Manager. All configuration is handled completely out-of-the-box, so all your apps will be connected to the correct Event Broker by default, similar to how this is done automatically for apps and their database.
To get started, select “Published Business Event service” in the “add other” menu, and follow the instructions. You will also need to download the Mendix Business Events module from the Marketplace. For more information, see the official documentation.
External entities and OData APIs
It would be nice if External Entities would support all filtering, sorting, pagination, and counting. Unfortunately, this depends on the services providing support for these functionalities. Especially when you’re using Connector Kit 2 to adopt existing services to External Entities, these services may not support every functionality.
As of Mendix 9.18 the entity dialog for External Entities will show if attributes support filtering or sorting. When you try to use an attribute in a way that is not supported, (e.g., as a search field in a data grid when the attribute does not support filtering), an error will be displayed.
We have released a new version of Epics (still in beta) which makes it even easier to collaborate effectively. Now if you @mention a team member in a story description, they will receive a notification.
Also, you can now see your stories from Epics in Studio Pro and link your commit to a relevant story. Since story statuses are completely customizable in Epics, for now all the statuses which are not “To Do” or “Done” will be mapped to “Running”.
We’ve also added some other small improvements. For instance, now it’s easy to copy a link to a story and share it however you’d like.
And if you need to quickly go back to your project, there’s now a handy button for that.
Special thanks to everyone who has sent us feedback so far – and please keep it coming!