I've taken the plunge and replaced Drupal as my content management system, that is, blog hosting software. That "that is" is the first reason: I have discovered my needs are blog-centric. While a full-fledged CMS like Drupal can handle a corporation's information management needs, I realized I didn't really need that kind of horsepower and, more to the point, that any content outside of blogging I would want to present with highly customized web technologies, which defeats one of the main selling points of a CMS, i.e., a consistent look and feel.
This recognition opened new doors. Drupal has some limitations. Category support for the MetaWeblog API, for example, that allows for remote posting from Windows Live Writer or Microsoft Word is broken. After much digging around, it appears there is a patch available, but my hosting service doesn't provide SSH access to apply the patch. I waited for the next release, but the fix wasn't included. The upgrade, meanwhile, broke my theme. Broken modules and themes is a chronic problem with Drupal, which has adopted the philosophy of not being shackled by backward compatibility, which has a certain merit but results in a junkyard of broken functionality. Drupal is what it is, though, and was good enough plumbing that I was willing to overlook these problems. I would need to modify any blog hosting software, I reasoned, and so rolled up my sleeves and began to look at fixing the MetaWeblog API myself.
But that brought me to the killer: Drupal is written in PHP. I know a lot of web developers swear by it, but I doubt they have been developing software as long as I have, and, if they have and still don't understand the fundamental problems with PHP, they aren't as good at it as I am. I'm not going to get into all the problems with PHP, from mixing business logic and presentation layers to lack of namespaces, just suffice it to say it was enough of an anathema to me that I began looking at alternatives. The .NET platform has certain advantages for me in that I have knowledge and access to the very best tools, not to mention that working in that platform as my hobby has the advantage of enhancing my professional skills.
Dot Net Nuke is the most popular .NET open source CMS, so I looked there first. Blogging wasn't even a second class citizen in the Dot Net Nuke world. Not only did the MetaWeblog support entail buying a third party product, the blog module itself did not support categories. The suggestion was to create a new blog for each category! Obviously they didn't understand blogging. At all. To tell the truth, I wasn't real impressed with Dot Net Nuke as a full-fledged CMS.
I was ruing my experience finding a .NET solution to a friend who googled "open source .NET blogging software" and made a couple of suggestions. I had not looked at blogging engines, per se, for the same reason I preferred Drupal to WordPress. I was looking for a CMS. But then it hit me: my requirements were heavily blog-centric. And, again, anything I envisioned doing outside of blogging would be highly customized. For example, I have dreams of consolidating my New World (Jamestown) meanderings into something highly visual and interactive. Microsoft Silverlight would be perfect; and, of course, I have access to all the latest and greatest development technologies and resources for the project.
Having changed my search criteria, I looked at a few open source .NET blog engines and fell in love with . . . BlogEngine.NET. It isn't for everyone. It is a new, immature product and has significant functionality gaps. There is no facility which lists posts, for example. But is that needed? One can manage list posts directly from Windows Live Writer, for example, via the MetaWeblog API (which BlogEngine.NET, incidentally, got right). And that is the beauty of it: the MetaWeblog provides for remote management. Functionality for managing posts would best be done remotely in client software where more robust controls like grids are readily available (or more sophisticated web applications). Thus the lack is not necessarily a fault. Indeed the very immaturity of BlogEngine.NET provides me with an opportunity to influence the growth of the product, meaning eventually the blog hosting software I use is suited to my needs. Because it is open source, moreover, I can at any time diverge from the main build and customize it to my liking.
What's not to like? So I've replaced the blog engine, which, while a momentary pain in the ass, will allow me to focus on forging this blog into what I envision it can be. Thanks for bearing with me.