Important note: Please read this article with a grain of salt and note my follow-up post.
At my previous job as a web developer at a B2C magazine publisher, the developer team I was in was looking for CMS solutions that could be piggybacked to quickly build and sell web sites for advertisers, like microsites except being scalable to support integrating e-commerce and educational content easily. For full-out magazine content, the company had been using Krang, which is a CMS written in Perl for mySql and as such was not considerable for this initiative as we were ASP.NET developers. We looked at a number of smallish CMS systems for ASP.NET -- Umbraco, Graffiti, SubSonic web starter kit, etc. Most of these were laughable as options, even Umbraco had to be shrugged off. DotNetNuke wasn't an option because it's a prefab portal, not really a CMS, and frankly it's embarrassing (read: ugly). Sharepoint wasn't even worth considering because it, too, is a portal, and such a bear and a weird mutt of poorly integrated technologies and technology designs, plus it's an installation nightmare and we didn't have the hours it takes to get the thing installed when we knew we wouldn't likely like it. We also considered CMS's using "wiki" nomenclature, psuedo-wikis if you will. But those are not appropriate for the job.
But I recently began a job transition to another magazine publisher, this one B2B, a move that was mostly coincidence but they had the same need for a CMS--though on a larger scale, i.e. for their magazine web sites, not for microsites--but had already made the decision before I was interviewed. They'd researched many, many CMS's and considered all of them but the CMS that won in their research, hands down, was one I'd never heard of called SiteCore.
SiteCore's desktop uses a XAML-to-XHTML engine called Sheer UI to create a beautiful content editor and developer user interface.
I'm not entirely sure why I hadn't heard of SiteCore, they've actually been around since ASP.NET v1.0. But I believe it probably has to do with the fact that they've apparently gone through a very large number and extent of overhauls and evolution, such that those who evaluated SiteCore even recently might not have been here now to see what sort of monumental, breathtaking system this puppy is today.
I just completed training and am now a certified SiteCore developer. But before I took the training I was completely stoked about what was coming--the opportunity to work with this software.
SiteCore v6 is built upon ASP.NET 3.5, and it is impressively respectful of maintaining an ASP.NET-oriented developer/extensible workflow. That is to say, unlike other CMS's that try to break out of the box by using IronPython scripts (like Umbraco) or odd proprietary XML markup (SharePoint's CAML) or buried in a virtual machine image with a PHP front-end (like MindTouch Deki, yuck), SiteCore allows you to extend the CMS using your choice of ASPX pages with placeholders, ASCX controls with placeholders, C# code-only web controls, and .NET-extendable XSLT templates. Everything else, from articles to data records to drop-down options to security features to workflow states, everything else is just an "item" that is just a tree node with configurable settings. From what I can tell, on the developer & administrator end there aren't a lot of .NET 3.5 features in use right now--no LINQ, for example--but that's not the point. The point is that SiteCore makes the perfect CMS core of a site that you can extend with ASP.NET 3.5 with ease and without having to shoehorn anything because SiteCore is built to be respectful of pure ASP.NET. Even the pipelines and events are configurable and extensible, as all of the pipeline stages and event handlers are declared in a huge web.config. The web.config file also exposes niceties like Lucene.net for the content developers, and multi-site configurations. And yes, you use Visual Studio 2008 to extend a SiteCore-based site.
The best part about SiteCore, which I just found out about today, is that there is a free, one-user version you can download called SiteCore Xpress
and play with right now.
The funny thing is, there are really very few "bad smells" with this system. The whole thing just feels right. It was designed right. It doesn't feel awkward, kludgy, or "shortcutted" in any way. If it does smell, it has more of a new car smell than a body odor smell.
They say a picture is worth a thousand words, but then a video is worth a million.
Now, be aware, the pro versions of SiteCore don't come cheap. In my opinion, you get what you pay for because this product is just so profoundly good, it's kinda like Apple's expensive products, it offers a fixed set of functions done right and no weirdness, just goodness. Where SiteCore differs from Apple, though, is in its completeness. After sitting through 3 days of training this week I kept having to pull up my jaw because the level of detail those guys went through to cover all aspects of real CMS and yet to do it cleanly without making a mess is just .. plain .. insane. I mean, just to throw some examples out there ...
- Tweakable URL routing
- *Real* content versioning, with a side-by-side diff tool.
- Extensive (i.e. unlimited) multi-language support for content (and multi-lingual content editing / development in a few different prefab languages)
- Extensive ACL-like security on a per-content-item basis
- Field-level security on content fields!
- Multiple inheritence for tree items!
- Consolidated editing and publishing environment (that can be optionally staged in isolation)
- Configurable workflows (i.e. approval processes)
- Application-extensible -- build your own applications for the SiteCore desktop experience (for content editors to experience) using simple .ASPX files (no Sheer UI XML required, that stuff just runs the core)
- Per-item performance metering (i.e. in a "tooltip window", this content item takes 10ms to render)
- On-the-fly field editing while in preview mode
- An API fully exposing everything you need to dynamically create or access CMS data
- A nice "developer network" web site with detailed documentation and guides
- A security model that even lets you use Active Directory!
.. the list would just go on and on.
The best part about SiteCore, which I just found out about today, is that there is a free, one-user version you can download called SiteCore Xpress and play with right now. From what I can tell, there are no other strings attached, i.e. no logo or ad requirements and no trial period, other than it only allows for one user (administrator), can only run on one server, and isn't licensed for commercial use. [More info] Unfortunately the one other down side (and possible deal-killer, but not likely) is that the Xpress version is v5.3, not v6. But at least it's v5.3 and not v5.
From what I've learned, v5.3 was about the time when SiteCore really reached a turning point and started making big in-roads to U.S. sales. (SiteCore is apparently developed in Denmark.) v5.3 being the last product update before the very recently released (Sep '08?) v6, it's still a very good product. I didn't use v5.3, but from what I know, I believe the things that are different in v5.3 vs. v6 are:
- v5.3 is based on .NET 3.0 / ASP.NET 2.0, not .NET 3.5 / ASP.NET 3.5.
- v5.3 has a proprietary thing called "masters", which were dropped in v6. In v5.3, new items had to be instantiated with templates+masters, but in v6 only templates are required.
- The security subsystem might've been overhauled or tweaked out, such as its newly revised configuration UI.
- v5.3 had huge performance improvements over previous versions. v6 probably has huge performance improvements on top of those, particularly as the core now takes advantage of ASP.NET 3.5 (if indeed it does, I don't know)
- A ridiculous bug was fixed in v6 where in v5.3 cached content would process the layout anyway before returning the cached version (duh) which rumor is SiteCore isn't owning up to fix in v5.x.
- v6 has a slick optional Page Editor which is basically a preview of the actual page (with formatting) but with inline editable regions that actually edit the CMS items on the fly.
- v6 has a new validation component (to slap your content editors around a bit with a fish)
- v6 has a new Grid Designer that's a nice addition but really isn't necessary
There's a review on v6 over here: http://www.cmswire.com/cms/web-cms/web-cms-sitecore-6-customer-driven-usability-002840.php
Anyway, this isn't a sales pitch as I'm just a new user, not a business partner (or at least, not yet! *grin*), but it's something I wanted to share. I love cool developer technology, particularly for .NET, and above all ASP.NET solutions I've seen on the market so far, open source or commercial, CMS or otherwise, I think SiteCore v6 sets the bar for all web applications to try to measure up to. Literally. And if you don't believe me, go download SiteCore Xpress and see for yourself.