For my presentation at Philly Code Camp this past weekend, I talked about the provider model and we used BlogEngine.NET as the source code for the talk. As part of the presentation, I created 3 new providers for BlogEngine.NET to store data in a VistaDB Express database. These 3 providers allow you to keep most all your blog data in a single database file for easy backup of your site.
In thinking about my presentation, I decided early on I wanted to write new membership, role, and blog providers for the presentation. I figured it would be helpful to go through the steps in the session and even though no one would want to watch me implement each of the required methods, we would gain a lot by writing a little of the code, putting in the pre-written versions, and then discussing a bit more of it. A light weight database seemed to be an ideal fit for what I wanted to do.
You might ask why I chose VistaDB and it is a good question. I actually was encouraged to go the Sqlite route, but I decided to give VistaDB a try. I have heard good things about Sqlite, but the fact that I've heard very little about VistaDB other than the fact that Graffiti CMS uses it out of the box, made me curious. Once I found that they have an Express edition available for open source projects and non-commercial use, I decided to give it a try. I'll write more about VistaDB soon, but I can say it has a lot going for it and I am really happy with my experience with it so far.
I promised to make my code available so here it is. The source includes BlogEngine 1.3.1 with the additional files I created. If you are interested in using the VistaDB implementation with BlogEngine for yourself, check back tomorrow. I've made a separate project with the necessary files and will make the needed dll, the database, and the web.config changes and I'll give the details on it all tomorrow. If you just can't wait, you are more than welcome to dig into this code. It is all here.
Update: I made some updates to the VistaDB providers (security and the like), moved them out of the Core project, and made them into a separate dll for easy installation with the BlogEngine project. The details and the download can be found here.