<html>
    <head>
        <title>NetBeans Enterprise Pack 5.5 Early Access</title>
        <meta name="DESCRIPTION" content="Information about the NetBeans Enterprise Pack 5.5 Preview Release">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>

<h1>NetBeans Enterprise Pack 5.5 Early Access</h1>

<p>The NetBeans Enterprise Pack 5.5 Early Access introduces UML modeling, XML tools,
and Web services orchestration to the NetBeans community. It is available as an
integrated bundle along with the <a href="index.html">NetBeans IDE 5.5 Beta</a>. This collection of tools
and runtimes enable you to develop applications and Web services based on the
latest release of the Java Platform, Enterprise Edition 5 (Java EE 5).</p>

        <h2>What's Cool in this Preview?</h2>

            <ul>
                <li>It offers the latest set of time-saving features for enterprise architects and
                programmers and a sneak peek at Sun's roadmap for tools.</li>
                <li>It offers UML modeling to the NetBeans community.</li>
                <li>It is an all-in-one <i>pack</i>: a consolidated and integrated bundle of all
                tools and runtimes in a single install.</li>
                <li>It is the forerunner of the next release of the Sun Java Studio
                Enterprise IDE, which recently won <a href="http://webservices.sys-con.com/read/171303_2.htm" target="_blank">
                "Best SOA IDE" in SYS-CON Media's Readers' Choice Awards</a>.</li>
            </ul>

            <h2>Download</h2>
            <div class="rarticle">
              <div class="ml15"><a href="http://services.netbeans.org/downloads/download.php?type=5.5b2">Download</a></div>
            </div>

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

        <b>SOA visual design tools for architects and programmers</b>
        <ul>
            <li>XML Schema Tools - Visualize and edit XML Schema, visualize the relationships between Schema elements, use Schema creation wizards.</li>
            <li>Web Services Orchestration - Author, build, deploy, and test BPEL processes. Includes a full two-way editor; BPEL runtime engine
            integrated with Sun Java System Application Server 9; creation of loosely coupled, service-based composite applications for SOA; full
            two-way round-trip designer; full process debugging integrated into NetBeans debugger.
            <a href="http://developers.sun.com/prodtech/javatools/jsenterprise/tpr/reference/presentations/orchestration/orchestration_video.html">Watch the video introducing the Orchestration Designer.</a> </li>
        </ul>

        <b>UML Modeling, which includes</b>
        <ul><li>Full two-way, round-trip engineering</li>
            <li>Markerless code</li>
            <li>Code generation</li>
            <li>Requirements gathering</li>
            <li>Design patterns</li>
        </ul>

        <b>Java EE 5 SDK Preview</b>
        <ul>
            <li>Leverages annotations to ease development with EJB 3.0 technology.</li>
            <li>Provides enhanced deployment descriptors.</li>
            <li>Provides new tags for container-managed persistence (CMP).</li>
            <li> Leverages Web services metadata as an easy-to-use syntax for Web services in Java EE container.</li>
        </ul>

        <h2><a name="doc">Documentation</a></h2>
        <p>Documentation is provided for the NetBeans Enterprise Pack (including the NetBeans IDE) 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><a href="../../../kb/55/index.html">Documentation</a></li>
        </ul>
        <!--
        <p>For more documentation, tutorials, and articles about Sun Java Studio Enterprise, see the following documents:
        <ul>
            <li><a href="/prodtech/javatools/jsenterprise/tpr/reference/docs/index.html"><b>Sun Java Studio Enterprise Documentation</b></a></li>
            <li><a href="/prodtech/javatools/jsenterprise/tpr/learning/tutorials/index.html"><b>Sun Java Studio Enterprise Tutorials</b></a></li>
            <li><a href="/prodtech/javatools/jsenterprise/tpr/reference/techart/index.html"><b>Sun Java Studio Enterprise Articles</b></a></li>
        </ul>
      	-->

        <a name="more"></a>
        <h2>More Information</h2>
        <p>More information about <a href="index.html">NetBeans IDE 5.5 Preview</a>.</p>
        <p>For more information about Sun Java Studio Enterprise, visit
        <a href="http://developers.sun.com/prodtech/javatools/jsenterprise/tpr/">
        http://developers.sun.com/prodtech/javatools/jsenterprise/tpr/</a>. </p>
        <p>Additional useful information can also be found in the <a href="http://swforum.sun.com/jive/forum.jspa?forumID=174"><b>
        Sun Java Studio Enterprise Discussion Forum</b></a></p>
        <br>
    </body>
</html>
