<html>
<head>
<title>NetBeans Platform Description</title>
</head>
<body>
<p class="align-right font-13">
                                       <span class="green">|</span> <a href="./">Home</a> <span class="green">|</span> <b class="font-light">Description</b> <span class="green">|</span> <a href="https://platform.netbeans.org/screenshots.html">Showcase</a>
                                    </p>
                                    <br>
                                    <img src="https://netbeans.org/images_www/screenshots/platform/blueMarine_thumb.png" class="img-right">
                                    <p><b>Why would you use the NetBeans Platform?
                                    What does the NetBeans Platform give you? Many
                                    out-of-the-box components and
                                    much else besides.</b> 
                                    
                                    <h2>Description of Main Reusable Components</h2>
                                    
                                    <p>The main reusable components comprising
                                    the NetBeans Platform are as follows:
                                    
                                    <h3>Modular Runtime Container</h3>
                                    <p>
                                        Just as application servers
                                        such as GlassFish provide
                                        lifecycle services to web applications,
                                        the NetBeans runtime container
                                        provides them to Swing applications.
                                        Application servers understand
                                        how to compose web modules, EJB modules,
                                        and so on, into a single web application,
                                        just as the NetBeans runtime container understands
                                        how to compose NetBeans modules
                                        into a single Swing application. <p>Modularity offers
                                        a solution to "JAR hell" by letting
                                        developers organize their code into strictly
                                        separated and versioned modules. Only
                                        those that have explicitly declared
                                        dependencies on each other are able to use
                                        code from each other's exposed packages. This
                                        strict organization is of particular relevance
                                        to large applications developed by
                                        engineers in distributed environments, during
                                        the development as well as the maintenance of their
                                        shared codebase.
                                        <p>End users of the application benefit too
                                        because they are able to install modules
                                        into their running applications, since modularity
                                        makes them pluggable. In short, the
                                        NetBeans runtime container is an execution
                                        environment that understands
                                        what a module is, handles its lifecycle,
                                        and enables
                                        it to interact with other modules
                                        in the same application.
                                    <p>Watch the video:
                                        <p><object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=41902674001&playerID=1640183659&domain=embed&" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" bgcolor="#FFFFFF" flashVars="videoId=41902674001&playerID=1640183659&domain=embed&" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>

                                    <h3>Loose Coupling & Context Sensitivity Management</h3>
                                    <p>
                                        The JDK 6 ServiceLoader class lets
                                        you load objects into a standard
                                        Java application's application context.
                                        The NetBeans equivalent, which is the
                                        Lookup class, provides the same functionality,
                                        dependency injection, and much else besides. <p>Not only can you
                                        use this class to enrich a module's context,
                                        but also the context of windows and other components within
                                        a module.
                                        The Lookup feature enables
                                        modules to communicate with each other
                                        in a type-safe manner and in such a way
                                        that objects defined in one module can
                                        be used in another module, without the
                                        two modules needing to depend on each other.
                                    </p>
                                    <p>Watch the video:
