1.7 * Implemented RawRead, RawWrite, and RawIndex methods. The use case was replicating records over a network. * Bugfix: the TypeSerializer.LookupColumnIDs is now safe to ve called from the several thareads simultaneously. * The [EseGuid] columns can now be used on Server 2003 (fully functional, however the sort order is different from Vista+). * Implemented Recordset.filterFindBetweenInv method. * iTypeSerializer.RecreateTable. TODO: fix the cached cursors in the SessionPool after the re-creation. * Added [EseUShortInt] and [EseInt64Array] column types. * Import/export - TSV: format slightly changed, numeric values are now hexadecimal. * Bugfix: fixed navigation over a recordset filtered with filterEqualInv method. 1.6 * Added EseDCSAttribute, that uses DataContractSerializer with binary XML and optional pre-set XML dictionary to store arbitrary objects. The performance is _much_ better then the prevopusly existed [EseXmlSerialized] column type. * Updated ESENT Managed Interop library to version 1.6. * Implemented unsigned int64 column type, i.e. [EseUInt64] attribute. * Implemented CursorBase.SaveSingleField method. * Column attributes class hierarchy is redesigned to make it more logical: implemented OptionallyNullableColumn abstract base class for them. * [EseShortBinary] columns can now be marked as fixed-length. * Implemented EseSerializer.s_PerformanceOptions static field, with 2 possible values: ePerformanceOptions.Default, and ePerformanceOptions.OptimizedMedium. * [EseAutoId] can now be applied to fields/properties of type long, not just int. * Implemented [Version] column. * Added bEscrowUpdate parameter to [EseInt] attribute. * Multiple documentation corrections. 1.5 * Backups. * [EseBool] columns now have JET_coltypBit as the underlying ESENT type. [EseBool] columns may be nullable. * The old "SessionPool" is now called "AspSessionPool". The new "SessionPool" is now a generic implementation, requiring no ASP.NET infrastructure. * EseCursorBase.FetchSingleField method can now fetch fields without deserializing anything. * Minor performance enhancements (you'll only notice that if you have 1000+ columns in your table). * Multiple documentation corrections. * "struct TypeSerializer.sColumnInfo" renamed to "class TypeSerializer.ColumnInfo". * EseCursorBase.GetColumnId can now be used to resolve column names to ID. 1.4 * Implemented SessionPool.Dispose method. Calling it from your Application_End in Global.asax will get rid of JET_err.DatabaseInUse exceptions. * SessionPool.GetSession method now requires HttpContext argument. This is done because HttpContext.Current may be null, e.g. within the IAuthStoreProvider.StoreToken event handler, where HttpContext is prodided explicitly. * The sessions returned by SessionPool now implements reference counting. This means if the client called GetSession twice (e.g. in masterpage.Render() and in usercontrol.Render(), by using "<% %>"), and got the same session cached in the HttpContext, he needs to dispose the session exactly two times. * EseStreamValue no longer caches the cursor; EseStreamValue.Open method now requires the cursor. This is done to allow the object with [EseBinaryStream] field to be deserialized in one session, then use the value from another session. * Implemented Recordset.filterFindEqualInv method. * Implemented EseStreamValue.length property. * EseStreamValue.Open method now replaced with EseStreamValue.Read, and EseStreamValue.Write. * Implemented EseCursorBase.tableName property. * Multiple documentation corrections. 1.3 * Implemented Cursor.FetchFields method. * Implemented [EseTimeZone] columns. * Implemented iSerializerSession.GetType method. 1.2 * [EseShortBinary] now has maxBytes settable field. * [EseByteArray] now has maxBytes, maxKB and maxMB settable fields. * iTypeSerializer interface now has DeserializeField method. * Implemented SessionPool class. * Fixed table creation when the serialized types are added after an instance of the serialized is already constructed. * Implemented SerializerSession.ResetSessionThread, which is used by SessionPool. * ResetIndex moved to EseCursorBase class. * Implemented EseBinaryStreamAttribute and EseStreamValue classes. * Implemented conditional index columns. * Implemented the 'Subst' utility class, and the corresponding functionality of the "SessionPool" class. * Multiple documentation corrections. 1.1 * The "ColumnTypes" namespace renamed to "Attributes". [EseTable] and [Ese*Index] classes moved to that namespace. * Managed ESENT (Esent.Interop) upgraded to the latest version, change set 55853 http://managedesent.codeplex.com/SourceControl/list/changesets * Exposed the EseSerializer.s_paramIndexTuplesLengthMin setting. * Multiple documentation corrections. 1.0 The initial version published on my web site.