<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>NetBeans IDE 5.5 Release Information</title>
        <meta name="DESCRIPTION" content="Information about the NetBeans 5.5">
        <meta name="NAV_LINK" content="5.5">
        <meta name="NAV_PRIORITY" content="1">
        <link rel="stylesheet" type="text/css" HREF="../../../netbeans.css">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>

    <body>

        <a name="top"></a>
        <h1>NetBeans  5.5 Release Information</h1>

        <p>Documentation is provided for NetBeans in the
        form of web-based guides and the IDE's help system. You can use the
        following documents to get started:</p>
        <ul>
             <li><a href="relnotes.html">Release Notes</a></li>
             <li> <a href="install.html">Installation Instructions</a></li>
             <li>Documentation <i>(See <a href="https://netbeans.org/kb/archive/index.html">NetBeans IDE Documentation Archives</a> for NetBeans 5.5 documents.)</i></li>
        </ul>
<p>
<a href="http://services.netbeans.org/downloads/index.php?rs=11"><img
src="../../../images_www/v5/download-nb-button3.gif" border="0" /></a>
</p>
           <!-- NEED AN IMAGE HERE <div style="float:right;padding:5px 5px 5px 5px;text-align:center;"><a href='http://netbeans.info/downloads/download.php?type=5.5' title="Download NetBeans 5.5 Preview"><img src="/images_www/55_front_page.jpg" width="170" height="100" alt="NetBeans 5.5. preview" border="0"></a> </div>-->

             <p>NetBeans 5.5 supports the <b>Java Enterprise Edition 5</b> platform,
                and most notably the <b>Java Persistence</b>, <b>EJB 3</b> and <b>JAX-WS 2.0</b>
                specifications.</p>

            <p>NetBeans IDE 5.5 builds on the success of NetBeans 5.0 and adds support for
              Java EE 5 and Sun Java System Application Server PE 9. Got Web 2.0? Of course!
              NetBeans 5.5 generates JAX-WS 2.0 artifacts for Java SE 6 and Java EE 5
              projects. We included Java Persistence support and support for Enterprise Java
              Beans 3. Additionally, there is the new Subversion support module and an updated module for the GUI builder, both available on the 5.5 Update Center.

            <h2><a name="features">Feature Highlights</a></h2>

            <br>
             NetBeans 5.5 contains many features that maximize your productivity and flexibility for building robust, standards-compliant Java&trade; applications:
            <ul>
                    <li>General Java Enterprise Edition&trade; 5 platform support:
                           <ul>
                            <li>Deploys to the Sun Java System Application Server PE 9 (Glassfish).</li>
                            <li>Provides code completion and Javadoc for Java EE 5 APIs and deployment descriptors.</li>
                            <li>Web tier technologies updated for Java EE 5 platform: Servlet 2.5, JavaServer&trade; Pages 2.1, JavaServer&trade; Faces 1.2 </li>
                            <li>Java EE 5 sample projects to get you underway fast.</li>
                           </ul>
						  <BR>
                    </li>
                    <li>Java Persistence support:
                        <ul>
                          <li>Generates Java entity classes from existing DB schemas. </li>
                          <li>Creates entity classes in the IDE and lets the server generate the DB relying on the DB-from-Java feature in Glassfish</li>
                          <li>The persistence runtime can be used in web apps and plain Java apps without the need of a full-blown Java EE application server.</li>
                          <li>Wizards for creating a complete web application that uses Java Persistence for full support of <b>C</b>reate/<b>R</b>ead/<b>U</b>pdate/<b>D</b>elete operations on a database.
</li>
                          <li>Enhanced Java source editor with code completion, on the fly error checking and verification, and hints specifically targeting Java Persistence.</li>
                          <li>High level user actions that generate common code patterns (e.g. using an Entity Manager).</li>
                        </ul>
                    </li>
					<BR>
                    <li>Java API for XML Web Services (JAX-WS) Support (aka Web Service 2.0)
                        <ul>
                            <li>Generates JAX-WS 2.0 artifacts for SE 6 and EE 5 projects</li>
                            <li>Configuration is done through bindings customization (like asynchronous calls, package info)</li>
                            <li>Simplified and updated template wizards. </li>
                            <li>High-level user actions that generate common code patterns (e.g. calling a web service).</li>
                        </ul>
                    </li>
					<BR>
                    <li>Support for Enterprise Java Beans 3 session beans
                        <ul>
                            <li>Simplified development of session beans and message driven beans.</li>
                            <li>Enhanced Java source editor with code completion, on the fly error checking and verification, and hints specifically targeting EJB 3.</li>
                        </ul>
                    </li>
					<BR>
                    <li>Other improvements:
                        <ul>
                            <li>Easy access to the Java BluePrints Solution Catalog for Java EE 5.</li>
                            <li>Code completion for the JavaServer&trade; Pages Expression Language.</li>
                            <li>Support for Java EE Application Clients.</li>
                            <li>Support for configuring security in Java EE applications.</li>
                            <li>Support for running SQL scripts directly from the IDE.</li>
                        </ul>
                    </li>

          </ul>

     <h2><a name="addon">NetBeans Add-on Packs</a></h2>

<ul>
<li>NetBeans Enterprise Pack
   provides support for creating Service Oriented Architecture (SOA) applications, including XML schema tools, a WSDL editor, and a BPEL editor for web services orchestration.

<li>Use the <a href="https://netbeans.org/kb/trails/mobility.html">Mobility Pack</a>
   to write, test, and debug applications for Java&#153; Micro Edition platform
   (Java&#153; ME platform) technology-enabled mobile devices.</li>

<li>The <a href="https://netbeans.org/features/java/profiler.html">NetBeans Profiler</a>
	 helps you optimize your application's memory and CPU usage

<li> The <a href="http://cnd.netbeans.org">C/C++ Native Development Module</a>   supports C/C++ projects.</li> 

<li> Use the  <a href="../../../features/web/web-app.html">Visual Web Pack</a> to rapidly and visually build standards-based 
  web applications, including support for AJAX and JSF components. 
</li>

</ul>


         <h2>References</h2>

         <ul>
          <li><a href="https://netbeans.org/kb/archive/index.html">Tutorials, Guides, and Articles</a></li>
        </ul>

    </body>
</html>

