ESENT Managed InteropESENT is an embeddable database storage engine (ISAM) which is part of Windows. It provides reliable, transacted, concurrent, high-performance data storage with row-level locking, write-ahead logging and snapshot isolation. This is a managed wrapper for the ESENT Win32 API.
Version 1.1 of the ESENT Managed Interop has been released ESENT is an embedded database storage engine (ISAM) which is part of Windows (
http://msdn.microsoft.com/en-us/library/ms684493(VS.85).aspx) It provides reliable, transacted, concurrent and high-performance data storage. It can be used for small databases (a few MB) or huge datasets (hundreds of GB). The engine provides logging, recovery, transactions and concurrent access with row-level locking and snapshot isolation.
There is an short overview/introduction to ESENT on the Windows SDK blog (
http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx).
The Microsoft.Isam.Esent.Interop namespace provides managed access to ESENT and will be developed with these principles:
- Any program written with this Api should work on Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 or Windows 7.
- A comprehensive test suite for all the interop code.
- The Esent.Interop DLL should only require version 2.0 of the .NET Framework.
- Full and complete documentation. Intellisense should be able to provide useful and extensive help.
- Minimal editorialization. Whenever possible the Microsoft.Isam.Esent.Interop Api will exactly match the ESENT Api. In particular the names of structs, types and functions will not be changed. Except for:
- Cleaning up Api constants. Instead of providing the constants from esent.h they will be grouped into useful enumerations. This will eliminate a lot of common Api errors and confusion.
- Helper functions and objects will be provided to simplify extremely common API tasks.
Changes include:
- Converting JET_coltyp etc. into real enumerations
- Removing cbStruct from structures
- Removing unused/reserved entries from structures
- Throwing exceptions instead of returning errors