I'm back from my vacation. It was a great time! We had a lot fun (although it rained a few days, but I didn't care much).
An interesting fact is that the post about my vacation was the one with the most comments... You don't loose me: I'm back!
If you are back in saddle, could you give more light on next opf3 version, please. We are evalating o/r mappers, and since we are moving to .net 2.0, opf3 is high on the list. Knowing more exactly what new feautures are planed for the next release can help...
We are currently doing two things with/in Opf3:
1) Trying to find bugs (heavy testing)
2) Creating a wizard for the framework
The follwoing list is what we implemented since the last release:
- Implemented a new mapping eninge that allows to override properties without resetting the FieldAttribute. The FieldAttribute is searched trough the whole inheritance chain. Opf3 is no also faster because of some smarter caching algorithm.
- Class fields can be now mapped to fields in the storage too.
- ObjectSet implements now the IListSource interface.
- Added FirebirdStorage.
- Fixed a bug in OracleCommandBuilder.
- Added Invalidate method to the ObjectHolderBase to invalidate the loaded related object(s) and force a reload on the next call of InnnerObject.
- Added check to OjectContext.MarkForDeletion. Only persistent objects can be marked for deletion.
- Added ICustomDataTypesStorage (:IStorage). This interface allows the storage to convert data types that are not supported by the storage to types that are supported (during save). It allows also to convert the type from the storage to the target type of the persistent object (during load).
- Added PersistentRights enumeration and Rights property in the FieldAttribute. Allows to specify the rights of a persistent object. Some persistent objects, for example, may only be loaded and have only that right.
- ObjectSet implements now IEnumerable.
- Fixed minor issues with the framework.
Very high in my list is creating an interface that allows connecting to caching frameworks and to implement a simple caching framework (that uses the interface). Another topic I'm evaluation is an algorithm to load related objects with the parent object (in one step). I had a few discussions with the guys from Sarix GmbH (my summer job) on that topic.
The most important thing I'm working on right now, is the Opf3 Wizard. It allows you to create persistent objects by selecting a database. By default the wizard creates the mapping by its own (for all tables), but you can customize everything (remove tables, columns, rename persistent object and properties, customize the relations, ...). The whole thing is plugin based, which allows you also to write your own plugins for it. I'm currently writing the plugin to generate persistent objects for C# and test objects for Visual Studio 2005. You will see more soon.
We are going to send the alpha and beta versions to customer that are interested to test it.
A few screenshots of the Wizard: