Continuing a series of articles focusing on NetBeans users and their five favorite NetBeans IDE features, here's the next part, by Jens Kutschke and the development team at j-lawyer.org in Germany. -- NetBeans team.
j-lawyer.org is a Creative Commons licensed software solution for lawyers and legal departments of various sizes. Started in 2012, it is a young project with a steadily increasing number of installations in Germany, Austria, the Netherlands, and Spain.
Its main features include case management, contacts management, document management, an integrated e-mail client, integrated voice over IP capabilities, and a direct interface to insurance companies. j-lawyer.org comes with a server and a client, both running on Windows, Linux, and Mac. The server is Java EE based on JBoss Application Server; the client is a Swing application that makes use of LibreOffice. Third party libraries include various Apache projects (e.g., Log4J, Tika, Simple ODF, and Lucene), and Jasper Reports.
Our Usage of NetBeans IDE
Having worked with a variety of IDEs, we decided to make NetBeans IDE our single development platform for this project, mainly for efficiency reasons. Instead of having to download and install a huge set of plugins, we get most of what we need from the default installation. We have hardly faced any compatibility issues or conflicts and it all feels more like "all of one piece" supporting a typical development process, instead of having to tie together lots of individual pieces.
Many of the features we rely on can be regarded as "standard" features, accessible from within the NetBeans IDE by default, including JUnit, JBoss integration, Profiling, Subversion, and Ant. It is also great that "out of the box" build files can be enhanced and run inside of Jenkins without requiring any change at all.
Our Five Favorite NetBeans Features
1. Jenkins Integration. Just as many other NetBeans users, we use Jenkins for builds and testing, but also for fully automated deployments of, e.g., our demo system, including a Java Webstart application.
2. Mantis Bug Tracker Integration. This still feels like it needs some work, but it enables developers to do everything in one application, while the lawyers in the project can solely rely on the Mantis web UI, without the hassles of installing a full blown application.
3. "Matisse" Swing GUI Builder. I must admit, up until we started this project in 2012, I had always voted for "hand-crafting" user interfaces, meaning building all the dialogs in code by hand. We knew the j-lawyer.org client would become a large and feature-rich application with lots of screens and custom components, and decided to look at other ways that would make Swing development more efficient.
And, what can I say? NetBeans has taken UI development to a next level! We currently have > 100 dialogs and components that have been created with the NetBeans GUI builder, and it is a huge advantage, and so much faster to develop.
On a side note, we've looked at JavaFX but it is not mature enough for business applications (in our humble opinion), specifically when it comes to widgets. If that changes, we hope that NetBeans will come with an equally great capability for developing JavaFX UIs.
4. Internationalization. We are getting more and more requests to provide an English version and this will potentially be a large undertaking. At least that is what we expected.
Yet again, NetBeans surprised us not only with its functionality to apply I18N to a single form, but also to whole parts of a project.
Though we're not completely done yet, we have made good progress and it has turned out to be easier and require less effort than expected - thanks to NetBeans!
5. Refactoring. j-lawyer.org currently consists of 11 projects -- Java applications, libraries, web applications, enterprise applications, EJB modules -- with various dependencies. Refactoring code with the refactoring features in NetBeans enables us to automate much of the changes and reduces the risk of breaking things / forgetting things.
As you can see, NetBeans IDE is making hard things easier and time-consuming things more efficient, while allowing us to focus on understanding our business requirements and providing handy solutions. But most important of all... development using NetBeans IDE continues to be fun!