Thursday, December 31, 2009

Happy New Year from GeneXus USA

GeneXus USA Community,

From the entire GXUSA team, we wish all of you a Happy New Year, and look forward in working with all of you in 2010, building the most important applications with the tool we all love, GeneXus!


Monday, December 21, 2009

G2Wconvert: a utility to convert GeneXus green screen applications to Web

Around June of this year, we start working, with our friends at Careworks, on the idea of building a utility to automate the conversion of their GeneXus Green Screen Application to the Web. After a few months of R&D, we ended up with a list of what we called "Conversion Issues"; on November 2th we had the opportunity to show a first demo of the utility during our User Event in Chicago, which included only one of the Conversion Issues, the Screen Conversion, which identify the different elements of a Green Screen Form and converted them into an equivalent HTML Form.

Just last week, we demo the current state of the utility, which includes many more conversion issues, so I will like to take this opportunitity to share it with all of you:

We are working now on completing the testing of all the conversion issues on this sample KB, to then move the testing to Careworks' KB on which we will be running the conversion against 3700 objects, our goal is to be able to convert their KB by the end of January 2010.

Stayed tune!!!

Tuesday, December 15, 2009

4 advices to start creating your User Control

Of all the new features included in GeneXus X and the new Evolution 1, one of the most moving, and certainly the most visually appealing to the final user, is the inclusion of User Controls.

User Controls (or UC, for short) are wrappers that GX uses to communicate with interface objects written in different languages. Because of that wrapper, GX can invoke those objects to show whatever the developer wants to show, and those objects can reply back to our applications. Web interface veterans know that we can embed JavaScript code inside GX objects for some time now, but those solutions were often hard to maintain, extremely limited and seemed out of place inside the GX code. It is the versatility, potency, transparency and ease of use that makes UC more a necessity than just a new commodity.

GeneXus has a pretty extensive library of UC (available here) that grows daily thanks to user communit, with examples for almost every need. But even then, you may need something particular for your application, a new UC or an modification of a UC to fit your needs. Here are some pieces of advice for you to start in the journey on the User Controls’ world. Hope it helps.

1- Get used to the development interface. This is the User Control Designer. Even when the user control files can be opened with a standard text editor (save for very particular, advanced modifications), that is not the recommended approach. In this easy to use application, you can find anything you may need, from a properties definition interface, to a JavaScript editor. The application can be found in the GeneXus’ installation folder, and if you are going to modify User Controls regularly, we also advise you to create a shortcut on your desktop.

2- Start from the beginning. When exploring a new technology, it is important to start with simple examples and move all the way to the top. With this, as with anything in GX, we recommend an incremental model of development. Here you can find the classic “Hello World” example of UC. It is a pretty deep example on how to start writing a UC from the ground up. After you complete it, try to change something simple, like adding a property to set the message.

3- Research for solutions. Internet is such a rich repository of JavaScript or flash solutions, that you are likely going to find something for your need out there. Integrating a JavaScript solution to a UC is really easy, and can be both a good way of learning, and a solution to your problems. However, we do not endorse piracy, so please ask for permission before using the code, and include the proper copyright notes in your code.

4- Share your success and problems. The GeneXus forums and gallery is a growing community that benefits for every active user. There are some forums in English and other languages specific for user controls, both geared toward the use and development. If you have any problem feel free to ask, as that is how the UC GX Community will grow. So starting developing your UC today, and we look forward to seeing your solutions in the gallery.

Thursday, December 3, 2009

Developing Web applications with GeneXus X Ev1 is as easy as it was to develop WIN application with previous versions

After working with GeneXus X Ev1 for sometime now, I can say, “Thanks Artech” Why? The answer is very simple: My life as a GeneXus developer is EASY again.” Now developing Web applications with GeneXus X Ev1 is as easy as it was to develop WIN applications with previous version.

There are many reasons why I do like the new GeneXus version:

· Great new IDE

· Full text search

· Extensions

· User Controls

· Data Selectors

· Data providers

But the one I like most is USER CONTROLS. With users controls now we can go and develop a full Web 2.0 application, adding a lot of cool stuff, just by doing a drag & drop of the user controls we need, and just a simple configuration after that, with previous versions it was much more complicated.

An example of this, let’s talk about adding a Drop Down menu, or trying to open a popup window, or having a webpanel to be displayed only with a mouse over. All this things and much more can be done with GeneXus 9.0, but not in a simple way, to do it in Gx 9.0, we must do the following...

· add a textblock to the webpanel

· change the format property to HTML

· add in the start event a textblock.visible = 0

· and finally add to the caption of the textblock all the JavaScript code

I remember adding the JSCookMenu to an application I developed about two years ago, and it took me an entire week to have the menu running. So I tried the exact same thing with GeneXus X Ev1 and it took me only less then a day, to have the same menu up and running, and all I had to do was drag & drop the JSCookMenu User Control, load a Data Provider, and I was Smiling. So now in GeneXus Ev1 we have lots of user controls, that we can add to our applications, without having to learn another development language (JavaScript).

So my personal recommendation is, if you can move to GeneXus X Ev1, do it ASAP, you will have no regrets and be a ton more productive! As usual KB conversion are sometimes difficult and can be complicated, but in the end you will be much happier, and if you are planning to start any new development of a web application even better.

