BlogEngine.NET Core Version 126.96.36.199 is running on this server as of this Post.
I based my implementation on SqlBlogProvider, but since it was out of synch with BlogEngine.NET I had a dilemma. My biggest complaint about BlogEngine.NET if I had any at all was the fact that sometimes changes come at a snails pace. This is not to say that you can’t find a new build there every other day, but that the major enhancements I want don’t always take, or in the case of MultiBlogs, the most popular enhancement to date, is completely ignored. Once Jacob Proffitt created a solution, I figured it would be rolled into BlogEngine.NET.
OK, so I was Way off on this one. So here’s a strategy:
- Get the latest BlogEngine.NET code and use it as a baseline. (188.8.131.52)
- Get the latest SqlBlogProvider code and ditto. (27978)
- Make sure to upgrade Everything to .NET 3.5
- Modify the SQL Database Schema to include Blog and Host tables, and BlogDataStoreSettings
- and add BlogId columns where necessary.
- Recreate the DBML for the new schema.
- remove references to multiblog="true" because they don’t matter anymore.
- Simplify and verify.
OK, done!!! Now what?
I have a set of Blogs running an older version of everything and now I have a new schema. Also, I have new capabilities and only a SQL script to modify or add new blogs. It is simple but always required modifications before running.
- Windows Form, new simple DBML for required tables…because the Provider model is too complex,
- and Done.
Oh, and I needed a migration tool and some more fun with Linq to SQL, so I created a one-off migration tool with a useless UI that could be done from a command line, but I thought I might need more.
And, it’s running now!!!
BlogEngine.NET code is now at version 184.108.40.206 (change set 31351)
Now I have to isolate changes, bug fixes, enhancements I want and implement…but this is the exact scenario I want to avoid.
- Do I create a Branch that uses most of BlogEngine.NET?
- Should I start over?
I think the best option is to start a new core based on current or future technology and leave behind what can be upgraded. Linq, Entity Framework, WCF, Silverlight 4, .NET 4.0 can be used much more. MVC can become a solid base for the UI, maybe. This is not a hard nut to crack, and get’s easier with time and new technology. The hardest part about using BlogEngine.NET today is that it takes longer to fix than to build again from scratch.
It’s time for a new architecture. I’m glad I didn’t create one myself a few years ago when BlogEngine.NET was introduced, but I will be happy when I can safely deploy a new version based on those principles.