Monday, December 29, 2008

ASP.NET CMS on a Budget

This is a comparison between two ASP.NET CMS systems that are currently available, based on an experience of mine. But before the comparison, a little background...

The company I have been designing for this year had a client come to us wanting a dynamic website. It was a website for educational resources. We initially decided to try it out on the Umbraco CMS which is what the company's website has been running on.

As we moved into the project we realized that there would have to be a lot of custom coding and thought we might be looking at building something from scratch. I looked at this prospect and at the time frame we had to work in and thought, "There must be a better way". In the meantime we had done the site's design as a static site in ASP.NET. This was my first foray in to ASP.NET and Visual Studio. Looking over the specs to our project I began to do research on ASP.NET CMS packages and was pleased to find that most are very extensible, meaning we could start with one of these, add some code for custom controls and save a lot of time versus building the whole thing from scratch,testing it thoroughly and making it solid. Another thing I found out was that ASP.NET CMS applications can be very expensive to license. I thought if I could find a good affordable (less than $2000.00 a site) CMS solution, I would not only bring this project in within its new budget but I could also develop a workflow for producing really competitive dynamic sites.

On the project at hand among the things the site had to do was sign up members who could upload file resources, i.e. pdfs, Word docs, videos, Powerpoint presentations, and audio files that users could then download for their own use. There had to be an upload for users to upload the files and an interface to edit entries. It needed a specific table sort setup to browse, preview and download the resources. It also needed to have the standard newsletter signup and management capabilities, a Whats New box showing the latest uploads and a countdown to a twice a year webcast event that would be visible on the site. Fortunately most of these bases were covered by standard CMS.

As I looked over ASP.NET CMS offerings I narrowed my choices down to two. Sitefinity, offered by Telerik, maker of the Rad Controls for ASP.NET and Kentico, an offering from a company by the same name. I might also add at this point that another consideration was that the Client was very specific about the look of the site, so I would have to be able to implement the design I had done for the static site exactly.

After an initial evaluation I decided that Sitefinity would be the quickest and easiest to implement. According to the demo video on their site you can load an ASP.NET master page as a template, put in your exact CSS and have the pages look right. Custom controls were a matter of writing the control as an aspx file and uploading it into the controls available in the application. Sounded very doable. You could skin the controls with CSS and skin files. I opted to commit to Sitefinity first because it looked the easiest as Kentico worked off of web parts and seemed to have a steep learning curve.

And so the fun began. For development, Sitefinity worked best as a root install on the development machine using IIs. They had step by step instructions for this on their website, for Vista. My development box had XP Pro, but I didn't think it would be that big a deal. Boy was I wrong. I kid you not, it took me the better part of a week to get an install to work on my XP Pro box. I contacted support a lot and they pointed me to articles on Microsofts sites. I also perused the forums in their support site, mostly to find other people who had been having the same problem. I did find the answers I needed on their forum eventually. In between hair pulling sessions with that I did get an install of a different site working on another box with XP Home using Visual Studio. I did have to tweak the CSS on that one and still haven't gotten it 100% right.

Once I got the install working it was time to fit in the design. That turned out to be not as straightforward as I had anticipated. It turns out Sitefinity interpreted my CSS a little differently. After many hours I was able get everything shoehorned in and working and then it was time to start working with our programmer on the custom controls. We had decided that the resources, that is, the files that were uploaded by users for download should have their own directory and a seperate database. Everything was going along famously, the controls were intergrating into the pages and we were moving along towards a swiftly approaching deadline. Then suddenly, the CMS desk wouldn't work anymore. It would weird out on me and lock up. I thought I must have made an error in some code so I loaded an earlier backup and tried again, three times. Same result. I conferred with support on this, I even sent them copies of the files. They said it was working fine for them, it must be something with my machine. I tested the files on a couple of different machines, but no luck. I never figured out exactly what went wrong, but my guess is that since their CMS desk seems to be controlled mostly by ajax script, it must have been some sort of script collision.

At this point I became sort of frantic. I had committed us to this, used our resources and now the deadline was approaching and the site was broken and I couldn't get any answers. As much as I hated to I thought I better give it a try on Kentico as I had just spent too much time troubleshooting Sitefinity and the last thing we needed was to have this break after we delivered it to the client and not have any answers.

So I did a crash course in Kentico. I was lucky in this respect as the Kentico installation comes with extensive documentation in pdf and chm form and they have forums online. I also contacted support and told them I was building a client site and would be purchasing a license for the site as soon as I showed the client a working prototype. They were very helpful and started responding to my emails and helping me along. The support for Kentico was great. Once I figured out their master page and template format I was able to execute my design perfectly. After getting the hang of it working with Kentico was a pleasure. The learning curve had mostly to do with all the features that this application offers.

We were able to quickly get a working prototype going and showed it to the client. They liked what they saw and we did purchase a license. We continued to add custom controls to our installation and Kentico stayed rock solid. We demoed the site for the client and started working with them on it and they have been pleased with the results. I still have a lot to learn with Kentico, but I believe I have found a solution that will make it possible for me to build large cost-effective dynamic websites for a variety of clients.

As I mentioned before, for this implementation I did not have time to investigate all the cool features Kentico has to offer me. The recently released new version, version 4, has even more cool features. The price has gone up a bit, but they still offer trial and free versions of the application and support is excellent. The company I contract with (LiveAir Networks) has become a Kentico partner and we are building the new company website in version 4 of Kentico CMS. One example of the level of service their support gives, we found out that our hosting company, Mosso, which provides cloud hosting was not compatible with Kentico CMS. We told support at both Mosso and Kentico that it would be great if this changed. Kentico emailed us back and said they were getting with Mosso support on working on the solution. Within 2 weeks they emailed us and sent us a patch that made Kentico work on Mosso and said the next version would work with Mosso natively. Now that is what I call going the extra mile.

I will return to the subject of Kentico in the future and would love to hear from others who have an interest in or experience with Kentico. For more information on Kentico visit


jbash said...

Thanks for sharing your experience. I've been evaluating CMS tools recently as well. I'm surprised at the problems you had with Sitefinity. One of my co-workers and I were investigating separate tools. He was investigating Umbraco while I installed Sitefinity. I was done in about 10 minutes and was playing around with the interface.

I had installed a demo of Kentico as well and also found the install process pretty painless. I was, however, more impressed with the user experience on the Sitefinity platform and we've quoted that solution for a client of ours. Reading your experience does make me a bit nervious - do you know what version of Sitefinity you were working with at the time?

Les Warren said...

I don't remember exactly, the last version - 3.2 or 3.4. I did get it to work on another site quite easily. I was looking for a single solution I could learn and use, So for now I am focused on Kentico and the company I contract with has become a Kentico partner.
To Sitefinity's credit, I like the way you can use master pages to theme, worked well with my work flow. Custom functions were pretty easy too. I am sure the problems I had were because of the specifics of the code I had (Sitefinity doesn't seem to like absolute positioning too well) and I had no leeway to change the design. I was in a sort of catch-22.
I do find the support at Kentico more responsive and knowledgeable, and they now have a US office.
Thanks for reading and commenting, I hope you found it helpful.

Gabe Sumner said...

Hey Les, I really appreciate this article!

I'm really sorry to hear Sitefinity didn't work for your needs. We've had a lot of internal dialog about the installer and we have some future plans that should improve this story.

For now, I understand it's about getting the job done and I'm happy you found a solution you're happy with. Hopefully you'll give Sitefinity another try in the future.

In the meantime, this feedback is extremely valuable. Thanks for giving us a try!

Gabe Sumner

Post a Comment