<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- -*- xhtml -*- -->
  <title>Basic Terms for NetBeans Rich Client Application Development</title>
  <link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css">
  <meta name="AUDIENCE" content="NBUSER">
  <meta name="TYPE" content="ARTICLE">
  <meta name="EXPIRES" content="N">
  <meta name="author" content="gwielenga@netbeans.org">
  <meta name="indexed" content="y">
  <meta name="description"
 content="A short guide to creating, installing, modifying, and reloading a simple NetBeans Module.">
<!--      Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
<!--     Use is subject to license terms.-->
</head>
<body>
	<h1>Basic Terms for NetBeans Rich Client Application Development</h1>
<p><small><a href="mailto:nbdocs_feedback@usersguide.netbeans.org?subject=Feedback:%20NetBeans%20IDE%20Glossary%20for%20NetBeans%20Modules">Feedback</a></small></p>


<p>The NetBeans Platform tutorials assume that you are familiar with some of the 
 basic terms that relate to NetBeans module development. The terms are few
  and not very difficult. Once you have grasped the concepts below, you should
  consider reading <a href="nbm-idioms.html">Introduction to the NetBeans Idioms and Infrastructure</a>.

 <p>The basic terms used in module development are as follows:
<ul>
	<p><li><b>NetBeans Platform.</b>
	The skeleton application that provides everything most applications need and little 
	of what they don't. The NetBeans Platform provides an application's common requirements -- 
	such as menus, document management, and settings -- right out of-the-box. Building an 
	application "on top of NetBeans" means that, instead of writing applications from scratch, 
	you only provide the parts of your application that the NetBeans Platform doesn't already have. 
	At the end of the development cycle, you bundle your application with the NetBeans Platform, 
	saving you time and energy and resulting in a solid, reliable application.

	<p><li><b>System Filesystem.</b>
	The general registry that contains NetBeans configuration information, built from the 
	layer.xml configuration files of the registered modules. NetBeans stores a wide variety 
	of configuration information in the System Filesystem. For example, the System Filesystem 
	contains a folder called Menu, which contains subfolders with names such as File and Edit. 
	These subfolders contain files that represent Java classes which implement the actions that 
	appear in the "File" and "Edit" menus in the IDE.

	<p><li><b>Module.</b>
	A group of Java classes that provides an application with a specific feature. For example,
	the feature provided by the Java classes in the <a href="nbm-feedreader.html">Feed Reader Tutorial</a> is an RSS/Atom feed reader. The 
	Java classes use the manifest.mf file to declare the module and the layer.xml configuration 
	file to register their functionality in the System Filesystem. In NetBeans terminology, "plugin" 
	is an adjective, while "module" is a noun. There is no discernible difference in meaning between them. 

	<p><li><b>NetBeans APIs.</b>
	The public interfaces and classes which are available 
	to module writers. They are divided into specific APIs for dealing with different types of functionality. 
	The contents and behavior of the Java source packages and its subpackages, as specified in the API reference 
	documentation, are the APIs. For the full NetBeans API List, click <a href="https://netbeans.org/download/dev/javadoc/">here</a>.

	<p><li><b>Module Suite.</b>
	A group of interdependent modules that are deployed together. The IDE helps you to brand the suite
	-- for example, you can add a splash screen and you can specify the parts of the NetBeans Platform 
	that you don't want your application to provide.
	
</ul>

</body>
</html>