Monday, November 23, 2009

Planning vs Reality - XPM solution, a way of work

When we are planning how we want to work, we imagine a lot of ideal tasks and activities, we plan them in order and then we estimate how long the effort will take.
Everything seems that will perfectly fall in place; ordered and planned. Everybody has its own set of tasks, roles and responsibilities, with different steps or iterations defined.
But then we crash against reality, reality is not an orderly process, reality does not follow strict pre-set plans.

Some time ago a colleague told me something interesting which I applied for many aspects of my life: "Reality is dynamic".
This phrase doesn’t mean we don't need to plan, but it means we also have to manage. Knowing that our ideal plans will not be perfectly followed (not because we don't have an organized team, but because reality won't let us follow our perfect pre-set plan) we have to prevent the differences between the plan, the schedules and the reality. We have to prevent and manage the risks of each task and step.

But how can we do that? We need to measure our performance, we need to understand how we work and what things that can happen during a project which will affect the schedule, the plan and as a result the deliverable time or even make a project fail, are.

Now the questions remain; where do we take that data from? And what can we do with that data?
In order to acquire the knowledge to manage reality, we first need to learn from it. We need to record our results (our work, how long we work in each activity, etc.). However that is not enough, a good team needs to be highly communicated so that every team member can achieve the member’s goals, while at the same time helping the others also meet their objectives. In other words, each member will record his interaction with the project, in order to let the rest of the team know the status of his work. These "things" that "happen" through the course of the project are what we call "work items". We need to record and track the work items in order to acquire knowledge about problems, new ideas, successes and failures at any point of the project.

So, if you read up to here you might be thinking that if we record and communicate we are ready to manage and to plan; well not really. We still need to transform data into information. By transforming the recorded data into information we can study and analyze the "past experience" in order to predict and plan better. Besides, we are better prepared to manage risks and problems, and to manage reality versus plans.

With our new XPM tool, we are getting into a new generation of projects, we are making project management and project planning easier and more interactive.
We are letting team members focus on their real responsibilities (their role tasks) and bringing information to the managers in order to decide better and know more about the team, clients and projects reality.

XPM brings a set of Office add-ins to let all team members (including managers) record their project interaction in a simple way. XPM lets managers plan and manage risks and reality by simply transforming data to useful and rich information.

As a result, we become aware that our working routines need to change, as XPM is not just a tool, but a new way of work.

Sunday, November 15, 2009

My top 5 of GeneXus X Evolution 1

GeneXus X Evolution 1, the new version of GeneXus released a few months ago has many new features, but in this post I would like to summarize them from my point of view, making an overview of the top 5 characteristics and/or features available in this new version.

1) Extensibility: User Controls and GXextensions

In addition to the standard controls provided by GeneXus, you can create your own custom controls! This helps you to build rich, powerful and interactive web applications, giving you the possibility to integrate any control you may need and use it as you use any standard control.

On the other hand, GXextensions gives you the possibility to add packages to GeneXus since GeneXus development environment is an extensible IDE. Patterns for instance are implemented as GXextensions but you can also implement your own extensions like defining new object types, add part to existing objects, define new properties for any object type, add your own menu options and more...

2) Team Development: GeneXus Server.

GeneXus Server is a new product that makes team development easier. The knowledge base can now be centralized by using GeneXus Server, even if its members are in different geographic locations.

Besides, I would also like to mention a new feature that makes a quite complicated task like application customization easier than ever, Change Defender. This new technology helps you to propagate the changes of your Knowledge Base and then import changes done by your customers without loosing any changes you may have made to the Knowledge Base.

3) Developer Experience: A new IDE, integrated debugger and more...

GeneXus provides a new, intuitive, powerful and focused on usability IDE that enhances the developer experience. It also has now a fully integrated debugger, just switch from Release to Debug mode and you are ready to set your breakpoints and start debugging your code. In addition GXflow and GXquery are now fully integrated in the IDE.

4) Enterprise Level Applications:

Full web 2.0, a visualization library based on Google Visualization is available among other extended controls like GXchart, MediaPlayer, QueryViewer, Scheduler and more... Performance optimization in many areas like web and ajax, business logic, http traffic compression, etc...

5) Testing: GXtest

Testing has been an important part within the application development cycle and this new product distributed exclusively by Artech gives you the possibility to automate your tests in a very easy way.

Bonus Track: Completeness! Not only web generators but also GUI (Java, .NET, VFP), Text (RPG, Cobol) and Mobile generators have been added.

I hope that this brief summary gives you an idea of the great new features available in GeneXus X Evolution 1. Now you just need to download it from here in order to convert your current applications or create new ones taking advantage of them.

Tuesday, November 10, 2009

Welcome to the GeneXus Community blog, where the USA community can share and exchange its experiences among fellow GeneXus users.

This blog is intended to generate communication's within the GeneXus USA community, and any suggestions are welcomed. You will find technical tips, news about GeneXus, general discussions, and much more; but if you want us to cover any specific topic please let us know.

We will keep also posted on the GeneXus USA Wiki and plans to use the Google Wave.

Thanks for your support!

GeneXus USA Team