The Tornado module is improving release after release. With NetEye 4.12 we reached one of our main goals: Tornado is now configurable within the graphical interface, and you can now create new nodes and rules, or edit and delete your existing ones.
The icingaweb2-module-tornado module (i.e., the graphical interface of the well-known Tornado module) is the first icingaweb2 module completely based on the Vue.js framework. We (the R&D team) are always trying to innovate with NetEye and for this reason we decided to start moving away from a more traditional way of creating software interfaces (for example using the PHP-based Zend Framework) to newer technology.
To create a good user experience, it is important to choose a suitable web application architecture.
Multi-page applications work in a “traditional” way. Any change in the browser (e.g., display or transmission of data) involves retrieving new pages from the server. Routes are registered on the server, and each HTTP request from the client to a server involves retrieving a new HTML page.
This means that the request sent to the server will always retrieve the page showing the results of the request (a so-called view), or an error. Most of the application logic is on the server, and the client is only the recipient of the retrieved page.
Some of the advantages of a single-page application compared to Multi-page applications are the following:
Moreover, components are one of the most powerful features of Vue.js, helping you extend basic HTML elements to encapsulate reusable code. At a high level, components are custom elements onto which Vue.js’ compiler can attach a specific behavior. For this reason, we are also developing our library (the Design System) to contain useful components to ease the process of making complex app shells.
We are very excited about this new challenge, and we hope that this amazing technology will be useful for developing many new future NetEye modules. In my next blog post, I’ll go deeper into the description of our Design System in order to describe the project, its value, and the reason why we decided to create our own library instead of relying on a well-known existing one.