<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #210 - Sep 05, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-09-05">

<link rel="stylesheet" type="text/css" href="/netbeans.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">

<!-- ====================================================== -->
<!-- Please do not edit this file by hand, it is rebuilt    -->
<!-- automatically and your changes will be lost.  Contact  -->
<!-- webmaster for details.  Rebuilt at                     -->
<!-- #TIMESTAMP# 05-Sep 17:07 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #210 - Sep 05, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #210 - Sep 05, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-09-05.html'>https://netbeans.org/community/news/newsletter/2005-09-05.html</a>&gt;<br>
Interested in becoming a newsletter editor?  We're always looking<br>
for editors to help out. Contact <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
<hr><pre>It's Official! The Next NetBeans Version Will Be 5.0
Thanks everyone for participating in the discussion. NetBeans IDE 5.0 is going to rock!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=52">http://services.netbeans.org/newsletter/story.php?id=52</a>&gt;

NetBeans World Tour Dates
The NetBeans team takes the wildly popular 2005 NetBeans Software Day on the 
road. The first stop is Beijing, China on September 12.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=45">http://services.netbeans.org/newsletter/story.php?id=45</a>&gt;

RCP Tutorial First Draft
Have you been checking out all the cool new plug-in module development tools 
that have been making their way into the dev builds lately? If not, check out 
the first draft of Geertjan's RCP tutorial. He quickly takes you through 
building a stand-alone RSS feed reader on the NetBeans platform.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=46">http://services.netbeans.org/newsletter/story.php?id=46</a>&gt;

Netbeans Quick Tip #12 - Fast Navigation to Methods and Fields
Lots of ways to get to that class file but which one is quickest? Roman shares 
some shortcuts.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=47">http://services.netbeans.org/newsletter/story.php?id=47</a>&gt;

Even More Struts and JSF Support in NetBeans IDE Dev!
Geertjan looks at the new JSF and Struts support features that are in the dev 
builds.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=48">http://services.netbeans.org/newsletter/story.php?id=48</a>&gt;

Real-Time Java is Real?
Interesting thread about real-time Java and mission-critical software systems.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=51">http://services.netbeans.org/newsletter/story.php?id=51</a>&gt;

Excluding Files in New CVS
Quick hints about how to exclude .class files and other generated files from CVS 
commits and the Versioning window preview of changed files.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=50">http://services.netbeans.org/newsletter/story.php?id=50</a>&gt;

Classpath and Modules
Thread on openide-dev discussing the proper way to manage the classpath in 
NetBeans plug-in modules.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=49">http://services.netbeans.org/newsletter/story.php?id=49</a>&gt;
</pre><hr>This issue of NetBeans Weekly News was brought to you by John Jullion-Ceccarelli.<br>
The next editor will be Robert Demmer. (New volunteers are welcome!)<br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a></BODY>
</HTML>