| <!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—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—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—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—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> |