It's finally here: the Daily Parker running on BlogEngine.NET 3.1. This is, in fact, the first native post on the new platform, visible (for the time being) only to the select few who know the temporary URL.
So why did it take me eight weeks to get the new engine up and running? A few reasons:
- BlogEngine.NET 3.1 is still in development, with the main open source team making changes almost daily.
- I've made some serious customizations (outlined below) on my own private fork of the source code.
- I have a real job.
- I wanted to time the release to a significant event in the blog's history.
My changes went pretty deep into the application's core.
Like most developers, the original coders (not the guys working on it now) made big mistakes with time zones, principally by using the horrible System.DateTime structure instead of its more-correct System.DateTimeOffset replacement. (The .NET Framework has had the
DateTimeOffset structure since version 2.0 back in 2005, so this really annoyed me.) As a consequence, I changed date-time storage everywhere in the application, which required a few massive commits to the code base. It also required changing the way the app handles time zones by dropping in the Inner Drive Extensible Architecture™ NuGet package.
Next, the Daily Parker has had geocoded posts for years, so I added a Google Maps control and geographic coordinates to the application. Unfortunately for me, the other guys kept changing the Edit Post screen, which complicated merging their stuff into my private fork. At least I'm using Git, which helps immensely.
Finally, I needed to get the thing to run as an Azure Web App, rather than as an Internet application running on a full server as DasBlog required. Again, I have a lot of experience doing this, and the Inner Drive Azure Tools simplified the task as well. It's still a pain, though it will allow me to retire an otherwise useless virtual machine in favor of a neatly-scaleable Web app that I can deploy in fifteen seconds.
Moving it to Azure necessitated getting file storage off the file system and into Azure blobs, as I outlined earlier.
Well, eight weeks and fifteen seconds. And there's still a bug list...
And I still have 4,998 posts to migrate...