Let me first say that you did a really great job with Aurelius! It's simpel, elegant and extremely powerfull. The TAureliusDataset is a true gem! I think it's the best way to develop business applications using Delphi, and in combination with the datamodeler, it's a unique and powerfull product.
I was about to migrate to VS2012 and the Entity Framework, but fortunately I found Aurelius. Now I can stick with Delphi!
Just a few questions \ suggestions:
- How does the ObjectManager keep track of changed objects? Can I use this method as well? something like object.ischanged
- Since delphi does not have "partial" classes, all class declarations need to go in 1 unit to prevent circular reference. Is there a beter way to seperate that unit into logical parts? This one unit can get very big and I like to split it up. In my own attempt to create ORM I used an approuch where all the objects could be in seperate units, the reference fields were all just TObject pointers so there was no circular reference. For strong typed association properties I created 1 unit "relations" that defined class helpers for all my objects implementing the strongly typed reference properties. Could something like that be used with Aurelius?
- Is there a way for the datamodeler to reimport the database into an existing model, thereby updating the tables and fields already in the model?
- Does the export of the classdefinitions in datamodeler always overwrite the existing file? How would I go about protecting my customizations in the classes?
- Is there a way to use the MappingExplorer to check if the database is correctly formatted on startup? And if neccesary update the database according to the class definitions.
- I want to use Datasnap to exchange data objects to mobile clients. In XE2 the standard datasnap object marshalling code does not seem thread safe. Is the Aurelius serialising code threadsafe?
- What is the use of the Dict classes the datamodeler can generate?