BlogEngine.NET appears to be closer than ever to a Multi-Blog implementation thanks to work done by Jacob Proffitt found here: Multi-blog Obsession. The SQLBlogProvider allows multiple blogs to be supported by a single SQL Server database. Imaging the maintenance and resource requirements, compared with “n” blogs and “n” databases, or “n” folders with “n-times-x” xml files for all those posts. Currently, this provides for a single folder and any number of application instances, all pointing at the same folder. There may be a few potential answers to this, but only if someone deems it a problem. I’m now running about 12 (BlogEngine.NET) blogs in a single location with a single database using the SQLBlogProvider. A few details were worked out to bring this solution up to the 1.5.x version of BlogEngine.NET. While looking at this, I’ve learned a lot about some new features and found some useful and straightforward applications of Linq to SQL.
If the BlogEngine.NET team comes to roll this solution to the Multi-blog “request” into the core solution, it may need a few tweaks. I’m not sure which ones may or may not be important to everyone but I’ll try to innumerate the issues I see here:
- “ONLY” SQL Server support due to Linq to SQL dependency
- I don’t see this as a problem since I wanted this solution myself, however Linq to Entity or other patterns could certainly be employed for other frameworks or architectures.
- Multiple blogs require multiple IIS Applications
- This may be due to BlogEngine.NET core dependencies so it may not be reasonably addressed in the near future. This one item would make sense to “Fix” for me because it would make an already easily maintained multi-blog approach an order of magnitude easier still.
- System Resources still grow due to the way BlogEngine.NET loads blog data into lists for performance reasons
- Again this is a core BlogEngine.NET issue for multi-blogging. Not necessarily an urgent matter, but a sizeable problem for many blogs running in a limited environment. Throttling could become necessary.
- Each host site depends on host header or specific domain name to define a unique blog
- There may be a some simple answer to this so I’ll try to provide any findings when I’m done testing some of my theories.
- No UI for adding or “maintaining” each new blog
- Not a difficult problem to solve.
- Extensions, including Widgets, are not yet configured per blog.
- This only matters for configuration of Extensions that are blog specific. There should be a default setting for every Extension, but also a means for specifying, at least, blog specific settings for certain blogs.
- Widget Zone should also be configured and styled per blog. I would like to have Text Widgets displaying things like Author information that does not conflict with other blogs.
- Several bugs still exist and should be tracked down and corrected.
- Again, not difficult. Something that will require time and testing.
I’m extremely happy with the results to date but I still consider this a Beta test of the latest BlogEngine.NET source merged with the latest SQLBlogProvider source, plus some merge code of my own. I’m running on a 1and1 VPS solution so everyone can give it a try.