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

<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# 22-Sep 16:11 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #211 - Sep 22, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #211 - Sep 22, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-09-22.html'>https://netbeans.org/community/news/newsletter/2005-09-22.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>First Stop Beijing: Tales From the NetBeans Day worldTour
After the success of NetBeans Day - San Francisco, the NetBeans Team has hit the
road for a ten city around-the-world tour. Our first stop was in Beijing on
Monday, 12 September. Find out what happened in this first hand article from
author Tori Wieldt.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=53">http://services.netbeans.org/newsletter/story.php?id=53</a>&gt;

NetCAT 5.0 Has Started
NetBeans IDE 5.0 is entering its stabilization phase and the final participants
have been chosen to take part in the 9-week NetBeans 5.0 Community Acceptance
Testing (NetCAT) program. There were over 500+ valid applications in the first 24
hours. Read more about the NetCAT program.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=54">http://services.netbeans.org/newsletter/story.php?id=54</a>&gt;

NetBeans Quick Tip #13 - Define a Shortcut for Ant Target
Roman shares another tip that allows you to easily define a keyboard shortcut for
an ant target.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=55">http://services.netbeans.org/newsletter/story.php?id=55</a>&gt;

Connect To a Web Service in 5 Minutes
Create a J2ME client that connects to a web service with Mobility Pack for NetBeans
5.0. Lukas creates a simple client in under five minutes.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=56">http://services.netbeans.org/newsletter/story.php?id=56</a>&gt;

Consuming Web Services in NetBeans IDE 4.1 (Part 2)
This tutorial describes how to use the web service facilities provided by NetBeans
IDE 4.1 to analyze the web service, before building the client.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=57">http://services.netbeans.org/newsletter/story.php?id=57</a>&gt;

Getting Started with the NetBeans Platform
Tom Wheeler explains how to get a head start towards creating desktop applications
by reusing the infrastructure on which the NetBeans IDE itself is built.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=58">http://services.netbeans.org/newsletter/story.php?id=58</a>&gt;

Quickstart JSP/Servlets Demo Using NetBeans
The video shows how to set up a Web application, create a simple JSP page, a
simple Servlet and run everything using the bundled tomcat servers.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=59">http://services.netbeans.org/newsletter/story.php?id=59</a>&gt;

Brewing Java Web Services with NetBeans 4.1
Daniel Winter has an article on builderau.com that shows you how to write a Web
service using NetBeans.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=60">http://services.netbeans.org/newsletter/story.php?id=60</a>&gt;

The Message Handler: A Web Service's Secret Weapon
Inject some life into your web services and clients -- add some message handlers!
They're not much work, but extremely useful. Better still, if you want the message
handler to function as a logger, the New Message Handler wizard (available since
NetBeans IDE 4.1) does all the work for you. Complete logger for web services and
clients, out-of-the-box. Read all about it right here in Geertjan's blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=66">http://services.netbeans.org/newsletter/story.php?id=66</a>&gt;

Integrating Dreamweaver MX with NetBeans IDE
Ruth demonstrates how you can configure Macromedia Dreamweaver MX as a visual
layout editor for a web application created in NetBeans IDE. You can integrate
NetBeans IDE 4.x with Macromedia Dreamweaver MX for visual HTML and JSP editing.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=61">http://services.netbeans.org/newsletter/story.php?id=61</a>&gt;

NetBeans IDE 5.0 & Matisse: Snapshots & Thoughts on a Complete Rich Client Platform
Charles tells us about his experience with Matisse and includes many nice
screenshots to accompany one of his latest blog entries.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=62">http://services.netbeans.org/newsletter/story.php?id=62</a>&gt;

New RegexTester Contrib Module Available
RegexTester is simple module for validation of string input against regex pattern.
It is available here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=63">http://services.netbeans.org/newsletter/story.php?id=63</a>&gt;

Cool Beans
Software Development Magazine has an article, "Cool Beans" in their October 2005
issue. Writer Rick Wayne takes a look at three Java development environments built
on the NetBeans Platform for building anything from applets to enterprise Web
applications. In order to read the full article you need to be registered.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=64">http://services.netbeans.org/newsletter/story.php?id=64</a>&gt;

Built on NetBeans: Sun Java Studio Creator EA2
This visual IDE for application development in Java is built on NetBeans 4.1 and
includes a lot of cool new preview features like a new set of JavaServer Faces
components, support for building JSR-168 portlets, easy access to databases, a
streamline application model, and more. Try it free:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=65">http://services.netbeans.org/newsletter/story.php?id=65</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>