Visual Studio 2011 developer preview
 introduced many great features. These  includes IDE features such as 
HTML Editor Enhancements,  Debugging features, parallel computing 
improvements, SharePoint development features etc. You can read the 
Announcing Visual Studio 11 Developer Preview post from 
Jason Zander’s WebLog
 to know more about the newly launched Visual Studio. In this post I am 
going talk few of  nice features of Visual Studio 2011 developer 
preview  related with ASP.NET.
Server Side Event Handler Generation From Markup
This is really a great addition in Visual Studio 2011 Developer 
Preview for ASP.NET developers. If you are familiar with  WPF and XMAL 
development in Visual Studio, it should be well known for you, because  
preview version of Visual Studio supports  generation of  event handler 
code from XMAL markup itself.  With Visual Studio 2011 developer 
preview, creating event handlers for ASP.NET controls have become 
significantly easy. You really don’t not need to write the event handler
 manually or  generating the even handler from design view.
In VS 2011 Developer preview, markup intellisense for all ASP.NET 
server-side events will show you list of exiting handlers and a value 
called 
“<Create New Event>” . Which means you can attach the event with some exiting event handler or  select “
create New event” to generate an new  handler with the right signature in the code-behind file.

If there is no control Id provided, Visual Studio will consider the 
control id as “Unnamed” and will generate the event handler as shown in 
below.
 

If you are wondering  about what will happen if there are multiple 
controls  without ids, does Visual studio going to attach with same 
event handler? No, It will  append an incremental number with event 
handler name.

Visual Studio will generate Event handler name as 
<ControlName>_Click if control id is provided.
 
 
Smart Tasks within the HTML Editor
Along with Design View of ASP.NET , Visual Studio 2011 developer added support to enable smart tasks within HTML Markup.

This helps to configure the controls from HTML Editor, instead of moving around both source and design view every time.
To know more about the above features please read 
HTML Editor Smart Tasks and Event Handler Generation (ASP.NET vNext Series) post by
 ScottGu
Extract To User Control
This is very handy and quick time saving features and a much required
 during code refactoring. Consider a situation where you have designed 
some web pages which are quite large or you have realized that it would 
have been better to put some part of web page in a user control  so that
 you can use it  in multiple places. Yes,  manually this is a big 
process  to create controls, copy – past code and refer them in page. 
Well, VS 2011 Developer preview  makes this very easier. In source of 
HTML Editor you will have option called “
Extract to User Control”
 .  Select the code block in HTML Editor which you want to move as user 
control and select “Extract to User Control” from context menu.

This will launch “Save As” dialog for user control. Provide the “
User Control Name” and click “Ok”

This will automatically create a User Control and same will be referred to your page automatically.
 
Page Inspector Developer Preview
Page Inspector is a new tool that integrated browser diagnostics 
tools into Visual Studio . Yes, you can take similar experience  of IE 
Developer toolbar with in Visual Studio itself. Page Inspector works in 
Visual Studio with Web Application projects and Web Site projects and 
helps you  to easily inspect the web pages, Css styling, quickly 
diagnose issues.
Page inspector  is not installed by default with VS 2011 Developer 
Preview.  You have to install it separately  and the best possible ways 
to installed it using “
Web Platform Installer” .

Once you have Page Installer installed, you will get “
View In Page Inspector” option with the source view , Design view and even from solution explorer.


Select “
View in Page Inspector”
 option to start inspecting the page. This will launch your page with in
 Visual Studio with other tooling support to inspect your pages using 
which you can start inspecting page styling with in visual studio 
itself.

This is just a quick introduction of Page Inspector Tool. I will suggest you to read out the
 Page Inspector v1 Developer Preview Release Notes for more information. Yes, this is a really great addition.
IIS Express Is Now Default Integrated Web Server
IIS Express is a lightweight, self-contained version of IIS optimized
 for developers.  Visual Studio 2010 SP1 allows you to build and test 
web applications using IIS Express instead of the built-in ASP.NET 
Development Web Server (Cassini) . But, Cassini was the default browser 
for Visual Studio 2010 SP1, and you need to change default value from 
project context menu to “
Use IIS Express” .

I have published one tip on 
How to Use IIS Express for all new file based web sites and projects ?
 with Visual Studio 2010 SP1. But now, you really don’t required to 
change that. This feature came as default settings in Visual Studio 2011
 Developer Preview.
Navigate to 
Tools > Options > Projects and Solutions and then Select “
Web Projects” . You will find 
“Use IIS Express for new File based web sites and projects” selected by default. Which means Visual Studio 2011 Developer Preview will use IIS Express as default web server.

If you want Cassini to be back as default, you can uncheck this 
option and if you want to use Cassini for a specific project, select “
Use Visual Studio Development Server..” from project context menu.
 
Enjoy Visual Studio 2011 Developer Preview and ASP.NET vNext !! 
 
Bundling and Minification in ASP.NET 4.5
Optimizing application performance  is a key element for business. 
There are several ways by which we can optimize the applications 
performance. It can be done either by server side 
code optimization,
 caching or some client side optimization. In this post I am going to 
