We’ve just returned from Orlando, where we attended the 2015 Kentico Connection. As always, there was plenty of great dialogue with other Kentico partners and the Kentico team. Sessions were split into three tracks: developer, marketer, and the new “hands-on.” Between us, I think we managed to cover almost everything.
It kicked off with a keynote from Daniel Sieberg, the author of The Digital Diet. It was rather ironic to be reminded at a technical convention that we should all unplug and go out into the sun. This we had done on the Sunday when we took a day to hit up the Kennedy Space Center, which was, as they say in America, awesome. Why am I not writing this from my biodome on Mars? I was promised a biodome.
Warning, this post gets into the weeds. (I couldn’t help it.) If you want the short form, here it is:
We Saw Version 9!
- MVC = Wow, that looks cool … wait, how much functionality do we lose? … er ...
- CI = Hooray! Oh, and BizStream has a really nice module too!
- Reasons for a client to upgrade = reduced cost of ownership and some nice EMS updates
OK, still interested in reading more? Have a coffee handy? You might want a snack, too. I’ve gone through quite a lot of both writing this.
The big reveal was Kentico 9. Having had a few days to play around with it, here are my initial thoughts on some of the platform updates that were discussed:
Improved support for MVC in Kentico is a bit of a mixed bag. There’s been support for MVC since version 7, but only insofar as Kentico is built with ASP.Net, so bolting in ASP.Net MVC was always an option. On the admin side, it was nothing more than the ability to set a controller and view at the page level.
I’m going to post a more detailed blog on Kentico MVC, so I won’t get into the nitty gritty of how you build a site with it. For now, here are some of the factoids that I can determine from the pre-release. If I’m wrong about any of these, then please post corrections in the comments and I’ll update.
The new demo site is already up on GitHub. I was happily surprised to hear that the actual Kentico MVC DLLs will also be up there. That means that a core part of their platform is now open source. Round of applause to the MVC team at Kentico for sneaking this in!
With the new MVC approach the content editor basically gets the Form tab in the Pages module and the ability to preview the content. That’s it. Notably missing: the Page tab and the Design tab. Obviously this makes sense considering these were used for page building with the Portal Engine (our old friend Web Forms). That being said, the limited experience won’t make a whole lot of sense to editors familiar with Kentico or potential clients who are perhaps comparing Kentico to other CMS platforms that are fully MVC and support a richer page building experience.
For now, if you develop a site in Kentico MVC, you’ll need to push all page building features or content relationships into the Form tab -- e.g., have a field for “Left Column CTAs” rather than having a widget zone that gives the client the ability to do this more visually. Critically, you’ll lose content personalization. I’ve always wondered why content personalization isn’t a feature of the Form tab (the one tab that hangs around in the new MVC model). Perhaps now is the time to address that.
Should you consider the Kentico MVC implementation now?
Obviously this is a very easy sell to developers who will be eager to make the transition. For clients, it really comes down to your technical strategy. As it stands, you’ll lose platform functionality, but you’ll gain:
- A technology that Microsoft is continuing to invest in.
- A hard separation between content and presentation, which is certainly a trend when publishing to multiple digital channels (though potentially not worth the reduction in functionality at this stage if you are still fundamentally only publishing to a website and have an editor team comfortable with Kentico Portal Engine).
- A complete separation of the platform where you administer content from the website that consumes it. What does this mean? Upgrades and hotfixes to Kentico should be really simple considering a developer’s code for the site doesn’t live here anymore. This will save considerable time and allow developers to focus purely on API upgrades within the site codebase. That reduces cost of ownership for using and maintaining the platform.
From speaking with the Kentico developers responsible for the MVC implementation, it’s pretty obvious that they’re keen to quickly address the reduced functionality for the content editor while at the same time respecting the separation of content from presentation. Now that the code is in GitHub, they’re free from the Kentico release cycle for the core supporting DLLs that’ll become part of the separate MVC site.
For updates to the admin area, we still have to wait for formal releases. I’ve heard rumours of a page builder experience being developed at Kentico that is specific for MVC. I think this is vital. Separating content from presentation is the correct approach but can’t be the conclusion for an enterprise platform specifically built for managing web sites. You separate the content from presentation, but importantly provide people with the ability to combine the two (with presentation options specific to the target channel). For a website that means giving people some element of control, e.g. the ability to visually construct pages from content blocks. The form tab gives us an aspect of this control, but in my opinion not enough. If control is primarily in the hands of the developer then it feels like a step backwards.
Fingers crossed that page building and other features, like personalization support, make it into a 9.X release.
Continuous Integration (CI)
I haven’t yet got the new Kentico CI module up and running on a build with our Dev-Ops (we use TeamCity). I’ll post once we have been through the ringer on that. From the demo during the convention it looked like a great feature. Kentico will now serialize all objects to disk so they can be managed in source control. A nice side effect of this is that developers can now work not only with a local build, but with a local database as well. Looking forward to trying that out and moving away from the shared database / web farm approach.
The initial release of Kentico CI will support the selection and filtering of objects that you want to push to disk. This is managed in a config file that you could transform per release target if you need things to be different across your development pipeline. They have promised to throw in advanced filtering and other features in future releases.
Not all the updates are for geeks! Version 9 also brings improvements with personalization (now you can use activities and attributes) and also a new Integrated Campaign Management feature. We need to dig deeper into these features, but they should make some of the marketing users happy.
Kentico has introduced a formal program to support the development of third party modules. These “technology partners” will work alongside Kentico to develop custom modules that further extend the functionality of the platform. With the status of being official modules, the partner will be expected to support and release updates with new versions of Kentico. I instantly got a bunch of ideas (no, I won’t share) and am hoping we can carve out some time in 2016 to become technology partners.
Several companies have already been working on the pilot program, including our mates at BizStream. They have developed what looks to be a fantastic module that aids in deployment and comparison of environments. You can sign up for the beta here. This tool combined with the Kentico CI module should hopefully allow us to reduce the technical debt of deploying the platform by reducing the few but lingering manual steps.
Kentico also announced a cloud based SaaS for managing content development. Think GatherContent (the content collaboration platform) but specifically for Kentico. Draft provides content teams services for creating content in the early stages of a project when the strategy for a CMS implementation might not be fully baked. Once the CMS is up then you can use the new custom module in Kentico to import content directly from Draft into your Kentico content tree. The import feature really is the icing on the cake when comparing Draft to other content development tools on the market.
We host this site (built in Kentico) in Azure as an Azure Web App using an Azure SQL database. We have done a bunch of things on Azure this year and it is my new favourite thing. Bryan Soltis did a couple of sessions on Kentico and Azure. One interesting demo involved Azure Search. We have a number of complex searches to work on in 2016, so I’m definitely going to do some homework on this.
At the end of the event we were awarded formal recognition of our status as Kentico Gold Partners. Another fine trophy for the cabinet!
It’s great that Kentico had a major release announcement for this convention; the sessions are a lot more valuable when covering new ground. So, too, is having the Kentico team there in order to get more details about the new features and general platform roadmap. It’s still a little difficult to determine what the overall platform strategy is (outside of focusing on digital experience / marketing), especially when it comes to what type of clients Kentico are aiming themselves at: small, medium, large, or everyone.
Kentico is a fantastic platform that goes toe to toe with the likes of SiteCore or EpiServer -- just ask some of our developers who come from working with such products. These platforms, however, clearly aren’t the type that you would consider for small projects. By putting a stake in the ground and clearly targeting mid to large size companies they not only attract a different scale of client but also help provide larger opportunities and growth potential to their partners. They also attract bigger technical partners who then deliver real value with enterprise level platform extensions further improving the ecosystem for everyone. I for one would like to see similar clarity from Kentico.