blob: 88bc96c7e435b15bcc1aaa21c95844015614ea60 [file] [log] [blame]
<html>
<head>
<title>NetBeans Platform Description</title>
</head>
<body>
<h1>NetBeans Platform Features</h1>
<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>
<p>The main reusable features and components comprising
the NetBeans Platform are outlined below.</p>
<h2>Module System</h2>
<p><img align="left" src="https://platform.netbeans.org/images/features/puzzle-0.jpg"/></p>
<p>The modular nature of a NetBeans
Platform application gives you the power to meet complex
requirements by combining several small, simple, and easily tested
modules encapsulating coarsely-grained application features.</p>
<p>Powerful versioning support helps give you confidence that
your modules will work together, while strict control over the public APIs
your modules expose will help you create a more flexible application
that's easier to maintain.</p>
<p>Since your application can use either standard NetBeans Platform
modules or OSGi bundles, you'll be able to integrate third-party
modules or develop your own. </p>
<h2>Lifecycle Management</h2>
<p><img align="left" src="https://platform.netbeans.org/images/features/puzzle-2.jpg"/></p>
<p>Just as application servers, such as GlassFish or WebLogic, provide lifecycle services
to web applications, the NetBeans runtime container provide lifecycle
services to Java desktop applications.</p>
<p>Application servers understand how to
compose web modules, EJB modules, and related artifacts, into a single web
application. In a comparable manner, the NetBeans runtime container understands how to
compose NetBeans modules into a single Java desktop application.
</p>
<p>There is no need to write a main method for your application because
the NetBeans Platform already contains one. Also, support is provided
for persisting user settings across restart of the application, such as,
by default, the size and positions of the windows in the application.</p>
<h2>Pluggability, Service Infrastructure, and File System</h2>
<p><img align="left" src="https://platform.netbeans.org/images/features/puzzle-1.jpg"/></p>
<p>End users of the application benefit from pluggable applications
because these enable them to install modules into their running
applications.</p><p> NetBeans modules can be installed, uninstalled,
activated, and deactivated at runtime, thanks to the runtime container.
<p>The NetBeans Platform provides an infrastructure for registering and
retrieving service implementations, enabling you to minimize direct
dependencies between individual modules and enabling a loosely
coupled architecture (high cohesion and low coupling).
<p>The NetBeans Platform provides a virtual file system, which is a hierarchical registry
for storing user settings, comparable to the Windows Registry on
Microsoft Windows systems. It also includes a unified API providing
stream-oriented access to flat and hierarchical
structures, such as disk-based files on local or remote servers,
memory-based files, and even XML documents.
</p>
<h2>Window System, Standardized UI Toolkit, and Advanced Data-Oriented Components</h2>
<p><img align="left" src="https://platform.netbeans.org/images/features/puzzle-3.jpg"/></p>
<p>Most serious applications need more than one window. Coding
good interaction between multiple windows is not a trivial task. The
NetBeans window system lets you maximize/minimize, dock/undock,
and drag-and-drop windows, without you providing any code at all.
</p>
<p>Swing and JavaFX are the standard UI toolkits on the Java desktop and can be used
throughout the NetBeans Platform. Related benefits include the ability to change
the look and feel easily via "Look and Feel" support in Swing and CSS integration
in JavaFX, as well as the portability of GUI components across all operating
systems and the easy incorporation of many free and commercial
third-party Swing and JavaFX components.
</p>
<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 components for displaying nodes.
<p>In addition to a window system, the NetBeans Platform provides
many other UI-related components, such as a property sheet, a
palette, complex Swing components for presenting data, a Plugin
Manager, and an Output window.
</p>
<h2>Miscellaneous Features, Documentation, and Tooling Support</h2>
<p>The NetBeans IDE, which is the software development kit (SDK) of the NetBeans Platform,
provides many templates and tools, such as the award winning Matisse GUI Builder
that enables you to very easily design your application's
layout.</p>
<p>The NetBeans Platform exposes <a href="http://bits.netbeans.org/dev/javadoc/index.html">a rich set of APIs</a>, which
are <a href="https://platform.netbeans.org/screenshots.html">tried</a>, <a href="http://qa.netbeans.org/">tested</a>,
and <a href="https://platform.netbeans.org/whatsnew/index.html">continually being improved</a>.</p>
<p>The
<a href="http://forums.netbeans.org/platform-users.html">community is helpful and diverse</a>, while a
vast library of
<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 and updated in multiple languages by many different people
around the world.</p>
<!-- <p>The JavaHelp API is an integral part of the NetBeans Platform. You
can create help sets in each of your modules, and the NetBeans
Platform will automatically resolve them into a single helpset. You
can also bind help topics to UI components to create a context-
sensitive help system for your application.
</p>-->
<!--
<p><h2>Other Benefits</h2>
<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="https://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>