A few thoughts on Ektron CMS400.NET

Programming

So I recently started a new job at a decently sized software consultancy (excellent news and a great opportunity to be sure!) and my first project is at a large hospital in Cincinnati, Ohio. They currently are using Ektron CMS400.NET 7.x host the site in question. While I have heard of Ektron in the past, I have not had that much time to work with it up until this point.

Disclaimer: I do not work for or represent Ektron Inc. in any way shape or form. I simple am a developer tasked with creating custom components that work within the client’s installation of the product and in general the entire client customization and implementation. I do have experience with a number of Content Management Systems on a variety of platforms, but I am in no means an expert and I am delighted to learn new products and platforms.

Let’s start with a little background. Ektron CMS400.NET is developed by Ektron Inc. (http://www.ektron.com/), located in Nashua, NH. Their flagship product is CMS400.NET and it’s a pretty light-weight and pretty powerful Content Management System. Ektron hosts a set of developer community for forums and blogs, etc. And they have a ton of documentation (literally, if you  printed it out, it would likely weigh a ton) and videos, as well as tutorials. Essentially everything you’d hope to be in place for an indication of a well kept software project, and it’s here in spades. It’s relatively affordable when weighing it’s features and price with it’s competitors.

Now for the nitty grity bits. CMS400.NET is a .NET 2.0 Website project (ala Visual Studio 2005), it survives an upgrade to 2008 and 2010, I’ve tried them both with little to fix up. It’s written predominantly in VB.Net though does have a vbcode and cscode folders in the site’s app_code directory to allow extensibility in either. And of course custom class libraries can be written in any managed language and referenced from the website. The installation comes with a few Install Ektron Site options such as “CMS400 Developer Site”, “CMS400 Minimum Site”, etc. And will install the site into IIS, SQL Server (and it will offer the option to install SQL Server Express during the installation if it isn’t already present). The Developer site comes with a main Ektron Developer Documentation site, and a demo site for some medical company. The Minimum set up simply installs an empty Ektron installation, fully configured and ready for complete custom content. The Api is pretty extensive, I will give them that, hands down. I will complain about their documentation, they have a ton, and maybe every single piece of the platform is documented, it is literally too much to take in and there isn’t a homogenous set of documentation for it. But it is fully loaded. There are some CMS / Ektron specific words you may need to know if your not familiar with the syntax of the documentation (i.e. taxonomy, cms, smartforms, etc). Ramp up time getting familiar with the platform while creating a useable Ektron widget to personal spec was about two weeks, which I don’t think is unreasonable).

My primary dislikes are the Website Project visual studio application over the Web Application project choice. Now it comes as a fully functional website CMS web system. So classes typically sit in the app_code directory and are compiled but their source code is never published. So you drop your business objects in there and proceed to code some widgets. For ektron to recognize widgets, they must be in the root of a widget directory in the website folder hierarchy. So you discover you need to touch up the base class, your change recompiles the app_code, which the entire rest of the site relies on, so then it is recompiled. If you can stay out of the app_code you can recompile the website in a much shorter time. However, I’m a back-end guy so most of my time is in the plumbing that causes the nightmare recompilation. Ok, it’s maybe 3 minutes, but damn… feels like forever.

Beyond that, I have no gripes, it’s supports pretty much everything you want, in context content editing, metadata customization, easy widget infrastructure (they’re literally .ascx web user control files) and it’s a website, so you can fine tune the entire site. You don’t get the source code to the API but at that point you’d be adding your own so it doesn’t matter, but would have been a nice touch. Maybe I just missed that piece of documentation 😮

Anyway, I’ll end it on a 2 thumbs up. I would recommend it to a company that couldn’t afford SharePoint, could customize the asp.net site, had a content editor plan in place.