Handing over the keys
A couple of years ago I was nuts about DotNetNuke. I followed the releases, learned all the little corners of it, and even wrote a to-do app for sale. Now, everything's changed. I don't even have Windows readily accessible, let alone the development tools that make hacking on DotNetNuke fun. This is fine with me - after tasting Django, I know now how elegant web framworks can be.
I've been committed to DotNetNuke, though, since I did a DNN brochure site for a friend who makes and sells high-end purses. I've hung onto some crappy shared DNN hosting, and secretly hoped that Meg wouldn't ask for anything too complicated. Raw deal for Meg and me both.
So, my weekend project was to move her site from DNN into Django. This has several advantages:
- No database (with Django, you add the DB when you need it)
- Much simpler maintenance.
- An interesting technology
- Sensible URL's
- A
wgetwill pull a working static site
Wget it?
Let me elaborate on that last point. Meg and I are considering "handing the keys" of the site over to another guy, for reasons entirely unrelated to technology. How do you do that?
It's certainly not right to just give the new developer, a stranger, your DNN credentials and say "Have fun" (and anyway, this wouldn't relieve me of my DNN hosting). It's slightly less cruel to do this with a Django site. Alternatively, I may convert the Django extract into PHP, the lowest common denominator. I'm starting to think that the humane thing to do is to zip up a static web site, and let them set up the templating in their favorite technology (and hosted elsewhere).
Which brings me to a flaw in DotNetNuke: You can't do this. You can't
wget a site and expect to navigate through the returned content
and have the same experience as navigating in the original site. DNN uses
redirects and has a complicated URL scheme.
Django, which makes URL design a first-class business process, makes your
site easy to wget.
The lesson
There's a moral in here, and I'm still trying to put my finger on it. Candidates:
- Don't use convoluted web frameworks with required databases and crusty, redirecting URL schemes.
- Use only the most popular technologies.
- Design for transfer - use any technology that makes
wget'ing the site into raw HTML easy.
Unfortunately, the world of web development is so diverse in terms of both framework selection and the talent/experience pool, that it's very difficult to make a site that's easy to transfer to a new guy with an unknown skill set.
Have you had an experience like this? What did you do to resolve it? What lesson did you draw from it?