Is NetBeans Visual Web Pack for You?
By Roman Strobl on XII 06, 2006
There is a lot of excitement around visual tools for Java development. We've seen that with Matisse GUI builder in NetBeans - instead of a day of Swing handcoding you can design the GUI easily in 15 minutes. Time = money and this is why people like Matisse GUI builder so much - finally Swing development is quick and easy even if you are not a Swing guru. That's how it should be (although it makes one wonder why it took 10 years... ;)
In the Java world, there are only few visual tools for development of web applications. Before I joined Sun I was developing a web application with Struts framework and I thought... do I really have to write all the HTML, JSP, etc.? There must be a better way.
Visual Web Pack (which comes from Java Studio Creator) can make visual web development easy, if you are ok with the way it does it. It has come a long way since the first release in Creator 1 - it supports now JSF 1.2 and you can use it together with Java EE 5. You can watch a webinar with Craig McClanahan where he shows how to use Java Persistence API together with Visual Web Pack. Simple and powerful!
But -- The world is not perfect (as usual :). Visual tools for web development are a double-edged sword. They have their advantages and disadvantages. Some users love Visual Web Pack for what it provides but some of them go crazy because by using visual tools they lose a bit of control or they don't fit their development environment. So I'd like to discuss this topic, so that you can decide whether Visual Web Pack is for you or it is not.
First of all, the good news is that with NetBeans you can do both visual and non-visual development. If you want to use the non-visual JSF (Struts, Spring, Wicket, Tapestry, ...) support you get lots of support like code completion, highlighting, wizards, etc - both through standard modules and through community-contributed modules. Especially if you decide to stick to the Java EE 5 standard, you get excellent support from NetBeans for Java Persistence API, Java Server Faces 1.2, Enterprise Java Beans 3.0 and Web Services JAX-WS 2.0.
So before you start to develop your next web application you should probably make a decision whether you want to use visual or non-visual web development tools. Let's look at the advantages and disadvantages.
Visual Web Pack IS for you if:
- you want to create web applications quickly, really quickly - it's like using Matisse
- you want to do visual data binding and property binding without writing any code
- you want to handle navigation visually - you can easily specify navigation for hyperlinks, buttons, etc.
- you want to use lots of existing Java Server Faces (JSF) components without having to write any code
- every component should be an object with properties by which you can tweak it's look and functionality
- you want to use AJAX-enabled components for JSF
- you want to handle data validation and conversion easily
- you have existing data and want to expose this data through various web interfaces easily
- you start developing your application from scratch or you already started building it with Creator 2 U1
- you like event-driven applications (in JSF you can invoke events similarly as in Swing)
- you want to focus on making money, not on writing web user interface code (or worse on writing your own web framework :)
- you would like to modify an existing application which wasn't developed with Visual Web Pack / Creator 2 U1
- your application is very complex with lots of pages, navigation rules and with a very complicated web UI
- your web designers design HTML code for your application in another tool
- you need to control every pixel of your web UI
- you want to use JSF components which don't support the Design Time API
- you simply don't like visual tools
- you want to use another framework than Java Server Faces for any reason
- you want to use a templating engine
As I said, you can use NetBeans in both cases - for visual and for non-visual development. I suggest you to take time and think which of them is better for you - it is easy to get tamed by the simplicity and rapid development provided by visual tools. In many cases, they can make you really productive and save lots of time but they won't work for everyone and in every scenario.