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.
gaugeSDT
 

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.
QuerySample12
 

More information...
 

Web Mobile
 

Web pages, styles and jscripts 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 insted 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 clauses with When clauses or conditional orders generate variable bindings, which improves execution performance.

Behavoir 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 sentences 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 programming something like this: 

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

Note that it is not neccessary 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. Specially 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 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 bandwith and increases performance.

There's a new property called 'Compress static files' (which default value is Yes). All standard generated jscripts and CSS are compressed by default reducing required bandwith 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