<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #213 - Oct 10, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-10-10">

<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# 10-Oct 15:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #213 - Oct 10, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #213 - Oct 10, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-10-10.html'>https://netbeans.org/community/news/newsletter/2005-10-10.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 5.0 Beta
The NetBeans 5.0 release introduces comprehensive support for developing IDE Module
Plugins and rich client applications based on the NetBeans Platform, the new
intuitive GUI builder Matisse, new and redesigned CVS support, Weblogic 9 and JBoss
4 support, editor enhancements and much more. Download:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=69">http://services.netbeans.org/newsletter/story.php?id=69</a>&gt;
Full details:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=67">http://services.netbeans.org/newsletter/story.php?id=67</a>&gt;

NetBeans Platform 5.0 Beta
The NetBeans Platform has been around for years, but the 5.0 beta makes module
(plug-in) development much easier and smoother than ever before. New project types
have been added to NetBeans IDE 5.0 which allow developers to easily extend the
NetBeans IDE with modules (plug-ins) or build rich client applications on top of
the NetBeans Platform. Download:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=70">http://services.netbeans.org/newsletter/story.php?id=70</a>&gt;
Full details:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=68">http://services.netbeans.org/newsletter/story.php?id=68</a>&gt;

NetBeans Mobility Pack 5.0 Beta
NetBeans Mobility Pack 5.0 adds several key new features to an already powerful and
easy-to-use mobile Java development tool, including: Improved end-to-end support for
building web services-based mobile applications for any MIDP device, new custom
components in the Visual Mobile Designer, improved pre-processor support for device
fragmentation, editable generated code and improved emulator support. NetBeans
Platform 5.0 information:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=71">http://services.netbeans.org/newsletter/story.php?id=71</a>&gt;

NetBeans Profiler Milestone 9
NetBeans Profiler Milestone 9 adds full-featured profiling capabilities to NetBeans
IDE 5.0, including: CPU, Memory and Threads profiling as well as application
monitoring. The profiler uses a unique approach to byte code instrumentation
minimizing the profiling overhead and providing accurate timing and memory results.
NetBeans Profiler Milestone 9 information and download instructions:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=72">http://services.netbeans.org/newsletter/story.php?id=72</a>&gt;

NetBeans IDE 5.0 Expert Presentation at JavaLobby
Listen in as NetBeans guru, Roman Strobl, guides you through some of the excellent
new features in NetBeans 5.0 Beta such as Matisse, Plugin Development, and
Refactoring.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=73">http://services.netbeans.org/newsletter/story.php?id=73</a>&gt;

NetBeans IDE 4.1/5.0 Profiler Tutorial
This tutorial will show you how to use the NetBeans Profiler to monitor the creation
of objects by an application (memory leak detection), to determine the CPU time used
by an application's methods (speed optimization), and to monitor the runtime behavior
of an application (heap memory size, garbage collection statistics, thread count,
thread state).
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=74">http://services.netbeans.org/newsletter/story.php?id=74</a>&gt;

Buildling A Complete NetBeans Platform Application
In this article, Tom Wheeler shows you how easy it is to create your own application
based on the NetBeans platform. Among others, he discusses the source and
configuration files common to all modules, how to separate interface from
implementation for greater flexibility, and how to "brand" the NetBeans platform to
use your own menus, labels and graphics.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=75">http://services.netbeans.org/newsletter/story.php?id=75</a>&gt;

NetBeans End-2-End Demo
This demo is designed to showcase NetBeans' end-2-end application development support -
J2EE to J2SE to J2ME. Along the way, we'll showcase many of the useful features found
in NetBeans, such as refactoring and HTTP monitoring. We start be showing NetBeans'
support for creating EJBs by creating a CMP entity bean. We then create a simple Java
object to show how easy it is to call the EJB. Then we create a JSP to show NetBeans
support for JSP syntax and the Java Standard Tag Library (JSTL). Along the way, we'll
demonstrate the HTTP monitor, refactoring support and the graphical deployment
descriptor editors. We'll then expose the JEE application as a web service. Finally,
we'll create a MIDlet that accesses the J2EE application and showcases the MIDlet
visual designer.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=76">http://services.netbeans.org/newsletter/story.php?id=76</a>&gt;

New: SQL Editor in NetBeans IDE 5.0
One of the features in NetBeans IDE 5.0 that not many people seem to know about is...
the new SQL Editor! When you use the IDE to make calls to a database, you now have a
lot of functionality to support you -- such as syntax highlighting and a pop-up menu
with menu items such as cut/copy/paste. And, if you're still missing some
functionality, why not use plug-in module wizards in NetBeans IDE 5.0 to extend the SQL
Editor? It's all described here, in Geertjan's blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=77">http://services.netbeans.org/newsletter/story.php?id=77</a>&gt;

Mevenide 0.9 for NetBeans IDE 4.1 and 5.0 Beta
A new 0.9 release of Mevenide for NetBeans has been released. It includes multiple
bugfixes, doesn't require Maven to be installed anymore and works with the new NetBeans
5.0 beta. If you already have mevenide installed, use the autoupdate center to upgrade.
You can also download it at the mevenide site.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=78">http://services.netbeans.org/newsletter/story.php?id=78</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>