A Shared Settings Store for BlogEngine.net

You might think that BlogEngine 1.3 was released yesterday, but It actually been a while and it looks like people like it and want more. New version is under constructions and part of it, that I'm responsible for, is a new shared storage model. The basic idea here is to be able to use Extension Manager as a storage provider for any type of extensions. Today, if you look at Extension Manager from the 10 thousand feet, it looks kind of like Russian Doll: you have manager itself, it has collection of extensions, extension has collection of settings and settings have collection of parameters.

xmgr-1.png 180px-russian-matroshka_no_bg.jpg

At a little closer look, you can see how it all fit together: extension writer creates settings object, set values and uses Extension Manager to save settings. Later, when settings need to be used, you'll retrieve them from Extension Manager passing extension name as a parameter. Behind the scene, Extension Manager persists this object into XML file or database depending on the type of data provider you are using, caches it for fast access, provide you with convenient methods to manipulate settings etc.


This is pretty nice, would be even nicer if widgets (coming in BE 1.4) and customizable themes could use this facility as well. Potentially, any component that needs customization and persistent storage to save and get this customizable settings, should use this storage instead of re-inventing it's own wheel. Below is a very rough draft of what it will look like, definitely will be changed but basic idea most likely will not: Extension Manager will be modified to handle many more types of "extensions". It should not change how extensions use manager today, but rather add more functionality and let others use existing model.


As I work through this, I will share my thoughts and concerns as I did working on the first version of Extension Manager so together we will make it better and build stronger community along the road. Stay tuned!


This site is all about developing web applications with focus on designing and building open source blogging solutions. Technologies include ASP.NET Core, C#, Angular, JavaScript and more.