Over the weekend I switched this Web Log over from .Text to a custom engine I’ve been working on off and on as a side project. .Text has been really good to me and it’s been working very well but it’s been getting a little long in the tooth especially since I’ve been running a fairly old version of it (.94). .Text has since been discontinued, but it lives on in the SubText open source project. .Text has been solid and is more than adequate for most things especially if you plan on just using it, rather than tweaking the code.
However, I got really tired of trying to hunt down code and even modify markup in the multitude of locations where .Text stores all of its formatting and template stuff. Every minor code change to .Text has been kind of a pain to do especially since most of my changes were rare and usually fairly trivial (like adding Captcha providing easier comment management etc.). .Text like any reasonably complex system is layered pretty deeply and built for extensibility and non-code customizability. That’s great for using it, but when it comes to modifications of code that sort of design scatters things around a lot of different locations. The other thing is that it’s an ASP.NET 1.1 app and it didn’t like porting to 2.0 – the whole templating scheme fell flat in 2.0 and I wasn’t about to try and hunt down that particular problem as it relates directly to the issue of dynamically loaded controls I’ve been bitching about for 2.0 project. .Text is my last 1.x hold over app, and so this was another of the final reasons.
What pushed me over the top though was getting the project to open under Vista RC1. Visual Studio 2003 wouldn’t load the Web project under 1.1 due to FrontPage extension problems and only opened the project if I run the app under ASP.NET 2.0. Of course that makes testing tough because .Text doesn’t work right under 2.0. Finally I decided it’s time to bite the bullet and move on…
So I figured I’d be better off using my own code base that is much simpler and more self contained. A blog engine isn’t particularily complex to build on the surface but of course the devil’s in the details especially since I wanted to make sure that the main Urls etc are backwards compatible. It’s not 100% of course – some of the archive views aren’t supported, and I found out I have completely forgotten about supporting CommentRss…
In any case the site’s been running on the new engine since Sunday and it looks like it’s doing OK. There are a few hiccups here and there that I’ve been quietly fixing. There are some new features like the ability to view comments that I think is kinda nice and a bunch of custom views of for myself of the summary data in the backend. Most of the change over is for my own maintenance stuff which has been difficult to hook in under .Text.
There have been a few tricky things like managing Pingbacks/Trackbacks. I’ve never really liked the way this works in .Text (and most other engines for that matter) because it’s selective on how the data is pulled by looking at basically a registered Web service. I chose to implement a reverse lookup scheme instead, and try to pick up useful information out of the target page but that as it turns out is pretty complex in making sure you don’t end up with bogus links or links that go bad after a while. A lot of tweaks have been required in that code since it went live. <s>
I’m glad I got this finally up – I’ve been sitting on this code for a few months and I’ve been too busy to really get it online. I am also happy to report that this is a Web Application Projects application and it’s been super easy to get this application online and to manage code updates to the server. Damn it’s so much easier to do this that with my West Wind Web Store which is a standard project and needs all the damn pre-compilation stuff.
If you run into any issues let me know <s>…
Feedburner
One other change I’ve done with the Blog is that I switched my RSS Feeds over to Feedburner. This helps with offloading some of the traffic from the RSS feed as well as providing some additional features on the feed itself. Feedburner provides some nice statistics on links clicked and traffic origination which is usually lost on RSS feed serving, so this seems like a good setup for the moment.
A couple of people have reported being locked out of Feedburner due to company policy. If you’d rather subscribe directly to my feed you can use:
http://www.west-wind.com/weblog/rss.aspx?Force=true