<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #192 - Mar 15, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-03-15">

<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# 17-Mar 16:34 CET                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #192 - Mar 15, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #192 - Mar 15, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-03-15.html'>https://netbeans.org/community/news/newsletter/2005-03-17.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>NetBeans IDE 4.1 Beta Now Available
&lt;<a href="https://netbeans.org/downloads/index.html">https://netbeans.org/downloads/index.html</a>&gt;
The NetBeans 4.1 IDE delivers out-of-the-box support for building Java 2
Platform, Enterprise Edition (J2EE) technology applications, including
Enterprise JavaBeans (EJB) component architectures and Web services,
without having to search for an array of plug-in modules. This release,
available since February 25, has over 15 new modules for developing
enterprise applications and is built on the breakthrough NetBeans 4.0
technology. For more information on the 4.1 release visit:
&lt;<a href="http://biz.yahoo.com/prnews/050309/sfw055_2.html">http://biz.yahoo.com/prnews/050309/sfw055_2.html</a>&gt;

Versioning Control News (4.1 Beta)
NetBeans IDE 4.1 versioning support includes 5 major feature enhancements:
* improved reliability
* package view integration
* annotation styles
* status sensitive actions
* action default values
&lt;<a href="https://netbeans.org/projects/obsolete/releases/41/whatisnew.html">https://netbeans.org/projects/obsolete/releases/41/whatisnew.html</a>&gt;

"Switch to NetBeans"
A new program offering a simple and easy-to-implement transition of
current development projects to the NetBeans IDE has begun. As part of
the switch program NetBeans 4.1 Beta download offers a "Import Eclipse
Module" and full documentation. Now is the time to get your friends
and colleagues on boards with NetBeans. Just point them toward:
&lt;<a href="https://netbeans.org/switch/">https://netbeans.org/switch/</a>&gt;
Top Ten Reasons to Switch to NetBeans
&lt;<a href="https://netbeans.org/switch/why.html">https://netbeans.org/switch/why.html</a>&gt;

Why Eclipse Developers Are Moving To NetBeans
This is a very nice entry written by Charles Ditzel and certainly worth
a read through. If you have been following industry news in recent times
you are sure to understand where he is coming from:
&lt;<a href="http://cld.blog-city.com/read/1126337.htm">http://cld.blog-city.com/read/1126337.htm</a>&gt;

Using NetBeans to Develop with the eBay SDK for Java
This tutorial demonstrates how to get up and running with the eBay SDK
for Java. By using NetBeans 4.0 to develop your eBay applications, you'll
have the added productivity of code completion, Javadoc help, code
compilation, execution and debugging all from inside the NetBeans IDE.
&lt;<a href="https://netbeans.org/kb/articles/ebay-sdk.html">https://netbeans.org/kb/articles/ebay-sdk.html</a>&gt;

Better Profiling through Code Hotswapping:
Sun's Misha Dmitriev, Project Lead for the JFluid profiling tool, discusses
the origins, development, and future of JFluid.
&lt;<a href="http://java.sun.com/developer/technicalArticles/Interviews/Dmitriev_qa.html">http://java.sun.com/developer/technicalArticles/Interviews/Dmitriev_qa.html</a>&gt;

NetBeans IDE Book Excerpts: More Draft Chapters
The NetBeans IDE Field Guide is planned for release by Prentice Hall in June
2005 and will cover NetBeans IDE 4.1. New Draft chapters covering J2EE are
now downloadable in PDF format from:
&lt;<a href="https://netbeans.org/kb/articles/NBFieldGuide.html">https://netbeans.org/kb/articles/NBFieldGuide.html</a>&gt;

Safari Search Plug-in for NetBeans
The Safari Search Plug-in for NetBeans (SSPN), is a combined effort by
Safari and Sun Microsystems Inc. The Plug-in provide an entry point to the
vast resources of O'Reilly and other book publishers through the Netbeans IDE.
&lt;<a href="https://netbeans.org/community/news/index.html#587">https://netbeans.org/community/news/index.html#587</a>&gt;
</pre><hr>This issue of NetBeans Weekly News was brought to you by Robert Demmer.<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>