<p> <object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=41915822001&playerID=1640183659&domain=embed&" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" bgcolor="#FFFFFF" flashVars="videoId=41915822001&playerID=1640183659&domain=embed&" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>
       
                                    <h3>System FileSystem</h3>
                                    <p>
                                        When you install applications onto
                                        your computer, the application's installer
                                        writes folders and files into the
                                        operating system. The
                                        NetBeans filesystem offers similar
                                        functionality to your Swing applications.
                                        Each module installed into a Swing application
                                        can install folders and files
                                        into the application's filesystem, allowing
                                        other modules in the application to find
                                        them and use them. <p>For example, if there
                                        are settings that you'd like one module to make available
                                        to your application, you can register them
                                        in the filesystem. In this way, the
                                        NetBeans filesystem enables modules
                                        within your application
                                        to communicate with each other.
                                    <p>Watch the video:
                                       <p><object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=41915891001&playerID=1640183659&domain=embed&" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" bgcolor="#FFFFFF" flashVars="videoId=41915891001&playerID=1640183659&domain=embed&" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>

                                    <h3>Window System</h3>
                                    <p>
                                        Most serious applications need
                                        more than one window. Coding good
                                        interaction between multiple
                                        windows is not a trivial task.
                                        Out of the box,
                                        the NetBeans Platform provides
                                        functionality such
                                        as maximize/minimize, dock/undock,
                                        and drag-and-drop of windows 
                                        in your application. That is made
                                        possible because windows in
                                        a NetBeans Platform application
                                        are 
                                        part of the NetBeans window system.
                                    </p>
                                    <p>Watch the video:
                                   <p><object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=41911819001&playerID=1640183659&domain=embed&" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" bgcolor="#FFFFFF" flashVars="videoId=41911819001&playerID=1640183659&domain=embed&" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>

                                    <h3>Data Management</h3>
                                    <p>
                                        With the NetBeans Platform, you're not
                                        constrained by one of the typical
                                        pain points in Swing: the JTree model
                                        is completely different to the JList model,
                                        even though they present the same data.
                                        Switching between them means
                                        rewriting the model. The NetBeans Nodes API provides
                                        a generic model for presenting your data.
                                        The NetBeans Explorer & Property Sheet API
                                        provides several advanced Swing comonents
                                        for displaying nodes. As a result,
                                        by rewriting one
                                        single line of code, you can
                                        completely change the
                                        way the model is presented without
                                        touching the model at all. In turn, this
                                        lets you very quickly and efficiently
                                        present data to your users.

                                    </p>
                                    <p>Watch the video:
        <P><object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=41913381001&playerID=1640183659&domain=embed&" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&publisherID=1460825906" bgcolor="#FFFFFF" flashVars="videoId=41913381001&playerID=1640183659&domain=embed&" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object>


                                  <!--    <h3>Action System</h3>
                                    <p>
                                       Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque fringilla. Donec eu ante. Nam nisl mi, adipiscing in, auctor non, blandit ut, dui.
                                       Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque fringilla. Donec eu ante. Nam nisl mi, adipiscing in, auctor non, blandit ut, dui.
                                       Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque fringilla. Donec eu ante. Nam nisl mi, adipiscing in, auctor non, blandit ut, dui.
                                    </p>

                                  <h3>Extensions to Swing</h3>
                                    <p>The NetBeans Platform provides
                                     the following custom components:
                                    <ul>
                                        <li>TopComponent
                                        <li>Visual Library
                                        <li>Explorer Views
                                        <li>Miscellaneous Swing Components
                                    </ul>
                                    
                                    <h3>Ready-To-Use Components</h3>
                                    <p>By simply selecting one checkbox, and
                                    without you needing to do any coding at all,
                                    your application can use the following
                                    NetBeans Platform components:
                                    <ul>
                                        <li>Favorites Window
                                        <li>Plugin Manager
                                        <li>Options Window
                                        <li>JavaHelp System
                                    </ul>
                                    </p>-->
                                    <p><h3>Other Benefits</h3>

<p><p>Other factors that have persuaded developers to use the NetBeans Platform include
 the fact that the NetBeans Platform uses Swing,  which is the official standard UI toolkit,
 that it enables applications to have a consistent look and feel,
 that the Matisse GUI Builder enables you to very easily design your application's
 layout, that <a href="http://bits.netbeans.org/dev/javadoc/index.html">the NetBeans Platform provides a rich set of APIs</a>, and that the
 NetBeans Platform is <a href="https://platform.netbeans.org/screenshots.html">tried</a>, <a href="http://qa.netbeans.org/">tested</a>, and <a href="http://platform.netbeans.org/whatsnew/65.html">continually being improved</a>. Finally,
 <a href="http://forums.netbeans.org/platform-users.html">the community is helpful and diverse</a>, while <a href="http://planets.sun.com/nbplatform/group/Prague/">blogs</a>,
 <a href="https://platform.netbeans.org/articles/books.html">books</a>,
 <a href="https://platform.netbeans.org/tutorials/">tutorials</a>, and <a href="http://edu.netbeans.org/contrib/slides/netbeans-platform/">training materials</a>
 are continually being developed in multiple languages by many different people
 around the world.
</body>
</html>
