Thursday, February 21, 2013

My favorite #likethemost features in Sitefinity 5.4 release

Some time ago, Sitefinity Team asked the community "What is your favorite improvement?" - so here is my answer. Needless to say, my favorite features in Sitefinity's latest release - 5.4 are the one that our team has requested. As the biggest Telerik internal consumer of Sitefinity, we work closely with the development team to resolve issues that we experience with the CMS and those improvements are always part of the next official release - so our clients can also benefit.

Output caching for RSS

Probably, the biggest producer of RSS feeds from all Telerik sites are We have more than 30 RSS feeds exposing various subsets of our blogs, which are used by thousands of visitors (and their RSS clients) daily. We expect this improvement to decrease the heat on our servers in terms of CPU load and database queries and in general to boost the performance of our feeds. And best of all - it's super easy to start using this option, just set one of the output cache profiles you have already created in your website:
output cache settings screen

Automatically invalidate browser cache of the theme CSS files when files were changed on the server

This is something that bothered us a lot and especially our customers. The bad news was that we have no way to work around this behavior when using css files from theme. We developed all kind of custom control for other cases - when adding resources in the master page, on the page templates or even in a single page. But when it comes to the automatically added css files from the theme - we were helpless, we had to use primitive approaches like renaming the css file or writing the css so it doesn't break if it is not invalidate right away. This present to our visitors as all kind of horrible effects - broken layout, wrong images on wrong places (because of css sprite issues), etc. Sitefinity 5.4 must put end to this and we are eager to test it. Take a look at the query string on the asset request:

Decreased and optimized the client scripts server by Sitefinity public widget

Now, we don't want to take all credits for this improvement of course the product teams are always keen on performance improvements. And our front end teams are always there to generate new ideas and suggestions. We believe that at this point of the evolution of the CMS this was the biggest bottleneck in the loading and rendering process of the pages. Especially, when a lot of the built in widgets are used on a single page. We can probably came out with a comparison between on of our public sites running on 5.3 and 5.4 once they are upgraded on production. 

Mapping external templates to a widget, created by the Module Builder

This is probably my favorite bug fix from all and I have personally requested it a while ago. It made the work with the module builder really nasty when you need something more specific (especially, in the early days when there were no child parent relationships and you had to implement it yourself). Now, it comes the best part - to remove all user controls names OpenAccessDataProvider,3FDAE414-79B2-11E2-9A1F-A30D6188709B.ascx :) 

And finally - some other goodies that we didn't requested but would love to see them in action

The precompiled widget templates

We upload our websites every two weeks on two web nodes. every improvement that boost the start up time is highly appreciated. We have an upload in the next couple of days and I can't wait to see the results. 

Sitefinity Lightning server module distributed as NuGet package

We are using Lightning internally from the first days and it is now enabled on some of the public sites we had to evaluate it for our internal needs. With the aggressive release schedule that Lightning team has, it was a struggle to always have the latest bits. We are happy to see it as a NuGet package.

The new automated testing tool part of the SDK

This will probably be in my focus are for the next quarter as we are looking for a new automated infrastructure to cover our Sitefinity 5 web assets. As you may know, this is not a trivial task since you can't just unit test your custom functionality when referring the Sitefinity assemblies. I'm going to explore all the capabilities of this tool and probably will get back with some posts on how to use it for testing your own web applications. By the way, there is an interesting webinar coming on this topic on 28 Feb that I'm going to attend. You can also subscribe on 

Congrats to the Sitefinity Team for the successful release and many thanks for the support!

Note: With the just announced Roadmap for Sitefinity 6, my  next #likethemost post should be even more exciting.