Adventures migrating from HTMLDB 1.6 to Theme 25 p1
This is the first in a series of posts documenting and sharing my experience changing an ancient (often hardcoded) theme to something more modern. The application started with HTMLDB 1.6 and Theme 4. The theme didn’t remain vanilla for long and was highly customized to accomodate the look and feel of a site coded with .NET. As you can expect from a site that has been around for so long, there will be some interesting situations and challenges. However, I’m confident that, thanks to APEX flexibility in separating the look & feel from the logic, this won’t be an overly painful experience (I guess we will see, won’t we?)
First things first, I have to apologize for the sensationalist tittle. It’s a bit of an exaggeration, I know. You see, I am migrating to a customized Theme 25 (Blue Responsive) with APEX 4.2.2, but the site I’m migrating is pretty much fully functional in APEX 4.2.2 and using a highly customized theme that started life as Theme 4. However, the site did start life way back in 2005 with HTMLDB 1.6, shortly after being upgraded to HTMLDB 2.0. It has been hosted with Revion since then and it has been upgraded all the way to the current version, APEX 4.2.2.00.11
I have been a member of the North Star Chapter of the BMW Car Club of America since 2003. That’s 10 years this July to be exact. Towards the end of 2004 I became more involved and started volunteering my time. As a techie, of course, one of my contributions was to help maintain the website and eventually take over as webmaster. This is all relevant because that’s when this story begins. The site we’ll be migrating is northstarbmw.org.
Way back in 2005 we moved from MySQL with .NET ASP to APEX (well HTMLDB at the time). We were in a bind because one frightful morning our hosting company, at the time, lost our MySQL database. Yup, gone, caput, nada, zilch. They eventually recovered a version of the DB that was about 30+ days old, if memory serves me right. This was not the first incident in a series of unfortunate events, but we decided it was the last. With no data, the site wasn’t too useful, although all the vast static content did remain. I jumped into action and created 3 APEX applications:
- The public pages app
- My North Star (or the secure member area): This is where members would register for events, edit the car information and submit classified ads
- NS Admin: This was the Admin application where board members would setup new events, handle registrations, approve classifieds, manage website content, etc…
However, we didn’t completely cut the cord from the old site. For the sake of speed, we 1) kept all the static content as it was with .aspx pages. 2) we decided to keep the same look and feel and I worked on creating a custom APEX theme to blend the old with the new. The new resulting beast, which is still in service today, is a jumble of APEX pages intermingled with .NET pages. In fact, the Frankenstein, was a two headed monster.
Move to a more modern website design and finally cut the cord from all the .NET “stuff” we had kept around. Ideally this also includes a mobile friendly view.
Having a hydra for a website should have been reason enough. Although perhaps, the main reason we started down this migration path was because we needed to use a new logo. A new logo you say? Yes. To make a long story short, the powers that be at BMW and BMWCCA decided that all chapter logos should be standardized. They all need to have a cohesive look and feel.
Why would this cause that much headache and trouble? See the new logo was just not going to work with the old look and feel. This was not going to be a straight swap.
The old look and feel was created when image slicing was all the rave. Remember those days? Plus, the master images that created that theme were now all but lost. Even all those pretty buttons are three stage images: normal, hover and selected. If you want to change the label in a button you need a new image!
I’m surprised, but pleased, you’re still reading. This was mostly a post to set the stage for the following blog posts. I promise things will get a little more technical and interesting from now on. Hopefully you’ll come along while we explore the newer themes and functionality that APEX has to offer.
Move on to Part 2.