Below follows an interview with Raffael about NetGuardians and its usage of the NetBeans Platform as the framework of their application.
What does NetGuardians do?
NetGuardians SA is a multi-award winning IT business software company founded in 2007 by Joël Winteregg and Raffael Maio, two former researchers from the University of Applied Sciences in Yverdon-les-Bains, Switzerland.
By using a bottom-up approach to achieve top-down objectives, NetGuardians helps medium-sized businesses to improve operational efficiency and maintain service levels by providing IT Administrators and Security Officers with powerful, yet practical solutions.
This philosophy is epitomized by the NG-Screener: a Security Information and Events Management (SIEM) appliance that collects, stores and analyzes the vast amount of heterogeneous log data generated within an organization. Real Time monitoring and Forensic investigative tools enable in-depth troubleshooting and precise trend and statistical analysis to provide a comprehensive overview of an IT infrastructure.
As experts in Log Management technology, NetGuardians actively participates in the ongoing standardization group (open group) to implement an industry-wide standard for log data language and formatting.
What are the specific challenges of the kinds of applications you create?
The challenges are multiple, in fact.
- First of all, as a software engineer, most of the time you are not good in art skills (graphics). Thus, you need to build something on an existing platform that looks user-friendly (our first version was 100% Swing and had no drag and drop windows, no minimize, maximize screen, etc). Consequently, our first app was usable but not really user friendly.
- Secondly, building an easy-to-use solution in a complex environment is quite tricky. The combination of "dynamic screens" (drill down into data, plot charts, add filter, etc.) that are fluid and not static is quite challenging.
- Another challenging part is the aspect of a multi-user/mutli-action application that is quite hard to handle with a pure 100% Swing app.
How was the NetBeans Platform chosen and why?
When we decided to change from our Swing application to use a framework, we had basically two choices: NetBeans Platform and Eclipse RCP.
To be honest, at that time I was mainly developing in Eclipse IDE. Therefore, my first choice was naturally Eclipse. However, after several discussion with our R&D team, we noticed that the good thing with the NetBeans Platform is the possibility of reusing our Swing components. At that time, SWT had some issues with memory and we did not want to rebuild all our Swing components in SWT. Therefore, we chose the NetBeans Platform instead.What specific features have you found most useful?
The specific features that were most useful for us consist of all the parts of the NetBeans Platform's window system.
For example, with the NetBeans Platform, all operations related to drag and drop, minimize, maximize, and so on, are already included and supported. These features provided us lots of liberty in order to develop a dynamic application, including multi-dasboard, multi-windows, etc.
What concerns did you have beforehand and how did things turn out?
In the beginning, I was really an Eclipse fan and I had some apprehensions in using the NetBeans Platform.
However, after some research and a few discussions with our R&D team, we decided to switch to the NetBeans Platform in order to re-implement our Swing application on top of a mature framework.
What are the problems you ran into with the NetBeans Platform and how did you solve them?
In our development, we use technologies such as Maven and svn. At that time, Maven was not well supported by the NetBeans Platform. Indeed, the nbm-maven-plugin was in its early stages and we had some issues working with it.
Fortunately, we got a lot of support from Milos Kleint (developer of the plugin) and we worked closely together with him in order to enhance the plugin. Still, right now, it is quit difficult to manage a project with Maven and the NetBeans Platform. The documentation around it is not well furnished.
What kind of things would you wish were different about the NetBeans Platform?
I wish there could have been more documentation about building applications with NetBeans, Maven and svn. At that time, all blogs, forums and other documentation were extremely precise without having a global approach of the framework. Fortunately, recently the book The Definitive Guide to NetBeans Platform by Heiko Böck was translated into English, which gives lots of precious advice and tips:
Do you have some tips for beginners on the NetBeans Platform?
Some tips? That's a hard question. First of all, buy the book “The Definitive Guide to NetBeans Platform” and do not hesitate to post question on the NetBeans developer mailing list. The community is friendly and is always open to give advice.
If you want to start a NetBeans Platform application with the framework and Maven, I suggest you to read the (slightly dated) article from Emilian Bold, NetBeans Platform Development with Maven 2 (PDF):
Do you have some tips for more advanced users too?
To build a NetBeans Platform application and Maven there is an excellent tool to build an installer. I advise people willing to create an installer with Maven and the NetBeans Platform to use izpack. There is an izpack-maven-plugin that lets you build the installer directly.
What's the future of the application and your usage of the NetBeans Platform?
The future for our application will be moving from NetBeans Platform 6.5 to NetBeans Platform 6.8.
We have also planned in our road map to integrate new modules that will give some BI information.
Moreover, we will provide a new database monitoring connector view.
Anything else you'd like to share?
When will the NetBeans team include a chart library in the NetBeans Platform?