blob: 506a86bc6bd9ef84342b4f9d5df4f01d07d6b168 [file] [log] [blame]
<!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>