Saturday, January 9, 2010

Dotnetnuke - CMS done right

I currently work for the BYU College of Life Sciences as a developer. The office I work for provides a variety of IT services for a large chunk of the BYU campus. As of late, due to economical conditions, we've had to search out ways to streamline our environment, because computing needs have sky rocketed and budgets have been cut. One area, especially, that we've had to take a hard look at is web presence. Web presence hasn't been that important to the college until only recently (last 1-2 years) due to a couple of things.
  • Users thinking they don't know how to program therefore they can't do web stuff
  • Horrible tools to build a web presence
  • And, politics
You'd think that the easiest way to build a good web presence would be to use a CMS (content management system), but when I started this job, it was easier for me to program a web application to meet the needs of the user rather than trying to teach them how to use the CMS. Back then, we were using a system called Documentum. This system was so difficult that the developers in the office couldn't even figure it out. Well, after I had been there a little bit, another college we supported requested that we build them a system to manage web content. So, we began building an in-house CMS. It was a cool project and one of the most interesting things I've worked on. After it's completion we launched it into that other college's environment and it worked wonderfully. We had it all setup so that all users had to do was create a page and put content into it like they would in Microsoft Word (we were using the FCKEditor). The secretaries in that other college really liked it because they could manage content without knowing anything about web programming or html.
As time went on, Documentum finally just became so unmanageable that we decided to switch over to our in-house system which had proven to be solid system with the occasional quirk here and there. Now, here's where it started getting interesting. Our CMS, what developed as one big monolithic entity, therefore, every time we needed to fix a bug or add a new feature, we had to redeploy the whole system. Therefore, the only people who could change it were the developers in the office. Well, as we brought more and more people onto this system, we started seeing an increase in new feature requests, feature augmentations, and the occasional bug. As soon as you give people the flexibility they've needed, after a while they want more. We saw that our CMS was going to start greatly taxing our time.
So, finally, during summer of last year, we had a few free cycles to address this issue. Being that we didn't (and still don't) have a lot of resources to maintain in-house software, we decided to look around for CMS solutions that cost little to nothing. At that time, and still now, there was a growing community of Drupal users on campus. So, we thought that it would be wise to check that out and see how easy it was to use right out of the box. When we brought up an instance of that system, we were very unimpressed. We found that in order to actually make it useful you had search out and install additional extensions. We also hated how hard it was to create skins/templates for it. So, we kept looking. Eventually we found Dotnetnuke. We loaded up an instance and instantly fell in love with all the preloaded extensions it came with. We were also very impressed with how easy it was to skin the system. At the end of September last year, we had all the skins created and all the additional extensions written that we needed to provide features contained in our in-house system. It came time to move everyone over. Today we are hosting 30+ sites on this system. It has saved us so much time because of all the preloaded features that come with it. Our users find it very easy to use and love all the flexibility it gives them. And we feel safe knowing that the next time our users want to "stretch out" a little more, Dotnetnuke will "stretch out" with them.

No comments:

Post a Comment