TMS Aurelius Roadmap

Friday, January 27, 2012

TMS Aurelius has been released and we are very satisfied with feedback from all of you. Most comments are compliments and questions about how to use the existing many features, but some of them are also feature requests.

So the intention of this post is to give you an idea of what's coming next with TMS Aurelius and TMS Data Modeler, based on customers feedback.

Please note that this list is subject to change, especially due to further customer feedback, and is not a commitment of any kind - we have the freedom to refrain from implementing any of these features - this is just the current intention for further development.

Features being considered to be implemented until 2.0 version:
- TObjectDataset component for visual binding objects to data-aware controls
- Support for more databases
- Support for more data-access components - IBObjects will be the next one to be supported
- Custom SQL expressions and projections
- More generator types - GUID should be the next one
- Other minor fixes and of course bug fixes
- More events and/or interceptors

Other features that are being considered (depending on feedback and demand):
- Dynamic properties
- Mapping through external file
- Database schema update (simple and limited)
- Query Language - use of query commands as alternative to query API

TMS Data Modeler will be improved as well, with support for more databases and constant improvements in user interface. And, of course, tighter integration with TMS Aurelius - improved class generation and constant support for new Aurelius features.

Wagner R. Landgraf

This blog post has received 36 comments.

1. Monday, January 30, 2012 at 7:53:53 AM

Nice roadmap, I think you choose very well the features to focus on.. Did you also consider implement optimistic locking through object versioning?

Also, I didn''t understand what is dynamic properties

Magno Machado Paulo

2. Monday, January 30, 2012 at 8:17:37 AM

Magno, object versioning is under consideration, yes. This roadmap is not a final list of features to be implemented or considered, but it''s just the main ones we considered (based on feedback) to be the most important ones. We might even have other features implemented before the ones listed here.

Dynamic properties are a way to map properties to fields at runtime (not compile time) and depending on the database you are connecting to. In other words, it''s a way to use the same application to connect to two databases that are slightly different (some additional fields in some tables).

Wagner Landgraf

3. Tuesday, January 31, 2012 at 4:56:13 AM

Hello, great job. Many FireBird developers use FIBPLus components, do you plan the support of them ?


Karel Janecek

4. Tuesday, January 31, 2012 at 8:43:51 AM

Hi Karel, yes, we''re investigating several other database-access componentes. FIBPlus is on that list.

Wagner Landgraf

5. Thursday, February 02, 2012 at 11:32:19 AM

Do you plan on supporting AnyDac?

Ere Ebikekeme

6. Thursday, February 02, 2012 at 12:22:26 PM

AnyDac is already supported.

Wagner Landgraf

7. Friday, February 03, 2012 at 5:50:26 AM

Is it possible to use stored procedures for CRUD operations?

Niek de Ruijter

8. Friday, February 03, 2012 at 2:30:36 PM

Niek, currently, no. It create the SQL statements dynamically based on table names, columns and dialect being used.

Wagner Landgraf

9. Monday, February 13, 2012 at 7:25:54 AM

Do you plan to support IbDAC from Devart?

Michael Trowe

10. Wednesday, February 15, 2012 at 12:55:57 PM

+ 1 for object versioning ! In a multi-user business application, it is hard to get away without multi-version concurrency control.

Stephane Carre

11. Monday, March 05, 2012 at 2:07:35 AM

1. Any plans for supporting first n and next n ?
2. Any plans to support SDAC, ODAC, IBDAC ?

Gerhard Holzner

12. Monday, March 05, 2012 at 7:46:42 AM

1. Yes, first n and next n will be supported soon. Current schedule is for version 1.4
2. UniDac support was added, can''t the same driver to be used with those components?

Wagner Landgraf

13. Sunday, March 25, 2012 at 8:25:10 AM

Hi! Any plans for GUID identifiers?


14. Tuesday, April 03, 2012 at 8:35:48 AM

Yes, GUID identifiers is in the todo list.

Wagner Landgraf

15. Wednesday, April 18, 2012 at 1:40:34 PM

It seems that Aurelius lacks a "casting mechanism" before storing records retrieved from a database into objects.
If you create the following entity:

[Id(''FId'', TIdGenerator.IdentityOrSequence)]
TArtist = class
[Column(''ID'', [TColumnProp.Unique, TColumnProp.Required, TColumnProp.NoUpdate])]
FId: Integer;

it will NEVER work in SQLDirect or UniDac on an Oracle Database (fortunately it will work in DBExpress).
The reason is that SQLDirect and UniDac query components return an Oracle sequence value as a variant of double vartype, so the "Id" member of a TArtist object will not be assigned this value (an exception is raised).

As a solution, but an unpleasant one, we can declare Id property as Double in the TArtist entity class.
It would be nicer if Aurelius internally tried to cast the variant of double vartype to a variant of integer vartype.

Etienne Gwihen

16. Wednesday, April 18, 2012 at 1:51:39 PM

