blob: d1ddc662de9da9db19b7af58cf26399590f713ff [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--><mediawiki xmlns="http://www.mediawiki.org/xml/export-0.3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="0.3" xml:lang="en" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.3/ http://www.mediawiki.org/xml/export-0.3.xsd">
<siteinfo>
<sitename>NetBeans Wiki</sitename>
<base>http://wiki.netbeans.org/Main_Page</base>
<generator>MediaWiki 1.15.1</generator>
<case>first-letter</case>
<namespaces>
<namespace key="-2">Media</namespace>
<namespace key="-1">Special</namespace>
<namespace key="0"/>
<namespace key="1">Talk</namespace>
<namespace key="2">User</namespace>
<namespace key="3">User talk</namespace>
<namespace key="4">NetBeans Wiki</namespace>
<namespace key="5">NetBeans Wiki talk</namespace>
<namespace key="6">File</namespace>
<namespace key="7">File talk</namespace>
<namespace key="8">MediaWiki</namespace>
<namespace key="9">MediaWiki talk</namespace>
<namespace key="10">Template</namespace>
<namespace key="11">Template talk</namespace>
<namespace key="12">Help</namespace>
<namespace key="13">Help talk</namespace>
<namespace key="14">Category</namespace>
<namespace key="15">Category talk</namespace>
</namespaces>
</siteinfo>
<page>
<title>DevFaqBecomingProficient</title>
<id>7215</id>
<revision>
<id>65177</id>
<timestamp>2013-12-13T23:38:26Z</timestamp>
<contributor>
<username>Skygo</username>
<id>12034</id>
</contributor>
<minor/>
<text xml:space="preserve">__NOTOC__
===Becoming a Proficient NetBeans Module Developer===
The NetBeans Platform has a learning curve. The goal of this FAQ is to get you over the basic humps quickly. Being proficient does not necessarily mean knowing everything there is to know. It means being able to find what you need to know quickly when you need it. Here are some pointers.
===Javadoc===
The reference documentation for all of NetBeans APIs can be found on the web here:
[http://bits.netbeans.org/dev/javadoc/index.html http://bits.netbeans.org/dev/javadoc/index.html].
If you want a local copy of it, you can either download it from the update center, or build it from your source checkout
&lt;pre&gt;
cd $NB_SRC_ROOT
ant build-javadoc
&lt;/pre&gt;
===Using the Javadoc===
Notice the list of APIs in the upper left in the javadoc. These restrict the list of classes to a single API. /Also notice the link that says _javadoc_ next to each API name. It's important! This links to the overview page for each API. That page contains a list of changes, an architecture description, and other very useful stuff!/
===NetBeans Tutorials===
There are a [http://netbeans.org/kb/trails/platform.html huge number of tutorials]. Do at least some of them - step by step.
===FAQs===
There is a huge [[NetBeansDeveloperFAQ | Frequently Asked Questions for Module Developers]] list. It is worth bookmarking.
===Getting the Source Code===
Some people claim that they should never need to look at source code - documentation should suffice. That's just silly. The NetBeans codebase is a treasure-trove of examples of how to do things.
Since the end of January 2008 the NetBeans sources are stored in Mercurial repository at [http://hg.netbeans.org hg.netbeans.org].
You can see useful documentation about Mercurial and also about its specifics for NetBeans repository in [[HgMigrationDocs | HgMigrationDocs]] wiki topic. If you are already familiar with Mercurial you cat go directly to [[HgHowTos | HgHowTos]] topic.
You will end up with a large number of directories representing top-level NetBeans projects. Most of them will be openable as projects in NetBeans.
Here's how to [[HgHowTos#Doing_your_first_build | build it]].
The build of NetBeans will be created in &lt;tt&gt;nbbuild/netbeans&lt;/tt&gt;.
===How To Find Useful APIs===
See the [[DefFaqMapApisToTasks| tasks to APIs faq]] for a list of common tasks and what APIs you will want to use to accomplish those tasks.
===Get the NetBeans Platform Examples===
There are a large number of samples. Many of these correspond to the tutorials.
Two full blown NetBeans Platform applications are provided as samples in NetBeans IDE. Look in the Samples category in the New Project dialog and you will find the FeedReader sample and the Paint sample, for both of which there are tutorials describing how to create them from scratch.
You can find several other samples in the module &lt;tt&gt;platform&lt;/tt&gt; in &lt;tt&gt;main/misc&lt;/tt&gt; repository at hg.netbeans.org. They are in the &lt;tt&gt;platform/samples/&lt;/tt&gt; subdirectory. The &lt;tt&gt;platform/samples/&lt;/tt&gt; folder can be [http://hg.netbeans.org/main/misc/file/tip/platform/samples/ browsed online here].
===Build Platform from Sources===
First get platform sources from [http://www.netbeans.info/downloads/dev.php download page] or use Hg client as described in [[HgHowTos | HgHowTos]].
To build platform run
&lt;pre&gt;
cd $NB_SRC_ROOT
ant build-platform
&lt;/pre&gt;
===Mining the NetBeans Source Code for Examples===
For most things you will need to do, there is some module that does something similar already. For example, say that you want to show a window that shows the contents of some random directories on disk or some registry of objects your module creates. The &lt;tt&gt;core/favorites&lt;/tt&gt; module provides the Favorites window which does exactly this. A bit of intuition and a willingness to open a couple of projects is all it takes to find examples of many things. Often a good place to start is simply to open the source for a class you think you want to use and run Find Usages on it.
===Use the Mailing Lists===
If you have questions, the best place to go is the [mailto:dev@platform.netbeans.org developer mailing list]. Click [mailto:sympa@platform.netbeans.org?subject=subscribe%20dev this link] to subscribe.
You can also browse the [http://netbeans.org/projects/platform/lists/dev/archive archives online], but actually joining the mailing list is the best way to get (and give) help.
Note: dev@platform.netbeans.org was formerly dev@openide.netbeans.org - older archives can be found on [http://www.nabble.com/Netbeans---Open-API-f2609.html Nabble] and via a newsreader by going to &lt;tt&gt;news://news.gmane.org&lt;/tt&gt;.
Ask questions, and when you can answer them, do that too. There is a very healthy and helpful community there.</text>
</revision>
</page>
</mediawiki>