Friday, May 2, 2014

Asp.NET MVC BundleConfig: {version} string

One of the neat features inside the ASP.NET Optimization library is the support for a {version} string. Before you had to update your BundleConfig.cs each time that you upgraded one of your included JavaScript/CSS libraries.  The{version} placeholder tells the bundler to look for a string in the form of N[.N[.N]] and pick the file with the highest numbers.

You can see this feature in action by looking at the BundleConfig you get out-of-the-box when creating a new ASP.NET MVC application:

This will load the latest JQuery file that can be found inside my Scripts folder:

image

You can do the same thing for Modernizr or any other library that uses the same versioning pattern.

There is only one thing missing in this feature; it only works when the version is part of the filename not of a folder. For example, when you use the Kendo UI libraries you’ll see that they don’t have a version number in every file but instead have the version number on the folder level.  Unfortunately this doesn’t work with the {version} number feature and you still have to update the references yourself:

image

image

1 comment:

Anonymous said...

You can store the kendo version on a constant or static readonly field, so you only have to change it once whenever you update kendo.

Of course, it's not an ideal workaround, but it's better than having to change it on every place (bundle config, layout files) where you use Kendo.