Introduction To Mendix 2023
Introduction To Mendix 2023
net/publication/374443771
INTRODUCTION TO MENDIX
CITATIONS READS
0 488
2 authors, including:
Peter Mileff
University of Miskolc
35 PUBLICATIONS 46 CITATIONS
SEE PROFILE
All content following this page was uploaded by Peter Mileff on 04 October 2023.
doi: https://doi.org/10.32968/psaie.2023.3.5
INTRODUCTION TO MENDIX
HERMANS MARC
University of Miskolc, Hungary
Institute of Logistics
[email protected]
miskolc.hu
PÉTER MILEFF
University of Miskolc, Hungary
Institute of Informatics
mileff@iit uni-miskolc.hu
1. Introduction
The use of Excel spreadsheets in managing logistics processes has created a tangled
data jungle for many organizations. These spreadsheets, while familiar and easy to
use, present numerous challenges such as version control issues, data loss, and
inefficient workflows. The reliance on manual data entry and copying and pasting
between systems further exacerbates these problems, resulting in significant costs
and lost revenue due to inefficiencies. Additionally, miscommunications between
business and IT often lead to frustrated users resorting to building their own
spreadsheet solutions.
To address these challenges and bring order to the chaos, companies like Siemens
Italy [7] have turned to Mendix, a powerful low-code development platform.
Mendix offers an all-in-one solution for automating business processes and
migrating away from the spreadsheet jungle. One of the key features of Mendix is
the Workflow editor, which simplifies the development of complex data structures
and allows for visualizing and modifying business process logic. This enables
domain experts, who have a deep understanding of logistics processes, to actively
Short introduction to Mendix 65
At the lowest level of abstraction, programming was done using binary code, which
consists of ones and zeroes that directly represent machine instructions. This was
followed by assembly language, which uses mnemonics to represent machine
instructions and provides a higher level of abstraction. High-level programming
languages such as C++, Java, and LISP were then developed to provide even higher
levels of abstraction, making it easier for developers to write code by providing
more expressive syntax, built-in data structures, and other features.
These languages also introduced concepts such as object-oriented programming
and functional programming, which further expanded the range of programming
paradigms. In recent years, there has been a trend towards visual programming and
low-code development platforms, which provide an even higher level of abstraction
and enable developers to create applications without writing much code. Mendix is
a good example of such a platform. These platforms allow developers to focus on
the business logic and user experience of their applications, while the platform
handles the underlying technical details.
The ability to release products faster with low-code development creates a virtuous
circle of value, where more value can be delivered in a shorter amount of time,
leading to the ability to build even more solutions. For example, delivering a
solution three months sooner not only adds three months of business value but also
creates an additional three months to develop more solutions. With low-code,
organizations can build more solutions, adding value that would not be possible
with traditional methods. The benefits of low-code application development are
demonstrated by examples such as NC State University's lab management solution,
which was built in just six months and delivers $1M in new revenue per year.
Low code offers benefits beyond just faster time-to-market and increased business
value, it can also improve IT productivity. Technical debt can be reduced with low
code by using reusable components, collaboration-focused IDEs, and easy
integration with other systems. This can result in reduced capital expenditures and
operating expenditures, as well as decreased development and support time, which
can significantly impact cost savings. For example, a Mendix customer was able to
shrink the time spent on product approvals from 34 hours to just 4 hours with low-
code development, resulting in significant cost savings. Overall, low code can
increase IT efficiency and enable developers to focus on new opportunities.
4. Welcome to Mendix
The Developer Portal is one of the key components of the Mendix Platform. After
Registering, the user is redirected to the home page of this portal. In the Developer
Portal, Mendix developers can collaborate, deploy, and manage their apps, and
manage their company and users. The Developer Portal also offers open, well-
defined APIs, enabling third-party developers to integrate their own widgets and
plugins.
The Mendix developer portal offers several key features, including the Mendix
Home button, which takes you to the portal's main page. You can acquire the user
70 M. Hermans
interface for building Mendix applications, called Studio Pro, by clicking the Get
Studio Pro button. Additionally, you can access the marketplace to search for 3rd
party plugins, which range from free to paid depending on company regulations.
The Data Hub allows you to centralize all your data sources for your applications.
Finally, the Learn section provides access to the main documentation on the
platform as well as on Studio Pro, the Mendix Academy, and, depending on
company regulations, the Mendix forums and community.
After selecting an application, Mendix presents two primary sections: the
Collaborate and the Deploy sections. The Collaborate section contains several
topics in order of importance, starting with the Teams section. Here, we can build
our team and invite all stakeholders to the project, assigning them following roles:
SCRUM Master, Application Operator, Business Engineer, End-User, Product
Owner.
The Stories section is the most ingenious part of the developer portal where we can
define the required functionality of our application in the form of short stories.
These stories are initially collected in a backlog, and the SCRUM Master assigns
them to the engineers. Each team member can view their open tasks, the task they
are currently working on, and report back once they have completed the task. This
allows them to continuously monitor the progress of the application and ensure its
maturity.
In the Document settings, we have the option to create documents that will be
available alongside the application. On one side, we can hold descriptions of how
the application is built, and on the other side, we can collect documentation on how
to use the application for end-users.
In the General Settings, we can set things like the cloud environment to deploy to,
access management, and register needed public API keys. We can also manage the
project and view the history of the application's evolution.
Short introduction to Mendix 71
One of the key features of OOP is inheritance, which allows classes to inherit
properties and behavior from other classes. This enables the creation of complex
hierarchies of classes and objects, with common attributes and behavior inherited
from higher-level classes. Another important feature of OOP is polymorphism,
which allows objects of different classes to be treated as if they were of the same
type. This enables code to be written in a more generic way, making it easier to
reuse and maintain.
74 M. Hermans
The top bar of Studio Pro contains various menus, such as Switch-to, Edit, View,
and Version Control, each containing items for performing different actions like
creating deployment packages, setting preferences, or viewing the Errors pane. To
deploy your app, you can use the Publish or play (Run locally) buttons. Clicking
the View App button allows you to view your deployed app. In the upper-right
corner of Studio Pro, you can find links to the Developer Portal and Marketplace.
Your profile picture appears next to these links if you are signed in. Clicking on
your profile picture will display a drop-down menu with your full name, email, as
well as links to your user profile, My Apps screen, and signing out option.
The App Explorer displays the complete structure of your app, consisting of
individual files and settings grouped in folders and modules. The working area is
the current document tab you're working in, with its own settings and save state.
You can have multiple tabs open, reorder them, and view them side by side.
Dockable panes can be positioned around the working area and contain various
elements and settings, such as a list of errors or a toolbox.
At the bottom of the Studio Pro main window pane is the status bar, displaying the
current status of Studio Pro and the currently selected language. If you have set up
multiple languages in your app, you can change the currently selected language by
clicking here.
Short introduction to Mendix 75
The domain model in Mendix is an essential part of the development platform and
is utilized to establish the data structure of the application. It is a graphical
representation of the entities, attributes, and relationships that constitute the data
model of the application. The domain model plays a crucial role in the Mendix
platform and is employed to define the data structures, validations, and associations
between various types of data across the application. It is recommended to develop
this model at the beginning and then extend it as needed during the development
process. However, it is not mandatory, as it is also possible to create domain
entities on-the-fly, one may skip this step and start with the user interface.
entities, on the other hand, are not stored in the database and are used for temporary
data that does not need to be persisted between application sessions.
Attributes in Mendix can be of many different types, including strings, numbers,
dates, times, and more. They can also have default values, validation rules, and
other properties that help to define the behavior of the attribute.
Associations in Mendix are used to define the relationships between entities.
Associations can be one-to-one, one-to-many, or many-to-many. They can also
have roles, which define the direction of the relationship and the cardinality of the
association.
In addition to entities, attributes, and associations, the domain model in Mendix
also includes validation rules, which are used to ensure the integrity and
consistency of the data in the application. Validation rules can be defined on
entities and attributes and can be used to enforce data constraints, such as ensuring
that a certain attribute is unique or that a certain value is within a certain range.
The domain model is a versatile tool that enables developers to define the structure
and behavior of data in a Mendix application easily. It is designed to be user-
friendly and allows developers to modify the data model quickly to meet the
specific requirements of their application. This flexibility highlights that the data
domain in Mendix embodies the declarative programming paradigm, where the
programmer specifies what the program should do without detailing how it should
be done. By defining the entities, attributes, and relationships between data, the
developer declaratively defines the data structure, and Mendix automatically
generates the code that implements the data model. In contrast, object-oriented
programming (OOP) focuses on defining the behavior of objects in the system and
how they interact with each other. While OOP can be used in Mendix for building
custom widgets and defining microflows, the domain model is an example of
declarative programming.
Short introduction to Mendix 77
13. Figure: Domain model that defines customers and orders [Source: Mendix Docs]
The pages structure in Mendix is another key element of creating a web or mobile
application. In Mendix, a page represents a single screen or view within the
application, and is used to display and interact with data.
78 M. Hermans
15. Figure: Design and Structure mode for Mendix Page Design [Source: Mendix
docs]
In addition to widgets, pages can also contain microflows, which are used to
perform business logic and data processing within the context of the page. For
example, a microflow might be used to retrieve data from an external system and
display it on the page, or to validate user input before saving it to the database.
The structure of pages in Mendix is similar in some ways to the structure of pages
in WordPress, a popular content management system for creating websites. In
WordPress, pages are used to create static content that is displayed on the website,
such as a home page, about page, or contact page. WordPress pages are also
structured using a set of visual components, called blocks, which can be added to
the page to display different types of content.
80 M. Hermans
16. Figure: Blocked based widget editor from Wordpress [Source: Wordpress.org]
However, there are some key differences between the pages structure in Mendix
and WordPress. For one, the pages in Mendix are dynamic, meaning they can be
used to display and interact with data in real-time, whereas WordPress pages are
typically static and do not change based on user input. Additionally, the widgets
and microflows in Mendix are highly customizable and can be tailored to the
specific needs of the application, whereas WordPress blocks are more limited in
their functionality and are designed primarily for displaying static content.
Microflows and nanoflows provide a visual way to express the logic of your
application, including actions like object creation and updating, page display, and
decision-making. This approach replaces traditional textual program code with a
more visual representation.
While microflows are translated to Java and run on the runtime server, they cannot
be used in offline apps. Nanoflows, on the other hand, are translated to JavaScript
and run directly on the browser/device, making them available for offline use.
Additionally, most of the actions in nanoflows run directly on the device, resulting
in a faster execution for logic that does not require server access.
Microflows automate business processes and enforce business rules by performing
various operations, including validation rules, data transformation, and integration
with external systems. They are designed to be flexible and extensible, making it
possible to create custom logic tailored to the specific needs of the application.
A microflow typically consists of a sequence of actions triggered by an event.
These actions can be simple, like setting a value or sending an email, or more
complex, such as retrieving data from external systems and processing it.
Microflows can be triggered by a wide range of events such as a button click, a
data change, or a timer.
Microflows also enforce security by limiting access to certain actions based on user
roles or permissions. They can be created using a drag-and-drop interface that
allows developers to add actions, conditions, and loops to the flow. Additionally,
developers can enhance microflows with custom Java code to create complex logic
not possible with the built-in actions.
Short introduction to Mendix 81
that microflows can be modified without affecting the rest of the application.
7. Conclusion
The author declares that he has no known competing financial interests or personal
relationships that could have appeared to influence the work reported in this paper.
Acknowledgement
I thank Dr. Mileff Péter for his suggestions on the topics of no code and low code
programming, Dr. Tamás Péter and Mr. Molnár Zsolt for the continued support.
And my father, Mr. Hermans John for his support and the elaborated proofreading.
References
[1] Twain Taylor (2022). The basics of working with declarative programming
languages. TechTarget|App Architecture.
https://www.techtarget.com/searchapparchitecture/tip/The-basics-of-working-with-
declarative-programming-languages
[2] J.L. Hodges (2019). Software Engineering from Scratch. Jason Lee Hodges.
https://doi.org/10.1007/978-1-4842-5206-2_10
[3] Madhuri Yerukala (2023). What is Mendix? MindMajix.
https://mindmajix.com/mendix-tutorial
[4] Mendix Docs (2023) Studio Pro 9 Guide. Mendix Technology BV
https://docs.mendix.com/refguide9/
[5] Mendix Academy (2022). Rapid Developer Certification course material. Mendix
Technology BV
[6] A. van Oosten (2021). Achieve New Levels of Business Value with Low Code.
Mendix Technology BV. https://www.mendix.com/blog/achieve-new-levels-of-
business-value-with-low-code/
[7] A. Verweg (2021). Solving the Process Problem: How Workflow Works. Mendix
Technology BV. https://www.mendix.com/blog/solving-the-process-problem-how-
workflow-works/