BlogEngine.NET runs entirely on XML files located in the App_Data folder. That makes it truly plug ‘n play, but not everybody likes XML files. We’ve had a lot of requests for SQL Server and MySql providers, so now we finally released an open provider model.
Now it’s possible to write your own providers in an extremely easy and intuitive way. There are two steps involved. First of all you need to write the provider and secondly you have to add it to the web.config.
A provider is 1 single class that inherits from BlogProvider and implements 10 methods. These methods inserts, updates, deletes and retrieves posts, pages and categories. Here are the abstract methods that must be implemented on the custom provider:
public abstract Post SelectPost(Guid id);
publicabstractvoid InsertPost(Post post);
publicabstractvoid UpdatePost(Post post);
publicabstractvoid DeletePost(Post post);
publicabstract Page SelectPage(Guid id);
publicabstractvoid InsertPage(Page page);
publicabstractvoid UpdatePage(Page page);
publicabstractvoid DeletePage(Page page);
publicabstract CategoryDictionary LoadCategories();
publicabstractvoid SaveCategories(CategoryDictionary categories);
When they are implemented you can fill them with SQL statements, stored procedures or whatever data store mechanisms you like. You can look at the default XmlBlogProvider for inspiration.
The BlogEngine configuration section in web.config needs to be updated to make the custom provider work. This is the section with the default XML provider set up. Just add your provider and set it as default in the defaultProvider attribute.
< BlogEngine >
< blogProvider defaultProvider ="XmlBlogProvider" >
< providers >
< add name ="XmlBlogProvider" type ="DotNetSlave.BlogEngine.BusinessLogic.XmlBlogProvider" />
</ providers >
</ blogProvider >
</ BlogEngine >
When both the provider is written and web.config changed, it will work just like that. If you write a provider and wish to share it, please let me know and I will send a link your way.
Get the latest bits with the new provider model at CodePlex.