Monday, September 24, 2012

Easing into the Extensible Storage Engine on Windows 8 with ManagedEsent v1.8

Lunar Frog - What is Extensible Storage Engine and how it can be used by Windows 8 apps to persist data

If you start to explore Windows 8 system folders, you will quickly find a set of the same files presented in various locations:


What are these files? They are generated by Extensible Storage Engine (ESE), indexed sequential access data storage technology. ESE runtime has been a part of Windows since version 2000, empowering such products as Exchange, Active Directory and Desktop Search.

Windows 8 is not an exception. ESE is used by Zune Music, Zune Video, app repository and is available as a native API for all Windows Store app developers.

How to start

While ESE APIs can be used directly, C# developers may find using of a managed wrapper called ManagedEsent more convenient. All code samples in this post use ManagedEsent.

ManagedEsent supports Windows 8 starting from version 1.8. At this moment binaries for v1.8 are not available for download and you will need to compile sources by yourself or download assembly compiled by me to start using library .

The following code samples demonstrate how to create DatabaseRepository class that allows to instantiate ESE database, put, get and delete data. The data are represented by Event class:



I wouldn't have thought of Extensible Storage Engine and Win8 Store Apps together, but in reading this article and peeking at the source, it looks like it's viable? My main concern is if it passed the WACK (Windows App Certification Kit) or not, but in reading the post is looks like it should.

While ManagedEsent v1.8 is not released as an official binary yet, we can get the source (or grab the mentioned compiled binary), it build and see for ourselves. :)


Related Past Post XRef:
ESE C#/C++ Toolkit v1.2 for Microsoft Extensible Storage Engine (ESE) (ESE is the database engine that's been in the box since Windows 2000)
Did you know Windows (since Windows Server 2000) comes with a transactional database engine already baked into the OS, which you can use in your applications today, no download required?
Managed ESENT v1 released – Managed/.Net access to the free embedded database (“Extensible Storage Engine/ESE”) that ships with Windows

No comments: