<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- -*- xhtml -*- -->
  <title>Meet a NetBeans Module Writer: Edgar Silva</title>
  <link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css">
  <meta name="AUDIENCE" content="NBUSER">
  <meta name="TYPE" content="ARTICLE">
  <meta name="EXPIRES" content="N">
<meta name="AUTHOR" content="Geertjan Wielenga">
  <meta name="developer" content="gwielenga@netbeans.org">
  <meta name="indexed" content="y">
  <meta name="description"
 content="">
<!--      Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved. -->
<!--     Use is subject to license terms.-->
</head>
<body>
<h1>Meet a NetBeans Module Writer: Edgar Silva</h1>
<p><small><a href="mailto:nbdocs_feedback@usersguide.netbeans.org?subject=Feedback:%20Meet%20A%20NetBeans%20Module%20Writer:%20Edgar">Feedback</a></small></p>

<table width="190" border="1" cellspacing="0" cellpadding="5" align="right" class="ltblue">
  <tbody>
  <tr>
    <td align="center"><img align="center" src="nbm_interviews/edgar/Edgar_4_NetBeans.png" alt="Edgar's picture">

	    <br><b>Edgar Silva</b></td>
  </tr>
  
  <tr>
	  <td>
		  <p>Edgar's hot links:
   <ul><li><a href="http://www.jroller.com/page/edgar">My Blog</a>
<li><a href="http://wiki.java.net/bin/view/People/EdgarSilva">My Wiki on Java.net</a>
<li><a href="http://www.summa-tech.com">Summa Technologies</a>
<li><a href="http://www.soujava.org.br">SouJava</a>
<li><a href="http://greenbox.javaforge.com">Greenbox Maven's Site</a>
<li><a href="http://www.versatiliti.com.br/greenbox/pt">Greenbox site in PT_BR</a>
	  </ul>
	 

			
  </tr>
  </tbody>
</table>

<p>Edgar Silva, a very active NetBeans module (plugin) developer in Brazil, will be presenting his research at 
 <a href="http://java.sun.com/javaone/sf/">JavaOne</a> on May 17th at 20.30. NetBeans staff caught up with him
 and asked him a few questions.

<p><h3>Edgar, where in the world are you and what do you do there?</h3>

<p>I am Brazilian, and right now I live in Porto Alegre, in the southern region of Brazil. 
But I have lived in a lot of other cities in Brazil, such as Belem, Manaus (Amazon Region), Sao Paulo, 
Belo Horizonte, and Brasilia. I work for <a href="http://www.summa-tech.com/">Summa Technologies</a>, as a senior consultant, providing consultancy 
services as a software architect and technical leader in some very interesting Java projects.

<p><h3>Are you active in the Java community in Brazil?</h3>

<p>Yes, I am, at least I believe I am: I was <a href="http://br.groups.yahoo.com/group/beljug/">BelJUG</a> founder in Belem, the first active and 
important Java User Group (JUG) in the Brazilian Amazon region. Recently BelJUG was incorporated as a 
<a href="http://www.soujava.org.br/jsp/index.jsp">SouJava</a> member,
which is very good for people in Belem, because they can share a lot of nice things with the national SouJava,
such as assistance in events, sponsorship and so on. In fact, SouJava is one of the reasons that Bel�m is present
as a very important city in Brazil when we talk about Java. I am helping in SouJava's management in Brazil; 
in addition, I give a lot of presentations in a lot of places, and the audience is always a very excited NetBeans community!
<p>My last presentation was last April, the 11th and 12th, at Fortaleza-CE, at <a href="http://www.suntechdays.com.br/htdocs/index.shtml">Sun Tech Days - S�o Paulo</a>, and 
I talked about NetBeans in one of my presentations. An interesting thing is that there were a lot of university
students, and after I showed <a href="https://netbeans.org/kb/50/quickstart-gui_legend.html">NetBeans Matisse</a>, the visual 
GUI builder, the room got very noisy&#8212;many people were upset, because
when they studied Java Swing they had used "the dark IDE", so... they wrote a lot of lines of code to build very simple user interfaces...

<div style="float: right;"><img src="nbm_interviews/edgar/edgar_quote2.png" alt="Edgar quote"></div>

<p><h3>Can you tell us about NetBeans in Brazil?</h3>

<p>Since 2004, NetBeans in Brazil has had a very close relationship with us. Brazil is a very large country, 
with number of particularities, such as that a large number of Portuguese accents are spoken here. In the last few years, through SouJava
assistance, Eduardo Costa has been leading NetBeans translation for Brazilian Portuguese (PT_BR), and I am trying contribute to that. 
I would like to show NetBeans in PT_BR at JavaOne! 

