Bundling and Minification in ASP.NET

As more and more people use mobile devices to surf the web, it is becoming increasingly important that the websites and apps we build perform well with them. We’ve all tried loading sites on our smartphones – only to eventually give up in frustration as it loads slowly over a slow cellular network.

 If your site/app loads slowly like that, you are likely losing potential customers because of bad performance.  Even with powerful desktop machines, the load time of your site and perceived performance can make an enormous customer perception.

Most websites today are made up of multiple JavaScript and CSS files to separate the concerns and keep the code base tight. While this is a good practice from a coding point of view, it often has some unfortunate consequences for the overall performance of the website.
 Multiple JavaScript and CSS files require multiple HTTP requests from a browser – which in turn can slow down the performance load time.

Let’s say you wanted to reference all of the stylesheets in the “Styles” folder above on a page.  Today you’d have to add multiple CSS references to get all of them – which would translate into 6 separate HTTP requests

The new bundling/minification feature now allows you to instead bundle and minify all of the .css files in the Styles folder – simply by sending a URL request to the folder (in this case “styles”) with an appended “/css” path after it.
This will cause ASP.NET to scan the directory, bundle and minify the .css files within it, and send back a single HTTP response with all of the CSS content to the browser.

ASP.NET come up with bundling  and minfication to optimize all the Script/Style files.  so, before we use this feature in web application/MVC application development we have to install the relevant libraries using Package Console at VS IDES


Install-Package Microsoft-Asp.Net.Web.Optimization


After installing Optimization packages, need to specify the to be optimized files at global.asax.cs file like below

 System.Web.Optimization.BundleTable.Bundles.Add(new   System.Web.Optimization.ScriptBundle("~/bundle/js")
              .Include("~/scripts/*.js"));    // to bundle and optimize the script files

  System.Web.Optimization.BundleTable.Bundles.Add(new System.Web.Optimization.StyleBundle("~/bundle/css").Include("~/Styles/*.css")); // to bundle and optimize the styles

Comments

Popular posts from this blog

Email Sending through O365 using OAuth Protocol

IISRESET vs App Pool Recycling ?

Deploy .Net6.0 Web api with docker