I had mentioned that the logic of the Daily News List Builder was essentially done, but I wanted to create a migration utility first before moving to prototype. That was this weekend.
The List Blog Migrator uses XMLRPC and the MetaBlog API to pull all posts from a source location blog and migrates each into a List destination blog, i.e, taking all CommunityServer.org Daily News posts and posting them on my dev server, converting each Daily News post into multiple List Items in the process. Using this approach makes the app capable of migrating a source blog from any location (or any application since I'm using the standard MetaBlog API) to any destination blog location.
In case anyone was wondering about the development process dynamic, CommunityServer.org is a sacred place to me, and although I'm only doing a innocuous, low-impact GetRecentPosts() XMLRPC call on the source blog, everything you see here was done using a duplicate Daily News blog that sits on my office network.
Here's a screenshot of the List Blog Migrator. If you're familiar with Windows Apps I've done before, you'll see a certain symmetry here. There are two things I like about the Migrator. For one, it's fully multi-threaded. Hats off to Microsoft for making the BackgroundWorker so easy to implement in .NET 2.0.
I can specify a subject string and only those posts are processed (optional, otherwise all source blog posts are migrated), a progress bar keeps track of the migration percentage completed, and each source post as it's processed is displayed in the listbox. The background process can be safely cancelled at any time.
The second thing I wanted to do with this app was add a Help function (shown at the bottom-left status bar.) Since the migration was happening on a background thread I thought it would be nice to provide something to read while the processing was going on.
Here's the complete help document if you're interested. It's still in draft form, but it's pretty close.
Speaking of close, I guess we're almost ready for a working prototype. That should be in our next exciting episode.