Background


I was tasked with converting the company website from circa 2000 legacy ASP which would only show dynamic data on IIS5 to something that would at least be IIS6 compatible. The database back end, if you could call it that, was a series of .mdb files (Access).

I chose ASP.NET MVC with Steve Sampson's Areas modification of Phil Haack's prototype, MvcContrib, xVal, MvcMembership, Elmah, and Combres to make the site as future proof as possible. I used a SQL 2005 Database Project and SSIS to convert the raw data from Access to SQL. I had done this before realizing the production server would be SQL 2000 so I added SQL Publishing Wizard to the mix to create a lowest common denominator SQL database.

Admin Control Panel


The user section is driven by MvcMembership to handle additions, deletions, and basic user manipulation. Each List page uses MvcContrib's grid control to make things easier. The previous control panel had no way of deleting anything so the only way to remove an item was to make it not visible. There was also no validation, no controls tied to their type like DateTime, and the database logged every session. At a certain point I'd have to open the database in Access or equivalent and clear them out because Access has a table row limit. There was also no way to edit tags or categories so I opened up as much configuration as possible.

Form Input


Like the Admin Control Panel, there was no server-side validation tying database types to their controls, it only looked for required fields. Using xVal made this a breeze and eliminated a lot of bot submissions in the process without the need of a CAPTCHA control so far.

Home Page


The Home Page shows the transformation from a table based layout to one done entirely using CSS. Every subsequent page followed this mold but required either 2 or 3 columns and was adjusted accordingly using Master Pages. Used a jQuery newsticker for the Press Releases along the right hand side and simulated the blink tag (ick). Also used jQuery for ajax calls to get the various ticker items to circumvent using Partials. jQuery also powered the image rollovers for all pages that required them versus hand-rolled javascript that was not easy to maintain.

Conclusion


ASP.NET MVC, despite needing Visual Studio to compile is exponentially easier to maintain than legacy ASP. jQuery versus what I now call legacy javascript made it extremely easy to pick up as a language as well. I'm not as proficient in javascript as I would like but I don't have to be. Luckily ASP.NET MVC lends itself to SEO quite well and there wasn't much that needed to be done to it for search engines to pick up the changes. The design of the site was a simple 1:1 copy as nothing was allocated to revamp how everything looked.

Update: Omega HR Solutions has since switched their website over to WordPress as of a few years ago now. To see what a difference design makes, check it out: http://omegahrsolutions.com