Archive for the ‘Mcms’ Category

MCMS 2001 to 2002 Upgrade

July 2, 2007

For the last few months I have been involved with an MCMS 2001 upgrade to 2002 which involved 10 websites and over 70 templates. This was a huge technology upgrade as the 2001 stuff was based off old school asp and vb code and was being upgraded to .net2 / Mcms 2002 with sp2 (adds some basic .net2 support such as sitemaps and master pages).

This is actually a momoth task and should not really be called an upgrade as it is, to a large degree, a rewrite, only keeping the logic and assuming there will be no reusable code (you are converting from procedure based code to OO right?)

Tasks involved with upgarde:

Setting up the dev Enviroment: 

I found that with such a major setup such as CMS, its best doing dev work in a vm, In mycase, I used the free microsoft virtual PC 2007, windows 2003 (for its ability to host multiple websites) and sql 2000 as a base setup. Installing mcms 2002 and its service packs (SP1a and SP2) will take a good day. The other thing to note is I was never actually successful in getting the MCMS project templates integrated correctly within visual studio 2005 (maybe to do with order of install?)but then as it turns out, we didnt need it so chances are you prob wouldnt either. We used the standalone template manager by Steve Walker to do all the linking between the mcms template and the aspx templates files. There are also afew tricks to installing sp2 such that it takes less time to install (it will take atleast an hour, and if memory serves me right, it took me more like 2 or so hours).

Migrating the database:

The real good thing that saved me lots of time was that there was no need to have MCMS 2001 installed, all we needed was a copy of the old mcms 2001 database from the client (a whole 3.5 gigs worth). Once I restored this as a local database, I had to clean up the database users (removing all those that the client had and giving myself permissions of DB_Owner. All this done, next was to point the MCMS Database configuration tool (DCA) at the old 2001 database and let it work some magic. It will eventually say it found an old mcms database and ask if you want to convert it.

The conversion process for this has taken me over 30 hours when running from within a vm and hitting a database over the network, lesson learnt, do not use a networked database, it could had be the fact that the vm is slow, the network adaptor was doing natting for the vm, the database might have been under heavey load or just very chatty connection but yes, it took over 30 hours to do migrate 3.5 gigs or so. Much easier to have a local db inside the vm (which the 2nd time round, ended taking 2 hours max while running the vm off usb2 portable hard drives), serious lessons learnt!.

You will be prompted to add a admin user account, make sure you remember this as you will need this to get into mcms using site manager (and in order to add more users in mcms).

The mcms2001 Templates which used to be stored as part of the database will be slightly altered and spit out onto the file system (<Path>). At this stage, its prob a good idea to take backups of your migrated database and your exported dumaped out templates!

Coding up new .net 2 templates

The easiest and quickest way to do this in my case was to find a nice general page from the current live site, view the html (client browser end) and throw that whole chunk into a ‘Sample’ html file in the soloution. Next step was to clean out the non-template data from the html such as the placeholder’s body data. Now throw the cleaned up html into a master page and start moving out functionality into user controls (for now, they will contain only static data in order to get the site compiling and working quickly), so for example, some controls might be “breadCrumb”, “LeftNav”, “MainMenu” etc.

Once all the basic controls are taken out of the master page, you can start looking at creating your first template. I would pick off teh most commonly used template for this as it helps sorts out say 80% of the site with very little effort, so in my case it was a basic “general” template. Code this template up using either the standard mcms placeholders or you can (in my case I did) use some extended custom user controls which encapslated an “edit” guide text caption for authoring mode and the basic cms placeholder control all in one.

 Some useful “extended” controls to have:

A Placeholder control that holds both the standard MCMS control with a settable “edit caption”

A Panel Control which hides the content of the panel if the CMS placeholder is Empty / Black (<p>&nbsp;</p>, etc)

ImagePlaceholder control that allows setting propotional height/width properties (Feature of MCMS 2001 which is no longer supported in 2002).