Oracle Application Express (APEX) and Mendix are both sold as fast development tools to create web applications. But what are the differences between them and when should we use which tool. Personally I have more experience with Mendix, but after some reading and a few demos I’m able to make the comparison. As I think the most important aspects are capabilities, architecture, security, development speed and pricing I will compare the two tools on these aspects in the following paragraphs and will finish with an overall conclusion.
Mendix has its own local installed model driven development environment in which you can create the database, webpages and logical flows using drag-and-drop functionality with a visual representation of what you created. As you can create logical flows called “microflows” in Mendix you are quite flexible in creating the required logic without any line of code. This makes the slogan “no code, just glory” quite a true statement. APEX is web-based and is built on-top-of an existing Oracle database. As it’s web-based you create the application using forms in which you select the appropriate parts you want to add. APEX applications are based on Items, Regions, Dynamic Actions and Page Processes. The logic can also be added by selecting the specific actions that can be done in the application. And then by using a menu you can add functionality to the actions. Most commonly used functionality is building reports and forms. As I have heard from APEX experts a lot out of the box functionality can be used. Creating specific customized functionality can be done in PL/SQL, the Oracle Database programming
language. The capabilities of both tools as shown in the following table are quite the same.
|Development||Web based (forms)||
Local graphical modeling environment
|Bug fixing tools||X||X|
|Graphical logical Flows||X|
|Graphical Database modeler||X|
Both APEX and Mendix are able to create multichannel applications, handle internationalization and reporting. They also both support bug fixing, but the bug fixing in Mendix is really optimized as you can walk through the microflows and see what’s happening at real-time in your modeling environment. In APEX you can test your PL/SQL code and get error messages, but this is less advanced then in Mendix. The collaboration environment of APEX allows you to create a to-do list and to keep track of bug fixing. This is also possible in the Mendix collaboration environment which is Facebook-like and supports the scrum/agile methodology. The bug tracking in Mendix is however less advanced. Overall I would say both tools have a lot of the same capabilities, but Mendix has an advantage because of the built-in database modeler and the use of graphical microflows. Early images of APEX 5 which is probably released Q1 2014, show however that APEX is also making changes to create a more graphical environment to create webpages.
The APEX architecture as shown in the following image is quite small and understandable. The APEX engine is part of the Oracle database and communicates with the user(web browser) using an Apache server and PL/SQL. APEX is mostly build on top of a database with other Oracle applications whose data is easily approachable. Communication with other applications can be done by using webservices.
As APEX is part of the Oracle Database it is as scalable as the Oracle Database. This is for example proven at Northgate Revenues and benefits where 10.000 end-users daily use an APEX application with around 1500 forms with sub second response times. The Mendix architecture is based on creating a model in the development environment which is executed by the Mendix engine which is based on java. This has an advantage when upgrading to a newer version. This can be done mostly automatically and takes only a week at most. As shown
below Mendix can be connected with various systems. Modules that extend the capabilities of Mendix can be imported from an App Store. The Mendix architecture of the new version 5 is focused on making the application module based and thus more scalable. A disadvantage of this architecture is that updates on the application always require a full deployment. A difference between Mendix and APEX is that Mendix is database independent where APEX is Oracle database only.
Because Oracle APEX resides within the Oracle Database and can easily integrate with authentication schemes (such as SSO, LDAP, etc.) you can build secure applications that can scale to meet your largest user communities. Mendix has its own security which can be configured in the modeling environment. It is also possible to connect the use the app user roles to existing user role repositories like LDAP, Kerberos and NTLM. Both Mendix and APEX can use entity access and can export parts of the application including the security role settings. Maybe if you dig deeper into the differences between APEX and Mendix security you will find out that one of the two is better. But for now I will just keep to the fact that both tools have integrated security very well.
Both tools provide an easy developing environment where you don’t need to write code for everything you want to display in your application. As APEX is web-based developing is mostly adding functionality by clicking through forms and selecting the right options. Developing in Mendix mainly consists of creating your database, pages and microflows. This is done by dragging and dropping the right elements into the environment and providing the right information in menu’s. Deploying in both tools is quite easy as deploying Mendix is integrated in the tool and deploying APEX is done by running a script on the database. As the development in both environments is quite different I cannot say which tools develops faster overall as it is depending on what you need to build. Mendix supports more complicated program logic, without the direct need of using code. As the database is part of your model refactoring is also faster in Mendix. The debugging in Mendix also seems to be more advanced which will surely save a lot of time in the long run. APEX however can be built on top of an existing database which will speed up the project drastically when this needs to be done. Overall when building large complex applications Mendix will be the faster option as it’s more flexible. In order to find out which tool is faster when developing applications we will compare both tools on function points. Using Mendix an average of 2.6 hour per function point is reached while development in APEX takes 3.5 hour per function point. Both values are quite low comparing with other methods/technologies like java for example which is between 9 and 12 hours per
function point. Both APEX and Mendix averages aren’t based on calculations from a lot of projects, but experts of both tools confirm these values.
Everything so far might give you the idea that both tools are nearly perfect for everything. But the pricing might just be the one thing you’ve overlooked as both tools can only be set up for free, but aren’t really cheap when used in production. When you want to deploy Mendix you need to pay for the license which will cost you around 50K per year. APEX comes free with the Oracle Database 11g which will also cost you around 50k per year. These both prices are indicative and are more the starting point for discussing about the license cost then the real price as this is depending on a lot of factors. When you already have an Oracle Database 11g license APEX doesn’t cost you anything extra in license cost, which makes it interesting. APEX can also be run on Oracle Database 11g Express Edition(XE). This is a free starter version of Oracle DB with the limitations of 11gb storage, 1gb RAM and 1 CPU. The APEX & XE combination is also free even if you don’t have the full Oracle Database 11g license. This will limit you to a smaller application, but if that’s what you need it is a real good option.
The capabilities of both tools are quite the same, but Mendix provides a little more flexibility and graphical user interfaces. Where Mendix can be seen as a separate application which can extend other applications using web-services, APEX is traditionally built on top of an existing Oracle database. It is of course possible to create a new database for the APEX application, but this can’t be done in the APEX development environment. The development speed of both applications is really fast and easily 3 times faster than java development, but Mendix is a bit faster. In order of pricing both APEX and Mendix cost about the same. APEX however doesn’t cost anything extra when you already have an Oracle Database 11g license and has the option to run small applications totally free of license costs. The architecture of both is very different, but as APEX is build on a Oracle database it is more scalable. The security of both applications is no issue as both tools have integrated security very well. This leads to the final conclusion: APEX and Mendix are very comparable and the decision between both should be based on specific requirements. Modeling in Mendix is a bit faster because of the graphical display and the absence of code, where APEX is more scalable. However with the new versions of Mendix and APEX both tools grow more together as Mendix will become more scalable and APEX more graphical. Of course when you already have an Oracle database license APEX has the advantage because of the cost savings.
Jeroen van Essen, Oracle Technology Consultant