The Mendix April Release: REST, Hot Deployment and More
It feels almost strange that it was only a month ago that we had the largest gathering of Mendix Community members in the history of mankind. It is also less than a month ago that we launched our AppCloud and free Community Edition. We have seen steep growth in the use of sandboxes since then! We enjoyed Mendix World and the subsequent releases as much as any of you, and we thought the proper way to celebrate a release is to make it even better. So, here we go with the Mendix April release:
As most of you know, we have easy-to-use but powerful integration capabilities in our platform. In addition to this, I am happy to announce the availability of a REST add-on in our App Store. This add-on can be used in Mendix apps as a toolkit if you want to achieve one of the following:
- Consume JSON REST based services
- Publish data or microflows through REST API’s
- (Real time) Synchronization of data between Mendix applications
This module is able to invoke most, if not any, REST service which is based on JSON, form-data, multipart or binary data. Publishing a REST service is pretty straightforward too. The module provides publishing REST services in two flavors:
- Publishing operations, based on a single microflow.
- Publishing a part of your data model, and providing a typical REST-based API to retrieve, update, delete, create and even real-time sync data (the sync API and behavior are heavily inspired by the CouchDB changes API).
But the best part: it is completely open source! In this way, we can guarantee that it is possible to integrate with any API out there, even if the current add-on doesn’t support a certain API flavor yet. We are looking forward to your contributions! Please have a look at the complete readme at GitHub.
Improved UI modeling
Continuing the process we started with earlier releases this year, we again added a number of small features that will make it easier to design a great user experience for your app.
Labels have a new property ‘Render mode’ that is either ‘Normal’ or ‘H1’ through ‘H6’. The ‘Render mode’ property of the table cell is gone; instead they now have a ‘Cell type’ property that can be either ‘Normal’ (<td>) or ‘Header’ (<th>). Cells that had render mode ‘Title’ will be converted to ‘Normal’ cells and any labels inside them get the render mode ‘H2’. These changes make it easier to change the appearance of your app without the need to dive into CSS.
Another small change is the new option ‘Single select and maintain’ for data grids and template grids. This option ensures that grids always have one item selected; you cannot deselect the item. This is useful in situations where you have other form elements that “listen” to these grids, which should never be empty. With this feature, you can for example create layouts with navigation lists based on template grids.
App Services improvements
With the previous Mendix 5 release, we introduced App Services to easily share logic and data across applications. App Services can be used to connect multiple applications within a company (e.g. an app that stores your product data, which can be easily re-used in any other app), but companies can also build App Services and publish them to the Mendix Community App Store as out-of-the-box, cloud-based building blocks that can be used in any application (e.g. send email, send text messages, identity management and SSO, etc.).
Based on some great user feedback we also significantly improved the way we transfer the domain model from the provider to the consumer application, thereby fixing a number of issues around associations and their cardinalities as well as entity duplication. We also added the possibility to individually select entity attribute members and associations to include in published app services, and whether or not they are optional.
One of the most frequently used buttons in our Business Modeler is the “Deploy & Run” button that turns the model into an actual application. We added an experimental option to update a running project (instead of restarting it) only if changes to pages, layouts or snippets were made. You can enable this option in the preferences section. The following chart shows you the results for a large test project, the Company Expenses sample app from the App Store, and our own App Store itself (which is built using Mendix).
This means, if you only change elements in the UI of your app, the deployment will be extremely fast. If we receive positive feedback, we will make this the default in our next release.
April 2014 will probably also be remembered as the month of Heartbleed, a serious vulnerability in the widely used OpenSSL cryptographic software library. I am proud of the Mendix ops team for patching all systems for all our customers within 2 hours after a patch was available (and yes, that was in the middle of the night).
In the same category: earlier this year, a third party performed an annual security penetration test on all our systems. The annual test is standard practice at Mendix, to ensure that platform security is and remains on the highest possible level. Over the last month, we implemented all their recommendations and released them into production. This ensures that all apps built with Mendix are compliant with the latest common security guidelines. Of course, you need to use our Security DSL to ensure security on the functional level (which specifies who can access what process and data).
Upgrade existing apps to make use of the AppCloud Services
With the release of the AppCloud, we introduced a new project layout and module that make use of the new Mendix AppCloud services. With the AppCloud Default Project layout, you can easily create new apps that make use of AppCloud services out of the box.
On top of the items described in this post, we of course did numerous fixes. See the release notes for more information. As always: all features are automatically available for everyone online. To get the new features in the Business Modeler, download the most recent version (5.4.0) here).