Roman Strobl on Enhanced JEE Support in Netbeans 5.5
- Enterprise JavaBeans (EJB) 3.0
- JAX-WS 2.0
- Java Persistence (JSR-220)
- JavaServer Faces 1.2 (JSR-127)
- Java Servlet 2.5
- JavaServer Pages (JSP) 2.1
- Struts 1.2.9
- Java API for XML-based Remote Procedure Calls (JAX-RPC) 1.6
- Java APIs for XML Registries (JAXR) 1.0
- Java API for XML Processing (JAXP) 1.2
- JavaServer Pages Standard Tag Library 1.1
The biggest news in NetBeans IDE 5.5 is full support for Java EE 5. We provide very comprehensive support for this new standard, basically everything what's in the specification is supported now in NetBeans. As you may know, Java EE 5 makes web and enterprise development much easier by extensive use of annotations, but there is still a lot of things an IDE can do to help you create the applications faster.Next Strobl was asked in comparing IDE's what strengths Netbeans brings to the table:
One of the best things about Java EE 5 is the standardization of the persistence layer using Java Persistence API. It allows you to choose an implementation you want to use (Toplink, Kodo or Hibernate). We provide useful wizards which generate entity classes from database for you - they basicly read the database metadata and generate classes which let you work with the data easily. And it works vice versa, you can write entity classes and once you deploy the application to the application server, the relational tables are generated. We also provide wizards to generate a JSF frontent for the entity classes, so you can create a basic CRUD application without writing any code in less then 2 minutes (this might remind you of Ruby on Rails)!
Web services and EJBs got also much simplier thanks to annotations. In Java EE 5 all these classes are POJOs (Plain Old Java Objects) so there's less code to write and maintain. The IDE helps you by providing code completion for annotations, there are many useful wizards, templates, actions in the context menu etc. available. NetBeans comes bundled with Sun application server and Tomcat, so you don't have to install them extra or configure them - it just works, you don't need to search for additional plug-ins to work with EJB, XML, JSF, Struts, JSP, JSTL, HTML and so on. We say that NetBeans has "batteries included", so when you develop Java EE applications you can benefit from having pre-tested set of modules included in the IDE. We provide blueprints which are sample solutions for frequent problems in the Java EE area, including descriptions of the sample code.
We have three new packs which you can install and extend the set of functionality provided by NetBeans. We had Mobility Pack and Profiler for a long time and these have been updated for 5.5 (e.g. SVG and J2ME Unit support in Mobility Pack). Now you can also get the Enterprise Pack which provides free SOA tooling - there is a visual designer for BPEL processes, visual tools for XSD schemas and for WSDL files. What I'm really excited about is the new Visual Web Pack which is lets you create JSF applications with visual drag & drop kind of tool. We basicly took what we have in Java Studio Creator and we provide it for NetBeans as an add-on pack. This brings many advantages, such as that you can have one tool for everything, you can use Java EE 5 code, deploy to additional servers, take advantage of most recent features in NetBeans and modules, etc. It is a lot of work to synchronize all the efforts, but NetBeans is now becoming a delivery mechanism for all Sun developer tools, which is very cool and makes the NetBeans offering very strong.
I have just created a flash presentation which discusses reasons for NetBeans, including demos, you can check it out to get a very detailed answer. What I think are the key strengths:Strobl then discussed Netbeans 5.5 support for JEE rapid application development. He indicated there are numerous wizards to generate code with an example being web services. A skeleton is created for both the service and service client leaving only business methods to be filled in. In addition to code generation there are visual tools for building JSF pages including data binding, property binding and visual navigation. In terms of SOA, webservices can be orchestrated and WSDL's created visually. On the client tier the Matisse GUI builder allows drag and drop of Swing components to visually design forms. Finally the integration of database browsers (all JDBC-compliant databases are supported) and application servers with support for deploy, undeploy, and restart applications commands makes overall development faster.
1. Matisse GUI Builder - considered by many as the best Java GUI builder out there, because unlike other GUI builders it provides a natural experience when building Swing forms
2. NetBeans Profiler - free and easy to use solution for application profiling, both for Java SE and Java EE applications
3. Mobility Pack - provides visual designer for both CLDC and CDC and many other features - check the list of our mobility partners
4. Java EE 5 support - very comprehensive support for this new standard, includes lots of useful wizards and actions which help you code faster
5. SOA tools - with visual editors for BPEL, XSD and WSDL, and again available for free including the runtime
6. Visual Web Pack (or Java Studio Creator) - lets you create web applications quickly, provides databinding and AJAX components
7. NetBeans Platform - pure Swing based platform, you can save lots of time by reusing the code from NetBeans
If you are choosing an IDE, you should choose the best tool to get your job done. With NetBeans you get everything for free and most of the add-on packs are open source, too (the rest will be opensourced soon). Some other IDE's provide basic functionality for free but then you have to buy plug-ins - we don't do that. In my opinion you should also think about future of the IDE you choose - I think using an open source IDE is a good bet for the future. There are other things you need to take into account, like available support, plug-ins, standards compliance, community health, etc.
People often compare NetBeans with Eclipse, because these two IDE's are the most fastest growing. I think that Eclipse is basicly a good editor with good CVS support and you need to get the rest of the plug-ins. The main difference between the IDE's is in the approach NetBeans is taking - you get everything nicely packaged so you are productive very quickly. We also spend a lot of time with usability, so the user interface of the IDE is nicely polished and it's uniform, which may not be the experience you get if you mix different plug-ins. And finally we also test all plug-ins and packs together, so that you don't have to.
The conversation then shifted to increasing plugin support for Netbeans:
We had a pilot plug-in contest in Brazil. We did this competition last year to see if it works well and the results were pretty good. We are talking about doing a similar contest in the future, but there's no concrete decision yet.
One thing people need to understand concerning NetBeans and plug-ins is that before version 5.0 it was quite hard to develop plug-ins for NetBeans - there was no GUI support for them! So only very motivated people built plug-ins before this version. In 5.0 we made plug-in development easier thanks to a) GUI support for creating plug-ins and b) you can use Matisse to build the plug-ins. Since then many developers started to build plug-ins for NetBeans, check out for instance nbextras.org which is a community site with many such plug-ins.
We realize that this is an area we need to work on and we'll be launching new partner program in November 2006 which will help to increase the number of plug-in writers. But it's important to mention that if you compare the number of plug-ins we had 2 years ago and now, it's so much higher - and this gets better all the time because NetBeans community keeps growing and the community is more active with building of new plug-ins. You can get plug-ins for the most popular technologies and if you won't find a plug-in, there's a big chance that somebody starts to work on it right now. We do a podcast with my colleague Gregg Sporar and we talk about new plug-ins, but these days so many new projects are started that we can't keep track of them in the podcast.
Finally the application framework subset of the IDE, Netbeans Platform was discussed. Features added in the API support pack update to Netbeans 5.0 include new wizards for Java help, module installer, update center and options dialogs. The version 6.0 milestone builds add fullscreen support for applications built on top of NetBeans platform and support for multiple monitors.