We do several tests with all supported databases and all supported data-access components. Some of them do not work as "standard". The mentioned ones, for example, need to be configured to retrieve integers (not doubles) from cleary integer types (like Number(10)). Usually EnableIntegers=true or EnableInt=True or similar configuration would do. This is an issue that occur with any Delphi application, not only those using Aurelius. Never say never! ;)

Wagner Landgraf

17. Friday, May 04, 2012 at 5:53:53 PM

Hi, i vote for schema update!

Paolo Bocchini

18. Wednesday, May 23, 2012 at 5:27:29 AM

hi, any plans for index of field


19. Wednesday, May 23, 2012 at 11:00:19 AM

What do you mean by "index of field"? Aurelius already supportes creating unique indexes, if that''s what you mean.

Wagner Landgraf

20. Thursday, May 31, 2012 at 12:12:56 AM

not only unique index,if i need query by one field of non-unique field; So this index property is important 。


21. Tuesday, June 05, 2012 at 11:30:16 AM

You mean just for database optimization? We can consider including that in future, sure. But now you can query on any field without the need for an index.

Wagner Landgraf

22. Wednesday, July 11, 2012 at 5:49:33 AM

Hi, when is support for FiBPlus planned ?


23. Wednesday, July 11, 2012 at 3:53:51 PM

Next version will include FIBPlus support.

Wagner Landgraf

24. Thursday, July 12, 2012 at 3:48:02 AM

Hi, i''m really interested in TMS Aurelius, but it all depends on support for FIBPlus, When is the next version, including FIBPlus, planned ?
(next week ;-)?/next month?/next half year ?/next year ?)


25. Thursday, July 12, 2012 at 8:48:52 AM

Actually the component drivers (support for 3rd party) are provided with source code even in trial versions. Thus, if you want to test, please download and install the trial, then send as an e-mail, I will send you the additional unit with FIBPlus support so you can test it.

Wagner Landgraf

26. Monday, September 10, 2012 at 7:08:49 AM

I vote for schema update - it´s very important for me!!!

Thank you for the great product!

Michael Reisch

27. Tuesday, October 16, 2012 at 8:16:01 AM

Aureliusdataset is not compatible with Fastreports?

Cuomo Antonio

28. Tuesday, October 16, 2012 at 8:42:03 AM

It should be, since TAureliusDataset is just a generic dataset. Anything that works with a TDataset should work with Aurelius. Are you having problems with it? If you do, send us an e-mail we will try to help you.

Wagner Landgraf

29. Tuesday, October 16, 2012 at 2:16:45 PM

Hello Wagner, bought tms aurelius framework, and I liked it a lot. But I''m in the following situation. I did the following link TDBGrid -> TDataSource -> TAureliusDataSet. I managed to do Master-Detail and stuff. But I have a field "Id" that when the user fills in this field TDBGrid, I would like to show the "Name" field in another field. I tried using the Calculated Field, but the value of the "Name" field disappears every time I place the POST. How to do with the value of the field "Name" be appearing? Previously I used the InternalCalc and it worked, however I saw that the FAO makes InternalCalc nothing.

Valdenir Santana

30. Tuesday, October 16, 2012 at 5:49:03 PM

Valdenir, please send us an e-mail with more details and if possible a project that reproduces the problem, we will check what''s wrong and fix it if there is a problem.

Wagner Landgraf

31. Monday, November 12, 2012 at 9:12:32 AM

this operation:

p.field1 := p.field2 + p.field3

is not possible?

fields is float.

Cuomo Antonio

32. Wednesday, November 14, 2012 at 2:26:41 AM

Are there any plans for something like HQL in nhibernate?

Gerhard Holzner

33. Thursday, November 15, 2012 at 7:01:17 AM

We have thought about HQL. But we are not yet convinced about the benefits, not many people asked for it.

Wagner Landgraf

34. Thursday, November 15, 2012 at 7:01:55 AM

@Cuomo Antonio: sorry, but what do you mean by that? Please send us an e-mail directly with more information, thanks.

Wagner Landgraf

35. Thursday, November 15, 2012 at 8:32:14 AM

Follow up HQL:

I''m afraid of the overhead of instantiating many business objects when there are many associations/joins between classes/tables.
For example, if I want to populate a grid with an overview of customer orders which shows the customer name and his address the order number and order date and order item details like produkt, price, etc. As far as I understand the concept means that populating the grid would mean that for each row I must create an instance for customer, order and order item to get the information I need but I just want to present an overview to the user with a simple ''dataset''. Finally when the user selects a concrete order I would instantiate the custumer, order and order item(s).

With HQL there is a SQL like query language supporting joins to present simple tabular data without the overhead of instantiating many business objects.
Maybe Aurelius Dataset has capabilities for this but if so I didn''t get it.

Gerhard Holzner

36. Thursday, November 15, 2012 at 9:34:24 AM

Gerhard, you can use projections for that ( using the current available criteria API.

Wagner Landgraf

Add a new comment:
  You will receive a confirmation mail with a link to validate your comment, so please use a valid email address.
Change Image
Fill in the characters from the image above:

All fields are required.

Previous  |  Next  |  Index