My former student and colleague, Khang Vo, has just published a book on iOS performance optimization. Congratulations to him!
After a couple of months working on and off on this project, I was finally able to release the next major version of Combres, a .NET library which automates the application of many website optimization techniques in ASP.NET MVC or ASP.NET Web Forms applications.
Access to this CodePlex page to download Combres 2.0, together with source code, CHM API documentation, sample applications and config files.
For a full introduction to Combres 2.0, refer to this Code Project article.
Enjoy the improved performance!
Combres (i.e. Combine-Resources), is a very easy-to-use library which can be used to automate many steps that you would have to do yourself when applying many performance optimization techniques in your MVC and Web Form ASP.NET applications. This library is formerly known as ASP.NET MVC Client-side Resource Combine Library until I decided to retire that boring and lengthy name. Combres is also a major upgraded over the previous version. In a nutshell, the following features are supported by Combres:
- ConfigConfiguration settings are specified in an XML file which is monitored by Combres so that changes get noticed and applied immediately.
- Resource files can be static files in the web server, dynamically generated files, or remote files from external servers or web applications.
- Allow files in resource sets to be combined, minified, and gzipped before sending to browser. All is done using 1 single HTTP request per resource set. (Refer to Yslow’s performance rules #1, #4 and #10 to know why this is useful.)
- The minification part is performed by the great YUI Compressor library.
- Generate proper ETag and Expires/Cache-Control headers for every response as well as support server-side caching. (Refer to Yslow’s performance rules #3 and #13 to know why this is useful.)
- Integrated with ASP.NET routing engine and thus work equally well for both ASP.NET MVC and ASP.NET WebForm applications.
- Support Debugging mode, which won’t cache or minify contents at all to facilitate debugging.
- Extensibility via the filtering architecture. Anyone can easily add more functionality to the Combres engine by writing a custom filter. There are 2 built-in filters in the 1.0 beta release, which I will describe in this article.
I wrote about how to use and enhance this library in this Code Project article.
You can also get the binary, source code and sample from these links:
Hopes it helps!