 | 3.0.15.1227 | | 08/16/08 | Show Changes Download | |
- Added support for the Sqlite database (Chili.Opf3.Storages.Sqlite.SqliteStorage).
- Added functionality to check whether the related objects have removed objects. This enables the scenario of checking whether the related objects have been modified by moving an item to the removed list.
- Added IdentityMap property to the ObjectContext class.
- Added IdentityMap to the framework. This class keeps track of persistent objects in memory and therefore avoids reloads of objects that are already in memory.
- Changed MsSqlStorage to set the type to NVARCHAR for strings that are saved to the database.
- Changed the MappingBuilder to include the relation's persistent type that couldn't be found.
- Added the Chili.Opf3.Mapping.Providers.XmlTypeMappingProvider and Chili.Opf3.Mapping.Providers.XmlMapping classes. The new classes allow to create mappings for persistent objects by using XML files instead of the attribute based approach.
- Added Value property to Object(List|Set)Holder classes. The Value property should replace the, a little bit problematic named, InnerObject property in the long term.
- Added Attach method to ObjectContext. This method attaches the Object(Set|List)Holder objects to the ObjectContext. This is required to load related objects when not having persisted or loaded the parent object.
- Added IsModified(object, bool) overload. Allows to check the whole loaded object graph for changed objects.
- Added IsAttached to ObjectHolderBase. Returns whether the object holder has the required data to be loaded savely; such as the parent object, the ObjectContext and information on the relation itself.
- Exposed the ObjectContext of the object holder as public property.
- Added Load (with several overloads) to ObjectHolderBase. Allows to manually load the related persistent objects.
- Added AutomaticallyLoadRelatedObjects to ObjectContext. Allows to disable automatic loading of related objects.
- Fixed different issues with the ObjectListHolder, ObjectSetHolder, ObjectHolder that came up when allowing the manual load of related objects.
- Added support for variables in LINQ queries.
- Added support for certain anonymous type scenarios in LINQ queries.
- Added speed improvements to LINQ query processing.
- Added other special cases to LINQ query parser.
- Fixed other minor issues with the LINQ query parser.
|
 | 3.0.14.1043 | | 02/14/08 | Show Changes Download | |
- Added features to make Opf3 Core LINQ compatible.
- Added LINQ support as extension to the framework.
- Features requested by the customers have been added.
- Speed improvements.
- Several minor bugfixes.
|
 | 3.0.12.843 | | 07/19/07 | Show Changes Download | |
- IRelationsPopulateHelper: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=1248
- IPopulateHelperExtended: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=1247
- IPartialPersist: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=1246
- ObjectContextFactory: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=1225
- IPersistentQueriesProvider: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=1224
- Speed improvements.
- Bugfixes and smaller improvements.
|
 | 3.0.11.797 | | 03/09/07 | Show Changes Download | |
- SqlRawStorageAccess Class has been added and allows to access the internal objects of an SQL storage (at the moment all storages that are implemented for Opf3). This allows to manipulate directly commands and send them to the storage.
- Added several events to the ObjectContext class to allow disconnected scenarios.
- Fixed bugs submitted by the community and customers. Thanks to everybody.
|
 | 3.0.10.746 | | 01/17/07 | Show Changes Download | |
