Blog

DotNest sites just got faster with Combinator resource sharing

As you may know, all DotNest sites have the Combinator module enabled (and configured) by default. This module automatically bundles and minifies static resources (like stylesheets and script files) to enhance client-side performance. Now Combinator got a lot faster with a feature called resource sharing. Resource sharing enables tenants in a multi-tenant Orchard application (like DotNest) to share processed resources with each other through the Default tenant. This means that if a resource was already processed for any of the tenants all other tenants will just use that without having to re-process it. In practice this means that e.g. admin pages will load much faster for tenants the first time: you don't have to wait for Combinator to process the resources (unless you're the first one to look at that page) since they will just be fetched from the shared location. So how much time did we manage to save you?

An almost perfect YSlow score for DotNest sites

Client-side performance matters - of course. That's why we optimized DotNest to be fast out of the box not just when work is done on the server but also on the client-side. For example the Combinator module is enabled and configured on all sites by default to give CSS and JS bundling and minifications. All static resources are served from a cookie-less (practically a CDN) endpoint (dotneststatic.com). And some more tricks... YSlow is a very easy to use tool to get some metrics about the client-side performance of a site. The tool measures performance on a 1-100 scale, 100 being the best. Out of the box a freshly created DotNest tenant has a YSlow score of 98! This hardly gets any better. See the screenshot below! Don't take our word for it, check it out yourself!

Smarter output cache for DotNest sites

As you may know from the relevant Knowledge Base page output caching for DotNest sites are managed by a reverse proxy: this means that a server is sitting in front of DotNest, caching pages and serving cached pages instantly. This proxy cache now got smarter: by utilizing the services of the built-in OutputCache module cache entries are now evicted immediately if a change is published! Caching still happens on the proxy, but now if you e.g. publish a new blogpost then all the relevant cache entries are cleared so your users can see the change instantly! Best of both worlds!