GeneXus X Evolution 1: Enterprise Level Applications

Unofficial Content

GeneXus X Evolution 1 Applications can e built with new standard web controls, are much faster, and work on any device.

You will be proud of the applications you create!

New Web Controls

Google-based GeneXus Visualization Controls

The new GeneXus Visualization Library features a bunch of new standard controls: Motion Chart, Intensity Map, Gauge, Map, Organizational Chart, Annotated Timeline, Charts, RSS Viewer Control, etc.

More information...

Query Viewer control

The Query Viewer control added several visualization options to get an easy transition from the Query Object usage within the IDE to a Web Panel in the generated application; a usage sample can be checked here, see it running here.

More information...

Web Mobile

Web pages, styles and scripts are generated so that the application works on any device, you don't need to care about that. Your users will access via Blackberry, iPhone, Pocket PC or any device using some Opera (Mini or Mobile) browser, etc.

More Information...

More Ajax

A new TabbedView was included, this new object allows to refresh only the web component that is necessary to refresh instead to refresh all the page when you change the tab. This is possible by using HistoryManager user control.

Performance improvements

Binding variable with When Clause or Conditional order

For Each clause with When clauses or conditional orders generate variable bindings, which improves execution performance.

Behavior in previous versions:

If When clauses/Conditional orders are not used, variable bindings are always used.
If When clauses/Conditional orders are used, variable bindings are not generated.

For example, the following queries did not use variable binding:

SELECT first_name, last_name, postcode FROM customers WHERE id = 674;
SELECT first_name, last_name, postcode FROM customers WHERE id = 234;

The advantage of these sentences (static) is that a Prepare will be made for each different sentence executed, and since parameter values are known, the database manager can optimize the access strategy used. The downside to it is that the sentence pool cannot be used because each SELECT is different.

As from GeneXus X Evolution 1, something like this is generated with binding:

 SELECT first_name, last_name, postcode FROM customers WHERE id = :cust_no; (It uses binding)

This will optimize those cases where the sentence is executed many times with the same WHEN since the sentence is not recompiled upon changing the value (the cache is used).

Net supports static properties and methods of external objects

It is possible to import class, method or properties which are defined as static.
It means that to consume something like this 

    public static int multiply(int a, int b)   
     return a * b;   

In GeneXus code, you can program something like this: 

   &result = MultiplyClass.Multiply(&a, &b)

Note that it is not necessary to declare a variable based on the External object, because "MultiplyClass" it could be just the name of the object 


ToJson and FromJson

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent.

When we need to interchange messages between applications over different languages, JSON could be a good option. Especially if we are sending data to user controls. So that we are including JSON as a supported serialization format for GeneXus Structured Data Types (SDTs).

In a simple line:  JSON could be an alternative to XML. So GeneXus allows you to choose JSON as your data interchange format.

HTTP Traffic - Application user experience improvements, Http traffic optimizations 

Dojo framework isn't used anymore. This reduces the number of requests and bandwidth and increases performance.

There's a new property called 'Compress static files' (which default value is Yes). All standard generated scripts and CSS are compressed by default reducing required bandwidth and increasing performance.

More Information

GUID Data Type

A GUID is a new GeneXus Data type that can be used when a unique identifier is required. Such an identifier has a very low probability of being duplicated.

More Information

Printing reports in text mode using the client’s printer in Web applications

The possibility has been implemented to print reports in text mode using the client's printer in Web applications. It only applies to reports that go directly to the printer.

More Information