The idiot's (me) guide to writing ESE applications

One of the more interesting (and esoteric) sessions at TEC 2012 in San Diego was given by ESE developer Brett Shirley on the topic of how to write ESE applications. ESE is, of course, the Extensive Storage Engine, the database engine that underpins Exchange and Active Directory databases amongst other things. The flavor of ESE used by Exchange is “Jet Blue” as it’s tailored to meet the specific needs of Exchange.

Scheduling a session about a database engine that is generally not well known amongst the Exchange community seemed like an extraordinarily brave step for the TEC organizers to take. Nevertheless they put Brett’s session on the schedule and I toddled along to take in the delights of discussing the many code examples that Brett positively delighted in explaining. The other highlight was the amazing outfit that Brett wore in an attempt to garner positive feedback from his audience. Suffice to say that his overalls were of a pattern and color sufficient to make some go blind if viewed in sunlight.

My coding days are long behind me. I doubt that my COBOL and VAX BASIC skills can make a transition into the languages and techniques used today as the lack of a procedure division would very likely make me unhappy. Brett had already told me that I was positively deficient in the coding arena when we met the previous evening so I wasn’t expecting to be entertained.

My expectations were duly met. On the plus side, I did learn about the ManagedEsent project on Codeplex. As its introduction says:

“ManagedEsent provides managed access to ESENT, the embeddable database engine native to Windows. ManagedEsent uses the esent.dll that is part of Microsoft Windows so there are no extra unmanaged binaries to download and install.”

There’s lots of value to be found here for anyone who’s interested in learning a little more about ESE. Laurion Burchall, a developer who’s been working on the guts of Exchange for a very long time (as a point of trivia, I found a set of scores from MEC 1998 that reported an audience rating of 4.5 out of 5 for a session that he gave on “Exchange Database Technology”) has done an excellent job of documenting the managed interface to ESE and providing a set of code examples to explain how to put ESE to work.

This all goes to prove that jewels of information can be found in conference sessions that seem, on the surface, to be the most unlikely sources. Anyone who is interested in writing code that uses ESE is well advised to download and play with ManagedEsent.

In closing, some of the comments during the Q&A session piqued my interest. On April 23, I speculated that Outlook Web App in Exchange 2013 will boast offline access when used with IE10. It might just be the case that this feature is built upon an ESE database. After all, wouldn’t it make sense for Microsoft to use “the embeddable database engine native to Windows”?

Follow Tony’s rambling @12Knocksinna

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.