Blog
All Blog Posts | Next Post | Previous Post
Native SQL Server access and more! TMS Aurelius 4.0 has been released!
Wednesday, September 19, 2018

Photo by Makarios Tang on Unsplash
TMS Aurelius 4.0 has just been released! It's a major update with exciting new features:
- TAureliusConnection component
- Generate entities from existing database, from the IDE
- Direct Microsoft SQL Server database access
First, a new TAureliusConnection component is now available. Even though creating a database connection in TMS Aurelius has always been as easy as writing one line of code, with TAureliusConnection you can now do it at design-time. Just drop a TAureliusConnection component on the form and double-click it to configure (or set properties in object inspector, of course):

As expected, you can adapt any supported database-access component (like TFDConnection from FireDAC), set SQL dialect, and you are done.
This makes it even easier to configure a connection, test it in advance at design-time, and provide further design-time support for both Aurelius and XData. Expect lots of new components for both frameworks with great design-time support!
But TAureliusConnection component already brings great stuff for this 4.0 version:
Generate entities from existing database, from the IDE
It is now possible to generate TMS Aurelius entity classes from an existing database directly from the IDE. Creating classes from database has always been possible by using the great TMS Data Modeler tool. It is a database modeling tool which can import existing database structure to the model, and then generate Delphi source code with TMS Aurelius classes. It's very powerful, with a scripting system to customize the source code output, ability to separate classes by units, among other things. But now you don't need to use a separate tool, and not even leave Delphi IDE, you can quickly generate entity classes using TAureliusConnection component. Simply configure the database connection on it, then right-click the component and choose "Generate entities from database..."

This will connect to the database, import the existing database structure, and open the export dialog with several options to customize the output source code. You can then select tables to export, choose naming policy for classes and properties, among other options. You can even preview the final source code in the "Preview" tab, before confirming.

When you click "Ok" button, a new unit with the declared entities will be created in the same project of TAureliusConnection component. You can start using your Aurelius classes in your project without even saving it!
But, for me personally, the greatest feature of this release is direct Microsoft SQL Server access.
Direct Microsoft SQL Server database access
TMS Aurelius (and TAureliusConnection) now has the concept of "adapter mode" and "driver mode". The former is the one you are used to: use an existing db component library and Aurelius will adapt and abstract it. But now you can also use "driver mode" which is a direct connection to the database without needing such components! Yes: to access Microsoft SQL Server with Aurelius, you don't need FireDAC, dbExpress or ADO anymore!
Here is how the TAureliusConnection configuration dialog looks for driver mode:

If you prefer not to use the TAureliusConnection and just create the IDBConnection interface yourself like you are used to, just use the new TMSSQLConnection class, which implements IDBConnection, and pass the parameters to it:
Conn := TMSSQLConnection.Create('Server=.SQLEXPRESS;Database=Northwnd;TrustedConnection=True');
Finally, the short video below will show you the new features in action. You can try TMS Aurelius and all the other TMS Business products right now! Download the trial version, watch tutorial videos and many more from the TMS Business main page.
Wagner Landgraf

This blog post has received 8 comments.


Wagner R. Landgraf

performance... :-)
I hope that "driver mode" is a connection with Aurelius entities that remove the dataset bottleneck performances not necessary at server level when i request a json result... (Mormot docet :-))
If I can obtain better performances possible, I use dataset only at client level for UI, with a flash server response for intensive operations.
(Furthermore I can then also write the result directly in a Json field on MariaDb, if the project require use of mix of techologies).
:-)
Monterisi Stefano


Wagner R. Landgraf

Stefano is right that performance is a very important factor to decide for a framework. For example in my area (Stock Market) every millisecond is important. As you might know mORMot performance is really excellent and one of the reasons is because it does not use dataset. The question is if you under the hood of Aurelius with the "drive mode" still used Dataset or not which could explain the performance boost.
Besides that, could you please list some benefits from your point of view for a new person deciding for a framework to use XData/Aurelius instead mORMot?
Andre

you wrote what I wanted before me! :-)
Wagner, I write applications since 1985... so I known that milliseconds are not very important in a Desktop application with one o few user.
The music changes when I must develope a very intensive system with a remote server that performs a lot of queries (sometimes with thousand of records) for 1000-2000 users. In this scenario every millisecond is important because you have to MULTIPLY it for every single operation (other than network and serialize/deserialize time) ; so, if I can obtain a query of 10000 records remotely in 0,4 seconds, I am happy and also my customers ; if instead I obtain the same query in 10 seconds..... I have to rethink the app for remote users.
So every "boost" on performance (in this discussion, avoidind dataset in internal code or "drive" mode) approach remote apps to "desktop standalone" performance .
A Fast framework can be used from desktop, local, remote, intensive or critical projects (like IOT) without bothering...
I never said that Aurelius is slow, and a 20% of performance gain is welcome. Faster is, better is :-)
Please add MariaDb and Mongo support in "driver mode".
Thanks!
Monterisi Stefano

Wagner R. Landgraf

-Scott
Scott Frazor
All Blog Posts | Next Post | Previous Post
Monterisi Stefano