Monthly Archives: April 2011

Upgrading to BlogEngine.NET v2 on discountasp.net

I’ve been testing a v2.0 install of BlogEngine.NET for quite awhile but first had to get this problem fixed and fortunately, a contributor to the community blogged a response (thank you). While the solution was pretty straightforward having moved completely to OSX back in October getting setup to simply recompile the core BE assembly was a little more involved requiring a VM etc.

For me the single largest benefit is the addition of recaptcha for reducing comment spam which in recent months had grown completely out of control though there’s plenty more to like about the new version.

To make the upgrade I installed BE v2 in a new directory on my discountasp.net account and copied my post data and images over to the new install. I also setup my extensions and theme and got all the various bits in place before pulling the trigger. Once everything was ready I tried to rename my /blog folder using $g(FireFTP) which resulted in an “Access denied” error. It turns out that I hadn’t removed the IIS application from the /blog folder via the control panel. Once I did that I was able to rename /blog to /B515 and replace it with my new v2 install folder.

Need for help with IIS URL rewrite rule for BlogEngine.NET v2.0

Executive Summary

Essentially, I’m looking for help with creating an IIS URL rewrite rule to support the following:

Existing modified BlogEngine.NET v1.5 style post URL:

http://www.stevetrefethen.com/blog/ASQLObjectcaseinsensitiveLIKEquery.aspx

BlogEngine v2.0 style post URL:

http://www.stevetrefethen.com/blog/post/ASQLObjectcaseinsensitiveLIKEquery.aspx

I need a rule that will accept the prior and redirect/rewrite to the latter. I’d prefer whatever option has a minimal SEO affect.

Any ideas?

Details

My blog software is BlogEngine.NET v1.5 and I want to upgrade to 2.0 to take advantage of a number of new features. When I moved to BlogEngine.NET several years ago one of the things I wanted to maintain was support for my dasblog style URL’s which didn’t include “/post” in the path. Back then I tweaked BlogEngine to remove the “/post” path from post URLs but when looking to upgrade to v2.0 I see there were significant changes so my code wouldn’t port easily especially considering I’m no longer running Windows except in a VM on OSX and only have access to the VS.NET Express which doesn’t support multiple projects in a solution making debugging this issue pretty difficult since the code is in a satellite assemble and not the core website.

As an alternative I’m considering simply rewriting/redirecting my old URL’s to include “/post” in the path though I’ve done some playing around in the IIS Manager but have yet to achieve the desired result.

That’s where you (hopefully) come in. I’m pretty sure this is possible but need help creating the necessary rule(s). I’ve got BE v2.0 setup on my domain so I can conduct testing using this alternative path quickly.

Thanks in advance…

Just FYI, I’m getting so much comment spam on BE v1.5 I’ve closed comments after two weeks so if they’re closed please use my contact link instead.  Thanks.

A SQLObject case insensitive LIKE query

SQLObject is:

…a popular Object Relational Manager for providing an object interface to your database, with tables as classes, rows as instances, and columns as attributes.

SQLObject includes a Python-object-based query language that makes SQL more abstract, and provides substantial database independence for applications.

 

I’ve been reading through the SQLObject documentation and it’s not always clear when it comes to executing a LIKE query and a bit of Googling turned up a number of related questions therefore I thought I’d contribute this tiny bit of knowledge to the Intertubes. In my case I want to perform a case insensitive LIKE query and here’s one means of performing this sort of query via SQLObject:

MyTable.select(sqlobject.LIKE(func.lower(MyTable.q.url), func.lower('http://www.stevetrefethen.com/%')))

That equates to this SQL:

SELECT MyTable.field1 FROM MyTable WHERE (lower(MyTable.url) LIKE (lower('http://www.stevetrefethen.com/blog/%')))

In the above example “func.lower” is SQLObject’s syntax for indicating the SQL server’s lowercase function should be used.