<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> |