<p>I believe that the number of NetBeans users has improved since 2003 - 2004.
At least, nobody looks at me as an E.T anymore for being a NetBeans user! And, as I have the pleasure to work with a lot
of companies, they're moving to NetBeans, not only because NetBeans is better, but because of the simple fact that NetBeans is a 
ready-to-use IDE: simply download it, install it and <b>USE</b> it! I have so many friends teaching at universities here, and they are all using NetBeans.
Recently NetBeans promoted the <a href="https://desafionetbeans.dev.java.net/">NetBeans Desafio</a> (NetBeans Challenge), for
 creating plugins, and as a result we have had a lot of fanstastic plugins built in Brazil.
We're doing a lot of work here and in the coming years you will see many more Brazilian users in the NetBeans community. 


<p><h3>You've been very busy creating modules for NetBeans IDE. Tell us about them!</h3>

<div style="float: left;"><img src="nbm_interviews/edgar/edgar_quote3.png" alt="Edgar quote"></div>

<p>NetBeans really aims at <i>productivity</i>. In addition to this, it is really easy to create plugins since NetBeans 5.0.
Building plugins is an ability that is very important for the community, as well as companies such as the ones I work for, 
because we can create a "customer personality", create simple "toys" to enable rapid development and, most
importantly, <i>simplified</i> development!


<p>I usually say that some of my modules are my "toys", and as I was a JBuilder user in the past, a couple of times
this IDE has inspired me to create new toys for NetBeans. There are a lot of these toys to create&#8212;sometimes I would like to have
more available time to spend only to do that! One of these toys that I want to make is "Convert to JSF Tags", that will
 let the user create JSF tags simply by selecting a JSP file in some JSF project. I am planning to do that using 
<a href="https://javacc.dev.java.net/">JavaCC</a> or another similar approach.




 <p>The main effort that I've been working on is finish <a href="https://greenbox.dev.java.net/">Greenbox for NetBeans</a>,
 which is a plugin that generates applications
 based on Spring, Hibernate and JSF, and I've been studying the best way to enable it for the EJB 3.0 standard.


 In NetBeans, I created a <a href="https://netbeans.org/download/dev/javadoc/org-openide-windows/org/openide/windows/TopComponent.html">TopComponent</a>, which reads the connections from NetBeans IDE, so that after this I can get its
 information, such as fields, catalog, schemas and more. Based on the database structure I can generate a
lot of files from use cases using Velocity Templates. 

<p>The Greenbox framework helped me with my last customer to develop 
 a Java Solution, containing 28 use cases, with four 
other developers in four months, to a tight deadline. We finished all of them. Another company, called <a href="http://www.seatecnologia.com.br/">
Sea Tecnologia</a>, 
from Brasilia, also had a successful project using not only Greenbox, 
but its main idea&#8212;work with Metamodel, such as can be seen in MDA and MOF.


 
<p>Recently, my friend Pablo Madril, also from Summa Technologies, asked me "Hey Edgar, what about if we are at a customer without 
a database or with a terrible database, will Greenbox work in this situation?" So, in two or three days, I finished a new 
module, using Java annotations. I had some doubts as to how to get some tricky information from the IDE, but,
after a couple of questions on the <a href="https://netbeans.org/projects/openide/lists/dev/archive">dev@openide.netbeans.org</a> 
 mailling-list, I solved my problem.
 Basically, with annotated Java, you can select a Java file in the Projects window and call the pop-up menu and select 
an option "Generate Sources", then Greenbox will generate everything for you. This gave me a lot of motivation to 
study other internal secrets inside NetBeans. For example, my actual passion is the <a href="http://mdr.netbeans.org/">Metadata Repository (MDR) Module</a>, which is a MOF implementation inside 
NetBeans.



<p><h3>From where can we get your modules?</h3>