discuss about one handy and smart way to optimize web applications 
performance using Bundling and 
Minification  features which is introduced with 
ASP.NET 4.5 Developer Preview. 
ASP.NET 4.5 Developer Preview introduced bundling, which combines multiple 
JavaScript files for faster loading with less number of requests for download and minification, which reduces the size of JavaScript and 
CSS
 files by removing unneeded characters .  Combination of these bundling 
and minification helps web pages to load very faster. Let’s have a looks
 how it works.
The below images shows the typical web 
application structure of  that contains CSS and Javascript files along 
with other asp.net elements.

Scripts folder contains all the JavaScript files where as Styles 
contains all the CSS file. CSS  and JS files takes milliseconds of time 
 to load into the browser though it’s really matter how much time it’s 
takes to load the CSS and JS files.
This is how you refer the JavaScript and CSS in applications markup.

Run your application and  inspect the loaded Css and JavaScript files using 
IE Developer toolbar . You can see all the mentioned css and JavaScript in the html markup  loaded individually.

To take a more granular look on the loading perspective, you can use 
the IE Developer toolbar. You will find there are individual request to 
download the css and javascript files and each of them taken individual 
time.

You can take a quick look using 
YSlow statistics viewer for total number of request for javascript and css files.
 ASP.NET 4.5 Introduced Bundling and Minifying
ASP.NET 4.5 Introduced Bundling and Minifying
 the files which reduce the number of requests by merging the files into
 a single one. Bundling combines multiple JavaScript files for faster 
loading and reduced the number of request to download the files and 
minification reduces the size of JavaScript and CSS files by removing 
unneeded characters.
To apply the binding and  Minifying first of all you need to refer 
the folder for css and javascript instead of individual files. Along 
with the folder name you have the append 
css for CSS folder and 
js for JavaScript folder.

Once you are done with this changes, you have to enable the 
Bundling on 
Application_Start() event of 
global.asax.cs  file

That’s all. Run the application once again and inspect the save thing for 
CSS and 
JavaScript in 
IE Developer Toolbar. Interestingly you will find only one
 CSS File and one 
JavaScript has been loaded.

You can also use IE Developer toolbar to checkout the result. Yes, 
there is only two request, one for CSS and another for JavaScript. You 
can also find the significant amount of changes in file size and number 
of request for JS and CSS file also reduced.
 
 
Here is some inside view,
.NET 4.5 introduced a new class called 
BundleTable provides programmatic access to the collection of registered 
Bundle objects in an ASP.NET application. 
Bundle object  contains the  
list of JavaScript or CSS files . ASP.NET runtime dynamically combines into a single virtual file that a browser can retrieve by using a single request.

Every elements of Bundle object is a key value pair . Key is a string
 that define either “JS” or “Css” and Values contains the the type of  
System.Web.Optimization.DynamicFolderBundle.

You can create your custom bundles for JavaScript  as well as CSS.  Below code snippets shows the same.
| 01 | voidApplication_Start(objectsender, EventArgs e) | 
 
| 03 |           BundleTable.Bundles.EnableDefaultBundles(); | 
 
| 05 |           var jSBundle = newBundle("~/JsMinify", typeof(JsMinify)); | 
 
| 07 |           jSBundle.AddFile("~/Scripts/CustomFunction.js"); | 
 
| 08 |           jSBundle.AddFile("~/Scripts/jquery-1.4.1-vsdoc.js"); | 
 
| 09 |           jSBundle.AddFile("~/Scripts/jquery-1.4.1.js"); | 
 
| 10 |           jSBundle.AddFile("~/Scripts/JSONCreate.js"); | 
 
| 12 |           BundleTable.Bundles.Add(jSBundle); | 
 
| 14 |           var cssBundle = newBundle("~/CSSMinify", typeof(CssMinify)); | 
 
| 16 |           cssBundle.AddFile("~/Styles/Collection.css"); | 
 
| 17 |           cssBundle.AddFile("~/Styles/GlobalSupport.css"); | 
 
| 18 |           cssBundle.AddFile("~/Styles/MasterStyle.css"); | 
 
| 19 |           cssBundle.AddFile("~/Styles/MenuStyle.css"); | 
 
| 20 |           cssBundle.AddFile("~/Styles/Minimum.css"); | 
 
| 21 |           cssBundle.AddFile("~/Styles/Ribbon.css"); | 
 
| 22 |           cssBundle.AddFile("~/Styles/Site.css"); | 
 
| 24 |           BundleTable.Bundles.Add(cssBundle); | 
 
 
 
Once you have your own bundle object, you can specify the same in your html markup as shown in below

Now, run the application and inspect your own created bundle in IE Developer toolbar.

One of the biggest advantages of this custom bundle objects is, you 
can refer multiple directories as shown in below code snippet.

As shown in above code snippet, we are adding one directory for bundling with 
 
No comments :
Post a Comment