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!
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.
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.
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.
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.
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).
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
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.
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.
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.
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.