24 March 2010

What’s new in EPiServer 6? A review of the new features

EPiServer 6 was released yesterday, though I have been playing with the various beta and release candidate builds since last year. This new version is very much geared towards enhancing the experience for content editors and administrators, though there are some nice new features for developers too.

First impressions are very positive. It installs smoothly, plays well with EPiServer 5, and lets you set up a basic site through EPiServer’s Deployment Center with the minimum of fuss. The example templates that it ships with (the dreaded "public templates" project) are pretty bland, but they are only really intended as a "way in" for EPiServer novices and I hear that a package of more inspiring demonstration sites are planned for next month.

Dashboard and gadgets

The console for content editors and site administrators is a big improvement, with considerable polish added and some subtle re-organisation of controls helping to de-clutter the interface and improve usability. As well as the familiar Edit and Administration modes there is now a personalised dashboard called the "Online Centre" which is designed as an entry point for all content editors, administrators, developers and website owners. Any user can augment their dashboard with a selection of small, self-contained plug-ins – or "gadgets" – that let them build up a personalised view of website activity.

Dashboard gadgets are one of the "big ideas" for this version of EPiServer. The technology for implementing gadgets is a modified version of Microsoft’s MVC pattern for ASP.NET, which can be a little obtuse at first and I do wonder why this was chosen as a route rather than another candidate such as ASP.NET custom controls or even web parts. That said, this approach does fit with EPiServer’s commitment to encouraging code re-use and once mastered the gadget framework can be a powerful means of providing genuinely portable extensions to the EPiServer environment.

The set of gadgets that ship with EPiServer 6 are solid if a little uninspiring and the hope is that more interesting ideas will be thrown up by the growing EPiServer development community. The recent EPiServer Gadget Contest (in which I came a respectable third, even if I was shooting for the TV) did give rise to some interesting ideas around integration with website analytics, social media and systems monitoring. As  more developers get their head around the modified MVC architecture then the availablility of reliable and useful gadgets will increase.

New features for content editors

There are a host of new features for content editors, some over-due, such as organising content via drag-and-drop, global content search and being able to set access rights by language. The addition of the report centre also provides a centralised home for housekeeping reports that will make it easier for content editors to manage the status of content and internal site links.

Although it has been possible to insert your own XHTML editor into EPiServer for a while, EPiServer have taken the plunge and replaced their old editor with one based on the more widely-used and flexible TinyMCE control. The main benefits here are that the control is easier to extend and will help to guarantee the creation of standards-compliant XHTML through a clean-up process that isn’t available with the old editor. There are a few teething problems with the new editor though around CSS handling and spell checking – one assumes that these will be patched pretty soon.

For developers: The dynamic data store and improved initialisation

The EPiServer API has a few enhancements including the dynamic data store, an API extension for storing and retrieving ad-hoc data structures into the EPiServer database. This can be linked to EPiServer pages via Page Objects, which provide an API extension for associating content in the dynamic data store with EPiServer pages.

Although this kind of functionality makes developers salivate, it does make a cautious old duffer like me shudder. In the wrong hands a generic data store like this could really be a weapon of mass destruction. In my view, data should be designed and stored in a proper relational structure rather than being stuffed into a data store that can only be read through an API. That said, it does have some uses for application-centric data, such as user settings or as a persisted cache – I just would be reluctant to use it for anything else. After all, members of the EPiServer development team have pointed out that this functionality should be "used responsibly".

More useful, although a little more obscure, are the improvements in EpiServer’s initialisation process which has been integrated into Microsoft’s Managed Extensibility Framework (MEF) . In simple terms, MEF provides a run-time discovery mechanism for application extensions allowing you greater flexibility over how you architect solutions and greater scope for code re-use. This kind of integration with Microsoft patterns are one of the things I like most about EPiServer’s architectural approach as it attempts to provide a nicely extendable and pluggable architecture using commonly understood techniques. The full version for MEF won’t be available until version 4.0 of the .NET framework ships, but I’m very pleased that EPiServer have decided to include it now.

Conclusion: a no-brainer upgrade

More of an evolution than a revolution, EPiServer 6 is a big improvement for content editors but it also provides some enhancements that will give developers and architects more options for extending the environment and re-using code.

The upgrade path from EPiServer 5 is pretty straightforward, with minimal development work required and inexpensive licensing via software assurance. It also offers a more compelling business case for EPiServer 4 users to invest in the development work required to upgrade than was the case with EPiServer 5. Moving up from version 4 is more of a migration than an upgrade and the extensive template re-development work required can be difficult to justify solely on the basis of performance improvements and a re-jigged API.  However, the more tangible benefits to content editors delivered with EPiServer 6, will make it much easier to justify the case for investing in the migration.

Filed under CMS.