<p>I haven't finished my NetBeans update center, but I am using Java.Net (<a href="https://greenbox.dev.java.net">https://greenbox.dev.java.net</a>), 
and I am evaluating 
JavaForge (<a href="http://greenbox.javaforge.com">http://greenbox.javaforge.com</a>). 
 As soon as possible, I will create my update center and provide binary distributions 
to everything I've been doing with NetBeans.

<div style="float: right;"><img src="nbm_interviews/edgar/edgar_quote1.png" alt="Edgar quote"></div>

<p><h3>What are some of the problems you have encountered?</h3>

<p>Sometimes I have some question, that for me are completely impossible to answer. I am a lucky guy, because I have 
some friends in the NetBeans team, and they usually give me some assistance, but they are always very busy,
so my main point to solve my problems has been the <a href="https://netbeans.org/projects/openide/lists/dev/archive">dev@openide.netbeans.org</a>
 mailing list. In the past, the number of users outside 
of the NetBeans team answering questions was not too big but, currently, the number of people asking
interesting questions, and the number of people not signing in with a <tt>netbeans.org</tt> address, is really interesting. 
A lot of people are always providing tips and tricks as to how to solve a lot of hard problems. As with any useful mailing list,
besides a lot of help showing Javadoc URL links, some users enjoy sharing their code. So the <a href="https://netbeans.org/projects/openide/lists/dev/archive">dev@openide.netbeans.org</a> mailling list is in 
 fact a good channel to help you solve your problems.

<p><h3>Can you give a specific example of how you solved a problem?</h3>

<p>Recently, I had a nice question: How to get a class reference from a Java file selected in the Projects Window. In a couple of 
hours I got the solution (thanks <a href="http://blogs.sun.com/scblog">Sandip Chitale</a>!), so it made me excited to continue creating my modules. At least there are 
a lot of people trying to help all the time, and this is very important, because I am not only focused on NetBeans 
module development. In fact, our customers at Summa Technologies often call us to solve some application server performance problem
 or a deployment problem. Sometimes their persistence fails or they have some other Java technology problem.
 Therefore, for people like me, NetBeans is two different things at the same time... an IDE <i>and</i> a platform.

<div style="float: left;"><img src="nbm_interviews/edgar/edgar_quote4.png" alt="Edgar quote"></div>


<p><h3>What did you enjoy most about creating your NetBeans modules?</h3>

<p>I don't have too much time to spend studying a lot of docs before I create an extension, so NetBeans for me is good, because 
 it is really intuitive and you can really have a very quick development cycle.




<p><h3>What are your favorite features of NetBeans?</h3>

<p>Usually humans likes things that can be improved, customized, and styled to a certain purpose.
Men stereotypically do it with theirs cars; women usually with clothes, maybe.
 If I could make a comparison, NetBeans is for me a kind of car in which we can invest a couple of hours for tuning, 
 until I really have an awesome <i>Machine</i>. I really enjoy having some buttons and features that cause my friends
 to ask: "Hey Edgar, I don't have that feature in my IDE... is it new?" After some jokes, I say "No, it is <i>our</i> IDE,
 especially for <i>us</i>, different from anyone else's". 
 
 
 <p>Another great feature is that NetBeans is a ready-to-use IDE! So, it can avoid a lot of
 confusion about preferences by one plugin over another. I like a lot NetBeans features, impossible to name only one, but, for example, I like
"Create Shortcut" when you select an Ant task and can create a menu item, toolbar button, or keyboard shortcut that invokes it from inside the IDE! Also, Matisse is really awesome, reminds me of my good old Delphi! Really 
incredible! I wanna see the new features about databinding and data controls in NetBeans 6.0!

<p><h3>If you could change one thing in module development features in NetBeans, what would it be?</h3>

<p>Definitely Property Sheets! There are things I would like to do with them that are maybe impossible, or I really just don't know
how to use them very well. Please make it easier, and create something like one of the following:

<p><pre class="examplecode">getAllChangedProprtiesIntheBeanAsCollection:Collection</pre>

<p><pre class="examplecode">getChangedBean:Object</pre>

<p>I apologize if something like this is already available and I just don't know how to do it!

<p><h3>So, you're going to be at JavaOne. What are you going to do there?</h3>

<p>I have had the following "BOF" session approved: 

<p><b>Session Id:</b> BOF-2340
<br><b>Session Title:</b> Creating NetBeans Plug-ins for Integration With JavaServer Faces, Hibernate, Spring, and EJB 3.0 Technology
<br><b>Track:</b> TOOLS
<br><b>Room:</b> Esplanade 304/306
<br><b>Date:</b> 17-MAY-06
<br><b>Start Time:</b> 20:30

<p>In this session, Alexandre Gomes and I will show how we can improve productivity using NetBeans module 
development using the Greenbox framework, which enables applications to use Hibernate 3.0, the Spring Framework, and JavaServer Faces. 
In additition to this, we will show a lof of tips and tricks in how to build a very interesting J2EE architecture for several 
kinds of applications. And, finally, we will show some modules built with EJB 3.0, and what you can expect from Greenbox 3.0 
and NetBeans together, such as support from UML Designer reading and generating code, and more sophistacated usage of MDR (JMI/MOF) 
and other new features that are planned.

<p>I hope to see everybody there&#8212;usually at my presentations in Brazil there are a lot of good jokes!
I hope to translate them into English properly, allowing the audience to have a very interesting presentation and even to 
see a few people laughing when possible!

<p><h3>Thanks, Edgar and all the best at JavaOne and with your module development in NetBeans.</h3>

<p>



<!-- ======================================================================================== -->

<h2><a name="nextsteps"></a>Further reading</h2>

<p>For information about creating and developing plug-in modules and rich-client applications, see the following resources: 
<ul>
	
	  <p><li><a href="https://platform.netbeans.org/tutorials/quickstart-nbm.html">Introduction to NetBeans Module Development</a></li>
	  <p><li><a href="https://platform.netbeans.org/tutorials/nbm-paintapp.html">Introduction to Rich-Client Application Development</a></li>
	  <p><li><a href="https://platform.netbeans.org/tutorials/index.html">NetBeans Modules and Rich-Client Applications Learning Trail</a></li>
	  <p><li><a href="https://netbeans.org/download/dev/javadoc/">NetBeans API Javadoc (Current Development Version)</a></li>
	  <p><li><a href="http://www.planetnetbeans.org">Blogs by NetBeans Engineers and NetBeans Users</a></li></ul>
  </p>
  
  <hr>


</body>
</html>
