NetBeans: Universal Tool for Java Development and More
Roman ŠtroblTechnology Evangelist
[email protected]://blogs.sun.com/roumen
Cairo 2007
Agenda
• What is NetBeans?• New features in NetBeans 5.5• Developer productivity• Demos of NetBeans 5.5• What's coming next?• Conclusion
Cairo 2007
What Is NetBeans?
1. IDE - Integrated Development Environment
Cairo 2007
T-Shirt Question...
NetBeans is more than just an IDE.Question: What else is NetBeans?
Cairo 2007
What Is NetBeans?
2. Swing-based Platform
Cairo 2007
What Is NetBeans?
3. Growing Open Source Community
Cairo 2007
NetBeans – Not Only Java
Position Language Percentage Trend Support in NetBeans1 Java 19.16% = Yes2 C 15.80% = Yes3 C++ 10.40% = Yes4 (Visual) Basic 9.10% + No :)5 PHP 7.90% -- Next version6 Perl 6.20% = No7 C# 3.52% = No :)8 Python 3.50% = Jython9 JavaScript 2.80% + Plug-in
10 Ruby 2.50% 11x + Next version
Source: http://www.tiobe.com/tpci.htm
Cairo 2007
Project Plethora
Where does this project come from?
Cairo 2007
T-Shirt Question...
Where did I get this photo?
Cairo 2007
Agenda
• What is NetBeans?• New features in NetBeans 5.5• Developer productivity• Demos of NetBeans 5.5• What's coming next?• Conclusion
Cairo 2007
New Features in NetBeans 5.5 (1)
• Full support for Java EE 5> EJB 3.0> JAX-WS 2.0> Java Persistence API> JavaServer Faces 1.2> Blueprints
• Works “out of the box”> Tomcat bundled by default> Glassfish bundle> JBoss bundle
Cairo 2007
New Features in NetBeans 5.5 (2)
• Add-on packs:> Mobility Pack – CDC, CLDC> Profiler – solves performance issues> Enterprise PackNEW! – SOA tools> C/C++ PackNEW! – native development> Visual Web PackNEW! – visual JSF
• Improvements in GUI Builder• Subversion support• More plug-in dev. wizards
Cairo 2007
T-Shirt Question...
How many downloads does NetBeans have?
Cairo 2007
Agenda
• What is NetBeans?• New features in NetBeans 5.5• Developer productivity• Demos of NetBeans 5.5• What's coming next?• Conclusion
Cairo 2007
Developer Productivity
• Java is a great language and platform• But it is not always productive enough• Two examples:> Development with J2EE 1.4> Building GUIs with Swing
• Good news:> The platform is improving> The tools are improving, too
NetBeans in Wroclaw
Example: J2EE 1.4 Web Service<?xml version='1.0' encoding='UTF-8' ?><webservices xmlns='http://java.sun.com/xml/ns/j2ee' version='1.1'> <webservice-description> <webservice-description-name> HelloService</webservice-description-name> <wsdl-file> WEB-INF/wsdl/HelloService.wsdl</wsdl-file> <jaxrpc-mapping-file> WEB-INF/HelloService-mapping.xml </jaxrpc-mapping-file> <port-component xmlns:wsdl-port_ns='urn:HelloService/wsdl'> <port-component-name>HelloService</port-component-name> <wsdl-port>wsdl-port_ns:HelloServiceSEIPort</wsdl-port> <service-endpoint-interface> endpoint.HelloServiceSEI</service-endpoint-interface> <service-impl-bean> <servlet-link>WSServlet_HelloService</servlet-link> </service-impl-bean> </port-component> </webservice-description></webservices>
<?xml version='1.0' encoding='UTF-8' ?><configuration xmlns='http://java.sun.com/xml/ns/jax-rpc/ri/config'> <service name='HelloService' targetNamespace='urn:HelloService/wsdl' typeNamespace='urn:HelloService/types' packageName='endpoint'> <interface name='endpoint.HelloServiceSEI' servantName='endpoint.HelloServiceImpl'> </interface> </service></configuration>
package endpoint;
import java.rmi.*;
public class HelloServiceImplimplements HelloServiceSEI {
public String sayHello(String param)throws java.rmi.RemoteException {return “Hello “ + param;
}}
package endpoint;
import java.rmi.*;
public interface HelloServiceSEIextends java.rmi.Remote {
public String sayHello(String param)throws java.rmi.RemoteException;
}
NetBeans in Wroclaw
Example: Java EE 5 Web Service
package endpoint;
import javax.jws.WebService;
@WebServicepublic class Hello {
public String sayHello(String param) {return “Hello “ + param;
}}
Cairo 2007
Swing Example
• Question: What's wrong with this GUI?
Cairo 2007
Swing Example: Solution
• Little details matter!
Cairo 2007
Agenda
• What is NetBeans?• New features in NetBeans 5.5• Developer productivity• Demos of NetBeans 5.5• What's coming next?• Conclusion
Cairo 2007
Demo: JAX-WS 2.0 Service
• Backend with a Web Service interface> A simple calculator
• Three clients:1. Web client2. Mobile client3. Swing client
Cairo 2007
Demo: Visual Web Pack
• Backend with a Web Service interface> A simple calculator DONE
• Three clients:1. Web client2. Mobile client3. Swing client
Cairo 2007
Demo: Mobility Pack
• Backend with a Web Service interface> A simple calculator DONE
• Three clients:1. Web client DONE2. Mobile client3. Swing client
Cairo 2007
Demo: NetBeans GUI Builder
• Backend with a Web Service interface> A simple calculator DONE
• Three clients:1. Web client DONE2. Mobile client DONE3. Swing client
Cairo 2007
Demo: Summary
• Backend with a Web Service interface> A simple calculator DONE
• Three clients:1. Web client DONE2. Mobile client DONE3. Swing client DONE
NetBeans: a universal end-to-end tool
Cairo 2007
Agenda
• What is NetBeans?• New features in NetBeans 5.5• Developer productivity• Demos of NetBeans 5.5• What's coming next?• Conclusion
Cairo 2007
Future of NetBeans
• NetBeans 5.5.1 – April> Support for Sun AS 9.1 = Glassfish v.2> SOA updates
• NetBeans 6 – preview in May> Milestone 6 available now> Complete redesign of editor> Databinding for Swing> Scripting support (Ruby, PHP)> More frameworks & application servers
DEMOSwing Databinding
Cairo 2007
Agenda
• What is NetBeans?• New features in NetBeans 5.5• Developer productivity• Demos of NetBeans 5.5• What's coming next?• Conclusion
Cairo 2007
Conclusion
• NetBeans is:> A Java IDE (and more)> A Swing-based platform> A growing open source community
• It is open source and free!• NetBeans can make you more productive• Get NetBeans from http://netbeans.org/
Cairo 2007
Questions & Answers