Ask the Expert - Community Webinar Feb 22nd

Hello everyone! In February, we're organizing an Ask the Expert webinar, featuring MVP's Marc Lehane, Nolan Ramsey, and Mike Kumpf. In this one-hour session you can ask them anything! From how they got into Mendix and how they became MVP, to what they had for breakfast. This Ask the Expert session is your chance to pick 3 Mendix experts' brains, ask your most burning questions, and discover what makes them tick. They will share their Mendix expertise and development knowledge with the world in a live session on February 22nd. View the webinar recording here.
11 answers

My question to Marc, Nolan and Mike would be, besides what they had for breakfast, about their best practices when it comes to domain models. Most of you probably recognize the situation where it can become a challenge to oversee the complete model of your application. Especially when the number of modules in your project grows.

I would like to hear about your experience with, and ideas about three attention points on the matter.

  • Generalizations. Some people say generalizations are evil. They make things complex and will cause a performance hit. As a (former) Java developer, I'm used to think in a object oriented way and extend classes and implement interfaces. Normalizing your database feels similar to me and I think it provides structure and efficiency. What are your thoughts?
  • Self-references. When to use them and when not to use them?
  • Cross module stuff. I my opinion, a module should have as little dependencies to other modules as possible. This also applies to domain models. Please share your approaches with us.

First of all I really like the idea for this webinar.
We all know that mendix is realeasing new version quite regularly ca. once a month if I am not mistaken. With each version they add new features and fix bugs, but sometimes they also change some of the existing functionality. This makes it not very easy to keep your project up to date, because it might take a significant amount of time to fix any issues that arise during the upgrade.
  So my question is:
             What is your strategy when it comes to keeping up with mendix upgrades?

  • Do you upgrade immediately when there is a new version? Do you update a few version at a time?
  • How do you deal with problems in app store content when the upgrade breaks a certain widget for example?
  • Do you refactor your model to make use of new features? (e.g. conditional visibility made a lot of bool flags unnecessary)
  • How do you keep up with the wealth of new features? How do you keep your knowledge and best practices up to date?



One thing I would love to get some more information about is dynamically changing the language of the currently logged in user.

For instance, if I have a login page with a language selection box on it, which is tied to the language relation of the anonymous user - when this relation changes, I cannot for the life of me figure out how to get the page to refresh with the newly selected language. If I open a completely new page (using a hard link and not a 'show page' action in a microflow) then the language is applied, but getting the original page to switch seems to be difficult to impossible.

Similarly, with a logged in user, if I put an on-change microflow on the language selection drop-down, and update the language relation and then update the context object, the content of the page switches to the new language, but all the navigation items stay in the previous language.

Is there no way to elegantly manage a dynamic language change without having to manually reload the entire page or log out and log back in?

I'm sure I'm not the first one to want to do this, but over the last year I have not been able to find any good answers for this on my own or from the forum.



Hi there. 


I'm working on an application that's making heavy use of the charting component, and I'm wondering what is the best way to prepare complex data for the charts.


I tried using microflows but found that the process of getting the data out into a form the chart could use was a little bit cumbersome, so I switched to OQL. 


From what I've read there are performance advantages to using OQL, since it goes directly to the database rather than through the Mendix API. So my first question would be, is this still the case, or is there no real difference?


My second question concerns the long term viability of the OQL layer. Is this something that Mendix still actively supporting with improvements, more documented examples, and bug fixes? One major stumbling block I've hit is date processing: it's almost impossible to group data by date if there is a time component attached to the date field. I'd like to group data by days or months or years, but I'm not sure the best way to go about that. I'd love to see some extra OQL functions to make grouping by date, or parts of the date.


I'm also trying to avoid dropping down into Java by using the OQL module from the app store.


It works pretty well, though I am surprised that Mendix doesn't have its own OQL processing Microflow module as part of the standard kit. 


So in general, I guess my question is:


For generating data for charts, is OQL still the best option?




I'd be very interested to hear the MVP's approaches to testing and keeping an App maintainable.

I have started breaking out some logic into smaller unit testable sub microflows. This is allowing me to validate my logic and will hopefully make the Apps easier to maintain in the future.

I'd like to try Selenium based testing, but I'm not sure of the best way to setup and tear down consistent test data when doing this.

Finally, are there any tips for testing when external web services are called in an App?


Marc/Nolan/Mike, Thanks in advance for taking my question.

The background for the question is, I am helping my Client Organization with Mendix enablement; we have started with first app and expecting to develop 10+ in next 18 months.

The question is around SSO with Active Directory + ADFS requirement. Working with Mendix Consultant on-site, the solution approach being arrived at is AD integration at Mendix app level and needs to be repeated for each app. 

I am interested in knowing if there is an alternative. How did other Organizations with multiple apps in Mendix addressed SSO aspect? I was wondering if AD integration is possible with Mx ID. This approach would be modular and much cleaner integration and lets end-user have one identity in the platform.


Hi there,

Here is my question.

I'm looking for some best practices in implementing authentication and session management. I would like to know the different Mendix components involved in supporting the following authentication mechanisms simultaneously - authentication using user credential, touch id, pin & face id when the authentication source is external to Mendix(like Cognito IDM for instance).  

I would also like to know the role played by different system entities User, Session etc in authentication and session management. 




We would like to know a faster solution for handling with huge Entities and a lot of data, especially on a batch program.

It takes approximately 21 minutes to create 10,000 items of an Entity with 40 attributes.

It takes almost the same time above to create 10,000 items of an Entity with 130 attributes.

It takes approximately  4 minutes to create 10,000 items of an Entity with 1 attributes.

We have three Entities (40, 130 and 131 attributes each)  and 130,000 items and would like to process the all within 30 minutes.


Is there any way to make it faster for creating 130,000 items of a huge Entity with 130 attributes?

It takes 13 hours just to store into a database.



is there a way that i can make my Enumeration dynamic? in another way i need to define, edit,and remove values from the application?

for example a CRM application include hundreds of LOVs(Lists of values), i think its not logic to create a seprate table for every LOV!!!


what do you think, please advise



David (and community),

In reference to the question about language switching, you can download a copy of the demo project I reviewed in the webinar here.  This project has a snapshot of data, including the solution slides you can access through the menu on the left.  To use, open the project in 7.10 and login with username MxAdmin and password 1.

I am happy to try to answer any questions you may have about this.