TMS Aurelius, the ORM for Delphi: For Linux. For Free.

Tuesday, April 04, 2017

Embarcadero has just released RAD Studio 10.2 Tokyo, the latest version of the great Delphi/C++Builder development tools. And the greatest feature of this release is the ability to compile for Linux!


After a few days following Tokyo release, we were glad to release a new version (3.7) of TMS Aurelius, our ORM framework, with Linux support. Yes, you can now build applications for Linux, using TMS Aurelius, with all the stability and robustness you are used to.

To celebrate this milestone in Delphi development, we are also announcing now that TMS Aurelius Free Edition is back. TMS Aurelius Free Edition has no license restrictions, you can build commercial applications with it, and it has all features of registered license, including Linux support. The promotion will run until April 30th, just visit the TMS Aurelius Free Edition page to register for it and receive a download link.

Finally, in case you have not seen it, the "My Top 10 Aurelius Features" series has finished. It's a great video-series for starters wanting to know more about TMS Aurelius and its capabilities.

"My Top 10 Aurelius Features" blog post
"My Top 10 Aurelius Features" playlist



Wagner R. Landgraf


Bookmarks: 

This blog post has received 4 comments. Add a comment.



My Top 10 Aurelius Features - #1 Maturity

Sunday, March 19, 2017

Finally, My Top 10 Aurelius Features series has come to an end. And the number 1 of the list is Maturity.



Aurelius has been first released in early 2012. Since then, in five years, it has received 33 releases! With the user feedback received during all the time, I’m confident that Aurelius feature set is pretty extensive.

For example, you can build applications for all supported Delphi platforms: Windows, Mac OS X, iOS, Android and Linux. The number of supported database systems is impressive: Oracle, MySQL, SQL Server, PostgreSQL, DB2, Firebird, SQLite, NexusDB, ElevateDB and the list goes on. The same can be said about the component libraries you can use to access the database: the list of 15 options include FireDac, dbExpress, ADO, UniDac, among others.

Maturity also means that you can trust it, because it just works. Aurelius test suite includes hundreds of unique tests, which makes up thousands of tests because we make sure that they work in all the supported platforms and servers. This means that you can be sure it will work on Windows, using dbExpress to access an Oracle database, the same way it will work on Linux, using FireDac to access a MySQL database.

In the end, why I really like this maturity feature? Because it makes my life easier and happier. Lower support because there are no known bugs that stand for too long. And happier customers because they have the features they need.

We’d love to hear your comments about it. Do you agree with this list? What would be yours? Post your opinions and comments below, visit our website, download TMS Aurelius trial and let us know what you think. Don't forget to subscribe to our YouTube channel to get notified about upcoming videos!

Wagner R. Landgraf


Bookmarks: 

This blog post has not received any comments yet. Add a comment.



One picture is worth a thousand words.

Friday, March 10, 2017





Nancy Lescouhier


Bookmarks: 

This blog post has received 8 comments. Add a comment.



My Top 10 Aurelius Features - #2 LINQ Projections

Monday, March 06, 2017

LINQ Projections is the runner-up feature of My Top 10 Aurelius Features. It's a sort of "sequel" of the #5 feature LINQ Expressions and Paging, and you can see it in action in the video below.



You could consider that "LINQ Expressions" and "LINQ Projections" are just sides of the same feature. That's not incorrect indeed. But LINQ is a so nice feature of TMS Aurelius that it deserved to be split in two parts. And the reason that projections (and not expression) is ranked higher is just because it's at the core of LINQ.

The coolness of LINQ is more due projections than expressions in my opinion. An expression is actually just a comparison of two projections. It's in the projections that all complexity lies in. And it allows beautiful and complex queries like the following to be written:

Get the unit price and quantity of each order detail, multiply them, and group the sum of it by the year of Order Date.
    Manager.Find<TOrder>
      .CreateAlias('OrderDetails', 'd')
      .Select(TProjections.ProjectionList
        .Add(Linq['OrderDate'].Year.Group.As_('Group'))
        .Add((Linq['d.UnitPrice'] * Linq['d.Quantity']).Sum.As_('Value'))
      )
      .Where(Linq['OrderDate'].Year._In([1997, 1998]))
      .OrderBy('Value')
Yes, projections allow you to do grouping, counting, sum, arithmetic operations, extract information from dates like year, month, day, from strings like substring, pos, etc. A full list of available projections is in Aurelius documentation. And everything just translated correctly to the underlying SQL syntax!

Cool, isn't it? You can see queries like the ones above in action, by watching the video above. Don't forget to subscribe to our YouTube channel to get notified about upcoming videos!

Wagner R. Landgraf


Bookmarks: 

This blog post has not received any comments yet. Add a comment.



My Top 10 Aurelius Features - #3 Inheritance

Tuesday, February 21, 2017

How to talk about object-oriented programming and not consider inheritance? In my opinion is a basic "feature" of OOP. And how to talk about an ORM without supporting inheritance? I consider it so important that the simply fact that Aurelius supports it makes it my #3 of My Top 10 Aurelius Features.



It's really nice to be able to model classes and build a class hierarchy, reference classes in that hierarchy from other properties, have a true model that is not just a bunch of plain classes that map properties to database columns. Inheritance support allows you to really think in an OOP way when using an ORM.

TMS Aurelius supports two ways of persisting objects in a class hierarchy in the database:

Joined-tables strategy
Where data from each class is saved in a different database. This is the more normalized way.

Single-table strategy
Where data from all classes are saved in a single table. This is the simplest and often offers better performance.

Regardless of your choice, the facts is that Aurelius allows you to do so! Watch the video above to see how class inheritance works with TMS Aurelius, and if you want to get notified about upcoming videos, subscribe to our YouTube channel!

Wagner R. Landgraf


Bookmarks: 

This blog post has not received any comments yet. Add a comment.




Previous  |  Next  |  Index