RE: Extensible Storage Engine
I wanted to do a tech.ed talk on ESE but it was rejectedah, what might have been. Ah! The pillocks. Anyway, I've read the samples, some of the source code and some of the documentation and I think they CodePlex team have done a really neat job on wrapping esent.dll in a friendly way that has a nice .NET coding style. You can quick start with the generic dictionary which has ESE as the backing store, or you can use the Api.XXX methods and disposable class wrappers. I can see now that ESE is a rather classical ISAM implementation. You have familiar tables and columns with indexes and you can search EQ, GE or LE and read sequentially, but not much more than that. It really takes me back to mainframe ISAM (and VSAM) files, which in their day were pretty powerful and we built a lot of gigantic applications over them. I remember going to a database conference in 1986 and the hot subject was this new fangled thing called relational databases. I am quite sure that I will use managed ESENT in real apps quite soon. Like UDP and T4, I reckon it's one of those hidden gems. Greg
Re: Extensible Storage Engine
On Sun, Aug 8, 2010 at 5:23 PM, Greg Keogh g...@mira.net wrote: [...] I am quite sure that I will use managed ESENT in real apps quite soon. Like UDP and T4, I reckon it’s one of those hidden gems. What is UDP? Or are you referring to the protocol? Greg -- silky http://dnoondt.wordpress.com/ Every morning when I wake up, I experience an exquisite joy — the joy of being this signature.
Extensible Storage Engine
Folks, a couple of years ago I asked in here for recommendations about what lightweight in-process database I could use easily from .NET apps. I eventually settled upon SQL Server Compact Edition due to familiarity with its big brother and the footprint was quite small, just a single MSI install of a few MB of runtime files. There is another contender that no one mentioned back then... Only days ago I pinned down the existence of the Extensible http://en.wikipedia.org/wiki/Extensible_Storage_Engine Storage Engine (MSDN http://msdn.microsoft.com/en-us/library/ms684493(EXCHG.10).aspx ). I knew something like this was out there for Exchange Server storage, but I was misled by comments that it was the JET engine. The article link clarifies what JET means. It turns out that ESE is implemented in a single ESENT.DLL with a documented API, and it's an ISAM file of all things (memories of COBOL come flooding back!). It would be fabulous to be able to use ESE from .NET projects, but sadly, there is no managed wrapper around ESE, and one look at the huge C API scared me off any hobby attempts to make one. Yesterday on CodeProject I saw that someone is planning to release a managed wrapper, but it's still so early that nothing is available for download. I also saw that someone has implemented collections using ESE as the backing storage, which seems a bit pointless. Anyway, just a heads up -- Greg
RE: Extensible Storage Engine
Aha! I just went back to the page again ... I was tricked yesterday when I quickly read the ManagedEsent http://managedesent.codeplex.com/ page. I downloaded the DLL of interop and I see it has a sample console app which seems to perform some quite complex work. It looks like they've implemented a fair bit of the C API, and I can see some samples and documentation. I hope it's easy to use, as I regularly have a need for this sort of really lightweight database with little to no footprint. I'm going to send these guys an email of congratulations. Greg
Re: Extensible Storage Engine
I wanted to do a tech.ed talk on ESE but it was rejectedah, what might have been. On Sat, Aug 7, 2010 at 4:55 PM, Greg Keogh g...@mira.net wrote: Folks, a couple of years ago I asked in here for recommendations about what lightweight “in-process” database I could use easily from .NET apps. I eventually settled upon SQL Server Compact Edition due to familiarity with its big brother and the footprint was quite small, just a single MSI install of a few MB of runtime files. There is another contender that no one mentioned back then... Only days ago I pinned down the existence of the Extensible Storage Enginehttp://en.wikipedia.org/wiki/Extensible_Storage_Engine( MSDN http://msdn.microsoft.com/en-us/library/ms684493%28EXCHG.10%29.aspx). I knew something like this was out there for Exchange Server storage, but I was misled by comments that it was the JET engine. The article link clarifies what “JET” means. It turns out that ESE is implemented in a single ESENT.DLL with a documented API, and it’s an ISAM file of all things (memories of COBOL come flooding back!). It would be fabulous to be able to use ESE from .NET projects, but sadly, there is no managed wrapper around ESE, and one look at the huge C API scared me off any hobby attempts to make one. Yesterday on CodeProject I saw that someone is planning to release a managed wrapper, but it’s still so early that nothing is available for download. I also saw that someone has implemented collections using ESE as the backing storage, which seems a bit pointless. Anyway, just a heads up -- Greg -- Joseph Cooney http://jcooney.net