- Added Caching: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=690
- Added IDynamicPopulateHelper: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=857
- Added Loaded Event to ObjectContext.
- Speed improvements.
- Fixed minor issues in the framework.
|
|
- Added TypeMapping and Chili.Opf3.Mapping namespace to use Opf3 persistent type mappings outside of Opf3: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=435
- Enhanced StorageBase for easier creation of custom storages: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=437
- Added Transaction class to create custom transactions and using the IDisposable pattern with transactions: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=451
- Added possibility to use interfaces instead of concrete persistent types (required for ntier scenarios): http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=570
- Added IPersistentFactory to increase speed during persistent object load: http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=587
- Added ITypeMappingProvider to allow custom mapping creation (for example via XML file etc.): http://www.opf3.com/Opf3/Community/Topic.aspx?Forum=5&Topic=588
- Major speed improvements.
- Tons of bug fixes.
- Fixed minor issues in the framework.
|
|
- Added TimeStampConcurrencyManager, TimeStampAttribute, TimeStampNotFoundException and TimeStampTypeInvalidException
- Modified MetaInfo to return a list of custom attributes on the member.
- Fixed bug with ObjectSet, ObjectView and storing an ObjectSet in the ViewState.
- Added ObjectViewManager: This class manages the ObjectViews of an ObjectSet.
- ConcurrencyException: Added StoragePersistent to the class. This persistent returns the object that has been reloaded from the storage to check for concurrency problems.
- Created MappingBuilder class.
- Moved checksum generation from the concurrency manager to the framework.
- Implemented IPopulateHelper in MetaInfo.
- Added IMetaInfo object.
- Added PopulateHelperMetaInfo class.
- Added caching features to the framework: ICacheManager interface, CacheManagerBase abstract class and SimpleCacheManager (implements a weak references cache).
- Modified ObjectExpression to create a persist and a load expression (static methods).
- Modified ObjectExpression and OEItems to be internal.
- Added DataTree sample: It implements a data-driven treeview with delayed loading of related nodes.
- Enhanced saving of complex object graphs.
- Modified PersistingTrace to hold also only inspected nodes during save.
- Created PersistentObjectExpression that creates a CompiledQuery for a persistent object on the fly: the data of the persistent object is queried when the ToCompiledQuery method is excuted.
- Added IRelationsNotification interface to inform the persistent object if related objects are persisted.
- Added RelationsNotificationEventArgs class for the IRelationsNotification interface.
- Added ObjectQueryBuilder<T> class: It allows to create ObjectQuery<T> instances on the fly.
- Added Concats for the ObjectQueryBuilder<T> class.
- Added Comparisons for the ObjectQueryBuilder<T> class.
- Fixed minor issues in the framework.
|
|
- Changed CompiledQuery.Timeout to save the value not in Command, but in the CompiledQuery class.
- Modified SqlStorageBase.PrepareCommand to set the timeout for the command in that method.
- Fixed minor issues in the framework.
|
|
- POSSIBLY BREAKING CHANGE: Renamed ObjectPersistEventArgs to ObjectPersistingEventArgs.
- Added ObjectPersistedEventArgs class.
- Added events to the ObjectContext that are fired after an object has been inserted, updated or deleted.
- SqlQueryCompiler: Modified to work with multiple parameter tags but single parameter occurence.
- Added constructor that takes a connection string to the SqlStorageBase class. Now every storage that inherits from SqlStorageBase may be initialized by using a connection string.
- Added storage for My SQL 5.0.
- Fixed minor issues with the framework.
|
|
- HOT FIX: Added Serializable attribute to ObjectView<T>.
|
|
- Added DefaultView property to ObjectSet. The result of this property is now used when binding an ObjectSet to a data driven control.
- Made the ObjectHolderBase.Query property public. Allows to set a new query after having initalized the ObjectHolder.
- Added PersistBehaviour property to the RelationAttribute.
- Added PersistBehaviour check in RelationsManager.
- Only loaded, inserted or updated objects are tried to delete from database: data integrity reasons!
- Created ObjectView<T>: Represents a databindable, customized view of an ObjectSet<T> for sorting, filtering, searching, editing, and navigation.
- Fixed minor issues with the framework.
|
|
- BREAKING CHANGE: Rename MsSql2000Storage to MsSqlStorage. This more generic name is taken into consideration because the classes of the .NET framework work now also with the Ms Sql 2005 Server.
- Added Chili.Opf3.snk to sign the Opf3 Framework (the framework may be put also in the GAC now).
- Fixed bug with nullables and DBNull updates in MsSqlStorage.
- Fixed bug with Access database returning values of another type then declared. Opf3 is converting the values to the required type (if possible).
- AccessStorage implements now also ICustomDataTypesStorage, because JET returns sometimes a short for a int or an int for a long. The storage has to convert those types.
- Fixed minor issues with the framework.
|
|
- Fixed issues with RC1 of Visual Studio 2005 and RC1 of .NET 2.0 (.NET 2.0 RC1 ready)
- 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<T>.
- ObjectSet implements now ICollection and IList.
- Added ValueChanged and ValueChanging event to the Blob class.
- SqlStorageFactoryBase contains now a new argument for CreateParameter that specifies the type of the parameter.
- Fixed bugs with NULL values and the type of the parameters.
- Changed from "@@IDENTITY" to "SELECT SCOPE_IDENTITY()" in MsSql2000Storage to retrieve the value of the identity column.
- Changed the Nullable behaviour. Fixed to work with RC1 of Visual Studio and .NET 2.0
- Fixed minor issues with the framework.
|
|
- Added PostgreSQL as supported database.
- Added PervasiveSQL as supported database. Has still one bug when closing the application. This is a problem of the PervasiveSQL driver.
- PersistBehaviours.PersistAlways has been renamed to PersistBehaviours.None.
- Opf3Exception has been removed.
- Fixed problem with DBNull values.
- Changed IStorage.GetStorageProviderFactory to the property StorageProviderFactory.
- Changed the GetCommandBuilder() method to the property CommandBuilder.
- Changed DynamicPropertiesContainer to DynamicPropertiesCollection.
- Fixed some issues given by FxCop.
- PersistingTrace has been added to ICustomPersister and internally to avoid circles in a save process.
- Added PersistentTypeSelector and FetchingStorageRecordEventArgs to allow the user to specify a different type for a persistent object before it's even created. This is useful in inheritance chains.
- Simplified the usage of the Opf3 Trace class.
- Simplified the output of the Opf3 tracing system.
- Fixed a bug in the Md5ConcurrencyManager with multiple primary keys.
- Fixed some minor issues.
|
|
- Added RemoveAll() to the ObjectSet. Moves all items to the RemovedList.
- The framework is made compatible with WebServices.
- Changed the DynamicProperties classes: Removed the IDynamicProperty interface; Removed the generic argument form DynamicProperty and DynamicType classes; Added some internal checks to allow only to set as value the specified type; Moved the ToXml and FromXml in the DynamicPropertiesContainer class.
- Added a public setter to the RemovedList property of the ObjectSet<T>.
- Added an internal constructor to ObjectInfo.
- Switched from IConcurrencyData interface to ConcurrencyDataBase class.
- Different small fixes.
|
|
- FindOne has been added to ObjectSearcher<T>. Returns always the first object that matches the conditions.
- Renamed to StorageProviderFactory to StorageProviderFactoryBase.
- Tracing has been added to Opf3. See Opf3.Tracing namespace.
- ObjectContext.SetObjectState<T> has been renamed to SetObjectState.
- ObjectContext.IsModified<T> has been renamed to IsModified.
- ObjectContext.MarkForDeletion<T> has been renamed to MarkForDeletion.
- Fixed some issues with Remoting.
- Internal Mappings class has been renamed to MappingContainer.
- Fixed some issues with mappings.
- Added many-to-many relationships to the framework. See RelationAttribute Class.
- A new root namespace called "Chili" has been added to all classes.
- Fixed bug with OPath comparer "<>". Wasn't recognized.
- Fixed bug with "null" in OPath. Wasn't recognized.
- Changed OPathException's constructor to take also the token and the whole OPath expression that caused the exception.
- ObjectSet<T> has been changed to take advantage of the automatic generation of the UI (that comes with Whidbey) based on a DataSource.
- IComplexDataType has been renamed to IUserDefinedType.
- Changed the names of Oracle parameters. Guids are to long for Oracle.
- PersistentAttributes are now searched in the whole inheritance chain if the persistent object type to load/save/delete has no PersistentAttribute specified.
- Fixed bug with Nullable Types as parameter in queries.
- ItemSearcher<T> has been renamed to ObjectSearcher<T>.
- ObjectContext method GetItemSearcher has been renamed to GetObjectSearcher.
- ToString() of Blob return now an empty string if there are no bytes loaded (exception has been eliminated).
- RelationAttribute: Moved the properties (ParentProperty, ChildProperty) into the constructor.
- Renamed RelationDirections to PersistRelationship with ParentFirst, ChildFirst as member.
- Opf3.Query namespace has been restructured. ObjectQuery<T> has been changed. Instead of Condition and SortOption a kind of OPath language has been implemented. Several classes have been removed or modified.
- SqlCommandBuilderBase is changed to public.
- ObjectDataAdapter has been changed to fill now an ObjectExpression with data instead of a ParameterCollection.
- OracleCommandBuilder has been updated to take advantage of the rewritten ObjectExpression class.
- IsModified has been added to the ObjectContext. The method allows to check if an object has been changed since the last operation.
- IsModified has been added to the IConcurrencyManager.
|
 | 3.0.0.x BETA | | 04/02/05 | Show Changes Download | |
|