<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>.NET Rumbles</title>
	
	<link>http://www.kashyapas.com</link>
	<description>my personal encounter with .NET</description>
	<lastBuildDate>Thu, 16 May 2013 01:30:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/KashyapasnetRumbles" /><feedburner:info uri="kashyapasnetrumbles" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>12.58</geo:lat><geo:long>77.38</geo:long><feedburner:emailServiceId>KashyapasnetRumbles</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Web API in ASP.NET Web Forms Application</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/UXPoKHGUXCw/</link>
		<comments>http://www.kashyapas.com/2013/05/16/web-api-in-asp-net-web-forms-application/#comments</comments>
		<pubDate>Thu, 16 May 2013 01:30:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[web api]]></category>
		<category><![CDATA[webforms]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1420</guid>
		<description><![CDATA[With the release of ASP.NET MVC 4 one of the exciting features packed in the release was ASP.NET Web API. In a nutshell, ASP.NET Web API is a new framework for creating HTTP services that can reach a broad range of clients including browsers and mobile devices. ASP.NET Web API is also an ideal platform for building RESTful services. Microsoft &#8230; <a href="http://www.kashyapas.com/2013/05/16/web-api-in-asp-net-web-forms-application/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p align="justify">With the release of ASP.NET MVC 4 one of the exciting features packed in the release was ASP.NET Web API. In a nutshell, ASP.NET Web API is a new framework for creating HTTP services that can reach a broad range of clients including browsers and mobile devices. ASP.NET Web API is also an ideal platform for building RESTful services.</p>
<p align="justify">Microsoft shipped “ASP.NET and Web Tools 2012.2” update sometime in February 2013. This included updated ASP.NET MVC Templates, ASP.NET Web API, SignalR and Friendly URLs. So if you take the latest you get all the latest bits ASP.NET has to offer so far. Rest of this post assumes that you have installed the 2012.2 bits. I assume you know the Web API fundamentals like API Controller,&nbsp; Action and Route configuration as I wont get into discussing those.</p>
<p align="justify">In this post, we will see how Web API can be created in a Web Form application or project. I will be using Visual Studio Express 2012 for Web as my IDE for this post.</p>
<p align="justify"><strong>Create ASP.NET Web Form Project:</strong></p>
<p align="justify">To start out with, create a empty “ASP.NET Empty Web Application” or “ASP.NET Web Forms Application”. Both of these templates are Web Forms based. So doesn’t matter which one you choose. For the sake of the demo I will choose ASP.NET Empty Web Application. Fire up a Visual Studio Express 2012 for Web, File &gt; New Project &gt; ASP.NET Empty Web Application and give a name to the project. </p>
<p align="center"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image1.png"><font color="#333333"></font><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb1.png" width="604" height="346"></a>Fig 1: New Project Dialog</p>
<p align="justify">Visual Studio will create the project and you should have the infrastructure ready. And here is how the solution will look like:</p>
<p align="center"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image2.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb2.png" width="304" height="220"></a><br />Fig 2: Solution Explorer </p>
<p align="justify"><strong>Adding a Web API Controller:</strong></p>
<p align="justify">Since Web API is kind of API we are building lets bring in some best practice here. It is good to have a folder created with the name “Api” and store all your Web API controllers here. With the latest release of ASP.NET, you can create Controllers in any folder you like. So go ahead and create a new folder and name it API. Here is how the Solution Explorer will look like:</p>
<p align="center"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image3.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb3.png" width="244" height="177"></a><br />Fig 3: Api Folder</p>
<p align="justify">Now lets add a Web API Controller. Right click on Api folder, select Add &gt; New Item. You will find a new Item Template called “Web API Controller Class”. Select Web API Controller Class Item. Note that Visual Studio names the class as ValuesController1.cs – you can rename it to ValuesController. Make the changes and click Add.</p>
<p align="center"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image4.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb4.png" width="604" height="354"></a><br />Fig 4: Adding Web API Controller Class</p>
<p align="justify">Here is the glimpse of the code inside ValuesController class provided by default:</p>
<p align="justify"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image5.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb5.png" width="604" height="803"></a>&nbsp;<br />Fig 5: Values Controller Class</p>
<p align="justify">There is one magic Visual Studio does under the hood when you add a Web API Controller class. It adds the following packages which is required for making the Web API work:</p>
<ul>
<li>
<div align="justify">Microsoft.AspNet.WebApi</div>
</li>
<li>
<div align="justify">Microsoft.AspNet.WebApi.Client</div>
</li>
<li>
<div align="justify">Microsoft.AspNet.WebApi.Core</div>
</li>
<li>
<div align="justify">Microsoft.AspNet.WebApi.WebHost</div>
</li>
<li>
<div align="justify">Microsoft.Net.Http</div>
</li>
<li>
<div align="justify">Newtonsoft.Json</div>
</li>
</ul>
<p align="justify">You can see that there is a packages.config file added to the solution and it is used by Nuget package manager to keep track of the packages. The above packages make it possible for Web API to be hosted within the Web Forms application or project. So, is this all to make the Web API run – well not yet. Web API works with the routes and we have not yet configured the routing engine to grab the request and see if it is web api request. Lets do that in next section.</p>
<p align="justify"><strong>Setting up Web API Routes:</strong></p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p align="justify">One thing you will notice in the solution is – it does not contain a Global.asax file. Well that’s why the name of the template “ASP.NET Empty Web Application” its literally empty and you need to add things needed manually. So first lets go ahead and add a Global.asax. Right click on the project, select Add &gt; New Item &gt; Global Application Class. You will get the blank Global.asax i.e. the class will have all the event handler added up but empty. The event handler which is of importance for us is Application_Start. Lets now configure the Http Routing. As a best practice create a new folder called App_Start at the root of the project. Add a new class, call it WebApiConfig.cs and make it a static class. Idea behind naming the folder as App_Start is that, codes in this folder are the first to be called or executed when the app starts. So here is how the solution explorer looks like now:</p>
<p align="center"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image6.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb6.png" width="304" height="323"></a><br />Fig 6: Solution Explorer</p>
<p align="justify">Now add the following code to WebApiConfig.cs. We are creating a static method called Register and it will register the Http routes for the application:</p>
<div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: 'Courier New', courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4">
<div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4">
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum1" style="color: #606060">   1:</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> Register(HttpConfiguration config)</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum2" style="color: #606060">   2:</span> {</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum3" style="color: #606060">   3:</span>     config.Routes.MapHttpRoute(</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum4" style="color: #606060">   4:</span>         name: <span style="color: #006080">"DefaultApi"</span>,</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum5" style="color: #606060">   5:</span>         routeTemplate: <span style="color: #006080">"api/{controller}/{id}"</span>,</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum6" style="color: #606060">   6:</span>         defaults: <span style="color: #0000ff">new</span> { id = RouteParameter.Optional }</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum7" style="color: #606060">   7:</span>     );</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum8" style="color: #606060">   8:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="center">Listing 1: WebApiConfig Register method</p>
<p align="justify">What we are doing in Register method is:</p>
<ul>
<li>
<div align="justify">Get the HttpConfiguration object</div>
</li>
<li>
<div align="justify">Use the Routes table to configure routes</div>
</li>
<li>
<div align="justify">Map a Http Route to our API by providing a pattern</div>
</li>
<li>
<div align="justify">Default pattern is to look for “api/{controller}/{id} – where {id} is optional</div>
</li>
</ul>
<p align="justify">Here is the complete code of WebApiConfig.cs file:</p>
<div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: 'Courier New', courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4">
<div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4">
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum1" style="color: #606060">   1:</span> <span style="color: #0000ff">using</span> System;</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum2" style="color: #606060">   2:</span> <span style="color: #0000ff">using</span> System.Collections.Generic;</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum3" style="color: #606060">   3:</span> <span style="color: #0000ff">using</span> System.Linq;</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum4" style="color: #606060">   4:</span> <span style="color: #0000ff">using</span> System.Web;</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum5" style="color: #606060">   5:</span> <span style="color: #0000ff">using</span> System.Web.Http;</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum6" style="color: #606060">   6:</span>&nbsp; </pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum7" style="color: #606060">   7:</span> <span style="color: #0000ff">namespace</span> WebAPIinWebForms.App_Start</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum8" style="color: #606060">   8:</span> {</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum9" style="color: #606060">   9:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">class</span> WebApiConfig</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum10" style="color: #606060">  10:</span>     {</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum11" style="color: #606060">  11:</span>         <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> Register(HttpConfiguration config)</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum12" style="color: #606060">  12:</span>         {</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum13" style="color: #606060">  13:</span>             config.Routes.MapHttpRoute(</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum14" style="color: #606060">  14:</span>                 name: <span style="color: #006080">"DefaultApi"</span>,</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum15" style="color: #606060">  15:</span>                 routeTemplate: <span style="color: #006080">"api/{controller}/{id}"</span>,</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum16" style="color: #606060">  16:</span>                 defaults: <span style="color: #0000ff">new</span> { id = RouteParameter.Optional }</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum17" style="color: #606060">  17:</span>             );</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum18" style="color: #606060">  18:</span>         }</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum19" style="color: #606060">  19:</span>     }</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum20" style="color: #606060">  20:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="center">Listing 2: WebApiConfig class</p>
<p align="justify">Now, this is just a definition but where do we actually call it. Remember we added a Global.asax file – we will call the Register method from the Application_Start event handler. Here is the code to do that:</p>
<div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: 'Courier New', courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4">
<div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4">
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum1" style="color: #606060">   1:</span> <span style="color: #0000ff">protected</span> <span style="color: #0000ff">void</span> Application_Start(<span style="color: #0000ff">object</span> sender, EventArgs e)</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum2" style="color: #606060">   2:</span> {</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"><span id="lnum3" style="color: #606060">   3:</span>    WebApiConfig.Register(GlobalConfiguration.Configuration);</pre>
<p><!--CRLF-->
<pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"><span id="lnum4" style="color: #606060">   4:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="center">Listing 3: Global.asax Application_Start event handler</p>
<p>And we have a Web API created in Web Forms project now. Next lets see how to test it out.</p>
<p><strong>Testing Web API:</strong></p>
<p>At this moment if you build and run the project, browser may show you 403 and that is expected as we do not have an Default.aspx or index.html. Don’t worry as we are interested in testing the API controller. Remember the default patterns we set up for API routes – our Web API is available at a URL “<a href="http://localhost:&lt;port&gt;/api/Values"><strong>http://localhost:&lt;port&gt;/api/Values</strong></a>”. So type the URL and hit enter. IE will show you the response as a JSON value. This is because IE always sends the Accept header as application.json and Web API server implementation will respect the content negotiation and send the appropriate data type to the client.</p>
<p align="center"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image7.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb7.png" width="604" height="374"></a><br />Fig 7: Testing API Controller in IE </p>
<p>Here is the same response when seen from Firefox:</p>
<p align="center"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image8.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb8.png" width="604" height="458"></a><br />Fig 8: Testing API Controller in Firefox</p>
<p align="left"><strong>Summary:</strong></p>
<p align="justify">This was a post intended to show case the fact that Web API are not meant only for ASP.NET MVC project types but it can be hosted even in ASP.NET Web Forms project too. Thanks to the tooling, Visual Studio does all the magic under the hoods when you add a Item template of type “Web API Controller Class”. We saw how easy it is to set up a api controller and test it.&nbsp; Hope this gives you a jump start on creating web API in web forms project. Do let me know if you have any feedback on this article. It will help me better myself.</p>
<p align="justify">Till next time – Happy Coding. Code with Passion, Decode with Patience.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=UXPoKHGUXCw:SVsGFhAXh-k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=UXPoKHGUXCw:SVsGFhAXh-k:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=UXPoKHGUXCw:SVsGFhAXh-k:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=UXPoKHGUXCw:SVsGFhAXh-k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=UXPoKHGUXCw:SVsGFhAXh-k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=UXPoKHGUXCw:SVsGFhAXh-k:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/UXPoKHGUXCw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/05/16/web-api-in-asp-net-web-forms-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/05/16/web-api-in-asp-net-web-forms-application/</feedburner:origLink></item>
		<item>
		<title>Gaurav Kapur – Bollywood Personality – Uncut &amp; Unedited</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/DMcAYlM0ryk/</link>
		<comments>http://www.kashyapas.com/2013/05/15/gaurav-kapur-bollywood-personality-uncut-unedited/#comments</comments>
		<pubDate>Wed, 15 May 2013 04:30:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[Uncut & Unedited]]></category>
		<category><![CDATA[bollywood]]></category>
		<category><![CDATA[uncut]]></category>
		<category><![CDATA[unedited]]></category>
		<category><![CDATA[windows8]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1396</guid>
		<description><![CDATA[Back again with one more episode of Uncut &#38; Unedited. This is episode number 30. I have a very interesting guest on this episode. He is none other than Gaurav Kapur – Multi Media Mercenary and Bollywood personality. If you are a hard core cricket fan I am pretty sure you wont be missing the Indian Premiere League 2013 that &#8230; <a href="http://www.kashyapas.com/2013/05/15/gaurav-kapur-bollywood-personality-uncut-unedited/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p align="justify">Back again with one more episode of Uncut &amp; Unedited. This is episode number 30. I have a very interesting guest on this episode. He is none other than Gaurav Kapur – Multi Media Mercenary and Bollywood personality. If you are a hard core cricket fan I am pretty sure you wont be missing the Indian Premiere League 2013 that is happening and Gaurav Kapur is one of the anchors – on the field and inside the studio. He was in Bangalore during Windows 8 launch event by Microsoft during Oct 2012. I was fortunate enough to grab him and get his 10 minutes out of the busy schedule he had.</p>
<p align="justify">
<div class="wp-caption aligncenter" style="width: 290px"><img alt="Gaurav Kapur" src="http://gauravkapur.in/wp-content/uploads/2012/01/gk_header1.jpg" title="Gaurav Kapur" width="280" height="300" /><p class="wp-caption-text">Gaurav Kapur</p></div>
</p>
<p align="justify">Being a Bollywood personality, he showed a lot of knowledge on Windows 8. So I just couldn’t let him go and decided to interview him and get his view on Windows 8. You will be amazed to hear him talk technicalities of Windows 8. He shares his experience on his usage of Windows 8 OS. Here are some of the questions I asked to him:</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<ul>
<li>
<div align="justify">Who is Gaurav Kapur ?</div>
</li>
<li>
<div align="justify">Is Gaurav Kapur a tech savvy person ?</div>
</li>
<li>
<div align="justify">His favorite Gadgets</div>
</li>
<li>
<div align="justify">His experience with Windows 8</div>
</li>
<li>
<div align="justify">One feature he likes the most in Windows 8</div>
</li>
<li>
<div align="justify">His experience with touch devices</div>
</li>
</ul>
<p align="justify">Here is the video of the interview;</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:050784d5-5fef-4afb-9e52-5139e3ee6d9d" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"><embed src="http://www.youtube.com/v/fKHjmH_LnS8?hd=1" type="application/x-shockwave-flash" wmode="transparent" width="631" height="354"></embed>
<div style="width:631px;clear:both;font-size:.8em">Gaurav Kapur–Bollywood Personality–Uncut &#038; Unedited</div>
</div>
<p align="justify">I had a great time shooting this interview. Gaurav Kapur is really a tech savvy and fun person to talk to. Hope you too will enjoy this episode. Do let me know your feedback if any.</p>
<p align="justify">Till next time – Happy Coding. </p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=DMcAYlM0ryk:YDiRT-mPws8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=DMcAYlM0ryk:YDiRT-mPws8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=DMcAYlM0ryk:YDiRT-mPws8:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=DMcAYlM0ryk:YDiRT-mPws8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=DMcAYlM0ryk:YDiRT-mPws8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=DMcAYlM0ryk:YDiRT-mPws8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/DMcAYlM0ryk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/05/15/gaurav-kapur-bollywood-personality-uncut-unedited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/05/15/gaurav-kapur-bollywood-personality-uncut-unedited/</feedburner:origLink></item>
		<item>
		<title>I am an Author …</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/3wNmCR9P_u0/</link>
		<comments>http://www.kashyapas.com/2013/05/11/i-am-an-author/#comments</comments>
		<pubDate>Sat, 11 May 2013 07:55:12 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[My Speakings]]></category>
		<category><![CDATA[author]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[f#]]></category>
		<category><![CDATA[wp7.5]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1392</guid>
		<description><![CDATA[Last year somewhere around May/June time frame one of my good friend Senthil Kumar passed on an opportunity that came to him. He was approached by Packt Publication to write a book on Windows Phone with F#. He couldn’t take it up and passed on the opportunity to me. June was a period of transition for me and I was &#8230; <a href="http://www.kashyapas.com/2013/05/11/i-am-an-author/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p align="justify">Last year somewhere around May/June time frame one of my good friend Senthil Kumar passed on an opportunity that came to him. He was approached by Packt Publication to write a book on Windows Phone with F#. He couldn’t take it up and passed on the opportunity to me. June was a period of transition for me and I was leaving my previous job and moving on to a new role at Telerik. I had asked Telerik that I will join from July 1. So I had some time between June 8 to July 1. I took the book writing assignment from Packt and everything was settled and only thing left was to start writing. I have written many blogs but book writing is a completely new experience. So I wanted to experience that and I jumped on.</p>
<p align="justify"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/image.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/05/image_thumb.png" width="148" height="174"></a></p>
<p align="justify">So my journey on “Windows Phone 7.5 Application Development with F#”. Had to learn a little bit of F# to start writing the book. It was a great experience for me while writing this book. I had to do my first drafts and that went through a technical review by 2 people. After those reviews I had to provide my second drafts. Once that passed the technical editorial team at Packt Publishing was performing digitization and they would come up with questions which I had to take care. So with almost close to 10 months of hard work I could see my words getting closer to be printed as a book.</p>
<p align="justify">On April 17, 2013 I was overjoyed to learn from Packt Publication that my book has been printed. I just couldn’t believe that the hard work of 10 months has finally paid off. So here is pic of the printed book:</p>
<p align="justify"><a href="http://www.kashyapas.com/wp-content/uploads/2013/05/WPFSharp.jpg"><img title="WPFSharp" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="WPFSharp" src="http://www.kashyapas.com/wp-content/uploads/2013/05/WPFSharp_thumb.jpg" width="601" height="504"></a></p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p align="justify">Here is the link to the book online: <a title="http://gnl.me/WPFsharp" href="http://gnl.me/WPFsharp">http://gnl.me/WPFsharp</a></p>
<p align="justify">In this book you will find the basics of developing Windows Phone 7.5 Application development using F# language. In the book, I walk you through in setting up the environment, using the templates to create apps, controls usage, orientation handling, choosers and launchers and end with a look at the device sensors. At the time I started writing the book the version of Windows Phone available was 7.5 so it focuses completely on 7.5 SDK. But by the time the book was out Microsoft has already released a new version called Windows Phone 8.</p>
<p align="justify">I want to take this opportunity to thank my friend Senthil Kumar for passing on the opportunity to me, Packt Publication for the working very patiently with me right from day one to getting printed. Last but not the least my lovely wife Rashmi and my son Adithya – they have been very supportive and patient through out this journey of 10 months.</p>
<p align="justify">As of now I can call myself an author and in my slide decks I can start adding a slide with the pic of my book <img src='http://www.kashyapas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Hope, you will read the book and let me know where I can improve. This is my first attempt and I have tried my level best to do justice to the book. There is always a scope for improvement and better myself. So do let me know of any feedback you may have.</p>
<p align="justify">Till next time, Happy Coding. Code with Passion, Decode with Patience.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=3wNmCR9P_u0:dIYtnFru-QY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=3wNmCR9P_u0:dIYtnFru-QY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=3wNmCR9P_u0:dIYtnFru-QY:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=3wNmCR9P_u0:dIYtnFru-QY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=3wNmCR9P_u0:dIYtnFru-QY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=3wNmCR9P_u0:dIYtnFru-QY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/3wNmCR9P_u0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/05/11/i-am-an-author/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/05/11/i-am-an-author/</feedburner:origLink></item>
		<item>
		<title>Glen Block : Program Manager, Azure : Uncut &amp; Unedited</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/ZFAez7goqpI/</link>
		<comments>http://www.kashyapas.com/2013/04/08/glen-block-program-manager-azure-uncut-amp-unedited/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 11:02:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[Uncut & Unedited]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[azure mobile services]]></category>
		<category><![CDATA[mef]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[prism]]></category>
		<category><![CDATA[uncut unedited]]></category>
		<category><![CDATA[wcf rest]]></category>
		<category><![CDATA[zumo]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1384</guid>
		<description><![CDATA[I am back with another edition of Uncut &#38; Unedited. This is episode number 29. In this episode I have a very special person as my guest. I have been stalking him for a while to give me his 10 minutes for my show. I have none other than Mr. Glen Block who is currently the Program Manager on Windows &#8230; <a href="http://www.kashyapas.com/2013/04/08/glen-block-program-manager-azure-uncut-amp-unedited/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p align="justify">I am back with another edition of Uncut &amp; Unedited. This is episode number 29. In this episode I have a very special person as my guest. I have been stalking him for a while to give me his 10 minutes for my show. I have none other than Mr. Glen Block who is currently the Program Manager on Windows Azure team. </p>
<p><a href="http://www.kashyapas.com/wp-content/uploads/2013/04/image.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/04/image_thumb.png" width="109" height="116"></a></p>
<p align="justify">In Feb 2013, Microsoft hosted the Global MVP Summit and I was fortunate enough to attend the summit this time. I am an MVP from last 2 years but this has been my first MVP summit. Its here in this summit that I was able to catch Glen in person and ask him for an interview. Before the summit we had a lot of twitter conversation and I wanted to meet him in person desperately and interview him. In spite of his busy schedule, Glen took me to Microsoft Office in downtown Bellevue and got us a empty room. I am grateful to Glen for this. </p>
<p>Here are&nbsp; the questions I put forth to Glen:</p>
<ul>
<li>His roles &amp; responsibilities in Microsoft</li>
<li>His involvement with MEF &amp; Prism</li>
<li>His involvement with WCF REST</li>
<li>His involvement with Azure &amp; Node.js</li>
<li>His involvement with Azure Mobile Services – ZUMO</li>
<li>His visit to India in future</li>
</ul>
<p align="justify">I had a great time interacting with Glen and interviewing him. He is one of the great interviewee that I have seen. It was an awesome feeling sitting there and listening to him when he talks about Prism, MEF, WCF REST, Azure, Node.js and ZUMO. Pheww that’s a lot of technologies that he has been playing with. I am really delighted to have him on my show and hope this is one of the good episodes for you guys. I wish we get to see him in India soon.</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>Here is the video of the interview:</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:200185f3-7b37-4fd7-b8f5-c5044cb045f6" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"><embed src="http://www.youtube.com/v/iIAilTlRQKE?hd=1" type="application/x-shockwave-flash" wmode="transparent" width="640" height="358"></embed>
<div style="width:640px;clear:both;font-size:.8em">Glen Block–Uncut &#038; Unedited</div>
</div>
<p>&nbsp;</p>
<p>Do sit back and enjoy the episode. Do let me know any feedback you may have. It will help me to better myself.</p>
<p>Till next time, Happy Coding. Code with Passion, Decode with Patience.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ZFAez7goqpI:RrjWqgTx17c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ZFAez7goqpI:RrjWqgTx17c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ZFAez7goqpI:RrjWqgTx17c:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ZFAez7goqpI:RrjWqgTx17c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ZFAez7goqpI:RrjWqgTx17c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ZFAez7goqpI:RrjWqgTx17c:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/ZFAez7goqpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/04/08/glen-block-program-manager-azure-uncut-amp-unedited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/04/08/glen-block-program-manager-azure-uncut-amp-unedited/</feedburner:origLink></item>
		<item>
		<title>Aaron Skonnard : Co Founder Pluralsight : Uncut &amp; Unedited</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/jawEHupQ6EA/</link>
		<comments>http://www.kashyapas.com/2013/04/01/aaron-skonnard-co-founder-pluralsight-uncut-unedited/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 03:02:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[Uncut & Unedited]]></category>
		<category><![CDATA[aaron skonnard]]></category>
		<category><![CDATA[pluralsight]]></category>
		<category><![CDATA[uncut]]></category>
		<category><![CDATA[unedited]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1379</guid>
		<description><![CDATA[Back with one more episode of Uncut &#38; Unedited. This is episode number 28. And I have a a good friend on my show this time. I was attending Microsoft TechEd India 2013 which was help on Mar 18/19 here at Bengaluru. This is one of the premiere events that we Microsoft Technologies geeks wait for. 2 days of technical &#8230; <a href="http://www.kashyapas.com/2013/04/01/aaron-skonnard-co-founder-pluralsight-uncut-unedited/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p align="justify">Back with one more episode of Uncut &amp; Unedited. This is episode number 28. And I have a a good friend on my show this time. </p>
<p align="justify">I was attending Microsoft TechEd India 2013 which was help on Mar 18/19 here at Bengaluru. This is one of the premiere events that we Microsoft Technologies geeks wait for. 2 days of technical fun and information overload is an amazing things and atmosphere is always great. This time too Pluralsight was participating with their booth at TechEd. Aaron Skonnard one of the co founders of Pluralsight was here in Bengaluru. In spite of the fact that he landed 6AM on Mar 18 – he was back at the booth by 11Am to meet the crowd. So I didn’t wanted to disturb him on that day. Caught hold of him on 19 and asked him if I can interview him for my show. He agreed for it readily and we went to the garden in front of Hotel Lalit Ashok. I am grateful to Aaron to give me his 10 minutes in spite of his busy schedule. But it is always so cheerful to talk to Aaron. This is his second presence on my show.</p>
<p align="justify"><a href="http://www.kashyapas.com/wp-content/uploads/2013/04/aaronskonnard.png"><img title="aaronskonnard" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="aaronskonnard" src="http://www.kashyapas.com/wp-content/uploads/2013/04/aaronskonnard_thumb.png" width="183" height="185"></a></p>
<p align="justify">I ask Aaron the following questions:</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<ul>
<li>
<div align="justify">Series A funding that Pluralsight raised recently – Aarons perspective on this</div>
<li>
<div align="justify">Pluralsight plan for future now that they have funding</div>
<li>
<div align="justify">Course areas that Pluralsight is looking out for</div>
<li>
<div align="justify">Pluralsight’s India presence and its impacts</div>
<li>
<div align="justify">Aaron’s TechEd India 2013 experience</div>
</li>
</ul>
<p align="justify">Here is the video of the interview:</p>
<p><iframe height="315" src="http://www.youtube.com/embed/arZBPyL3nnU" frameborder="0" width="560" allowfullscreen></iframe></p>
<p>Hope you enjoy this episode. If you have any feedback do please leave it in the comments. It will help me to better myself.</p>
<p>Till next time, Happy Coding. Code with Passion, Decode with Patience.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=jawEHupQ6EA:vZhkd_JJMjg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=jawEHupQ6EA:vZhkd_JJMjg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=jawEHupQ6EA:vZhkd_JJMjg:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=jawEHupQ6EA:vZhkd_JJMjg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=jawEHupQ6EA:vZhkd_JJMjg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=jawEHupQ6EA:vZhkd_JJMjg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/jawEHupQ6EA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/04/01/aaron-skonnard-co-founder-pluralsight-uncut-unedited/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/04/01/aaron-skonnard-co-founder-pluralsight-uncut-unedited/</feedburner:origLink></item>
		<item>
		<title>BDotNet UG Meet – Mar 30 – Slide Deck &amp; Video</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/Tb19_7SS6vI/</link>
		<comments>http://www.kashyapas.com/2013/03/31/bdotnet-ug-meet-mar-30-slide-deck-video/#comments</comments>
		<pubDate>Sun, 31 Mar 2013 10:17:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[My Speakings]]></category>
		<category><![CDATA[.net 4.5]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[webforms]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1369</guid>
		<description><![CDATA[On Mar 30, BDotNet i.e. Bangalore DotNet User Group conducted a UG Meet. This UG meet focus was on .NET Frameowrk 4.5. We had ASP.NET MVP Chaitra Nagaraj present the first session on “.NET 4.5 in a NutSheel”. Chaitra took the audience for a whirlwind tour of 4.5. She covered pretty much everything .NET 4.5 release had in 1 hour. &#8230; <a href="http://www.kashyapas.com/2013/03/31/bdotnet-ug-meet-mar-30-slide-deck-video/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p align="justify">On Mar 30, BDotNet i.e. Bangalore DotNet User Group conducted a UG Meet. This UG meet focus was on .NET Frameowrk 4.5. We had ASP.NET MVP Chaitra Nagaraj present the first session on “.NET 4.5 in a NutSheel”. Chaitra took the audience for a whirlwind tour of 4.5. She covered pretty much everything .NET 4.5 release had in 1 hour.</p>
<p align="justify">I spoke in this UG Meet on ASp.NET WebForms. Many think that Microsoft is focusing more on ASP.NET MVC and has forgotten the WebForms technology. But that’s not the case. Microsoft is investing heavily on one of the mature and stable toolset namely WebForms. This is evident from the loads of new feature added to WebForms in 4.5 release. So my session was Part 1 of many more sessions to come. In this first session I gave a glimpse of whats new in WebForms and focused on 3 major things available in the release. They are:</p>
<ul>
<li>
<div align="justify">Strongly Typed Data Binding Expressions </div>
<li>
<div align="justify">Model Binding </div>
<li>
<div align="justify">Value Providers in Model Binding.</div>
</li>
</ul>
<p align="justify">The slide decks from the session are available on SlideShare. Here is the slide deck embedded in this post:</p>
<p><iframe style="margin-bottom: 5px; border-top: #ccc 1px solid; border-right: #ccc 1px solid; border-bottom: #ccc 0px solid; border-left: #ccc 1px solid" height="356" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/17943998" frameborder="0" width="427" marginwidth="0" scrolling="no" mozallowfullscreen webkitallowfullscreen allowfullscreen> </iframe></p>
<div style="margin-bottom: 5px"><strong><a title="Asp.net web forms new shiny things part 1" href="http://www.slideshare.net/kashyapa/aspnet-web-forms-new-shiny-things-part-1" target="_blank">Asp.net web forms new shiny things part 1</a> </strong>from <strong><a href="http://www.slideshare.net/kashyapa" target="_blank">Lohith GN</a></strong> </div>
<p align="justify">&nbsp;</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p align="justify">Also, I was supposed to record the presentation for folks who couldn’t attend the session. It was first time I was recording using Camtasia. I did not see that audio was not getting captured as the setting was set to do not record. So I had video but no audio. Later I decided to re record the whole session I gave as a screen cast. Below is the screen cast video hosted on my vimeo channel.</p>
<p><iframe src="http://player.vimeo.com/video/63023634" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/63023634">ASp.NET WebForms 4.5 &#8211; New Shiny Things &#8211; Part 1</a> from <a href="http://vimeo.com/user6768522">Lohith</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><a href="http://vimeo.com/63023634">ASp.NET WebForms 4.5 &#8211; New Shiny Things &#8211; Part 1</a></p>
<p>I have started a series on new things in WebForms. So keep looking out for my blog.</p>
<p>Till next time, Happy Coding. Code with Passion, Decode with Patience.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=Tb19_7SS6vI:yc-6YsvdAdE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=Tb19_7SS6vI:yc-6YsvdAdE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=Tb19_7SS6vI:yc-6YsvdAdE:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=Tb19_7SS6vI:yc-6YsvdAdE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=Tb19_7SS6vI:yc-6YsvdAdE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=Tb19_7SS6vI:yc-6YsvdAdE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/Tb19_7SS6vI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/03/31/bdotnet-ug-meet-mar-30-slide-deck-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/03/31/bdotnet-ug-meet-mar-30-slide-deck-video/</feedburner:origLink></item>
		<item>
		<title>ASP.NET WebForms : New Shiny Things</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/5sOqUCsqfkg/</link>
		<comments>http://www.kashyapas.com/2013/03/28/asp-net-webforms-new-shiny-things/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 04:45:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[.net 4.5]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[webforms]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1364</guid>
		<description><![CDATA[Last year I had concentrated completely on Open Data Protocol and had written blog posts pertaining to OData. This year I was looking out for broader areas where I can start contributing to the community. And being an MVP in ASP.NET area I haven’t written much on ASP.NET technologies. So this year I will be writing about ASP.NET technologies i.e. &#8230; <a href="http://www.kashyapas.com/2013/03/28/asp-net-webforms-new-shiny-things/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p align="justify">Last year I had concentrated completely on Open Data Protocol and had written blog posts pertaining to OData. This year I was looking out for broader areas where I can start contributing to the community. And being an MVP in ASP.NET area I haven’t written much on ASP.NET technologies. So this year I will be writing about ASP.NET technologies i.e. the whole breadth of ASP.NET technologies which include WebForms, MVC, WebPages, WebApi etc.</p>
<p align="justify">In August 2012 Microsoft released .NET framework version 4.5 and lot of goodies came along with that. One such area of ASP.NET which got the goodies is WebForms technology. ASP.NET WebForms is one of the stable web technology stack on .NET now. It has seen almost 10 years of adoption now. So as part of 4.5 WebForms has got a lot of improvements. This post is a prelude to series of posts I intend to write to cover all the good things WebForms has now. </p>
<p align="justify">ASP.NET WebForms 4.5 has the following shiny things added. They are:</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<ul>
<li>
<div align="justify">Model Binders</div>
</li>
<li>
<div align="justify">Strongly Typed Binding Expressions</div>
</li>
<li>
<div align="justify">Unobtrusive JavaScript for client side validation</div>
</li>
<li>
<div align="justify">HTML encoded data binding expression</div>
</li>
<li>
<div align="justify">Fallback support for CDNs in ScriptManager</div>
</li>
<li>
<div align="justify">Support for HTML5 form types</div>
</li>
<li>
<div align="justify">Friendly URLs</div>
</li>
</ul>
<p align="justify">As you can see a lot of good stuff getting into ASP.NET WebForms. This year I attended the Global MVP Summit held at Bellevue, Seattle and was able to meet most of the ASP.NET team members like Scot Hanselman, Scot Hunter, Damian Edwards, Eilon Lipton. When asked about the fact about MVC getting a lot of attention and is WebForms losing interest – one point was clear from their answers that Microsoft is bringing lot of MVC goodness back to WedForms. The Model binding concept is already present in MVC and is being brought to WebForms now. So Microsoft will continue to invest in WebForms – the mature and stable web technology stack on .NET platform.</p>
<p align="justify">I will start diving into each topic in next blog posts to come. If you are excited and interested in WebForms like me – stay tuned.</p>
<p align="justify">Till next time – Happy Coding. Code with Passion, Decode with Patience.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=5sOqUCsqfkg:1ilN4mgqfec:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=5sOqUCsqfkg:1ilN4mgqfec:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=5sOqUCsqfkg:1ilN4mgqfec:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=5sOqUCsqfkg:1ilN4mgqfec:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=5sOqUCsqfkg:1ilN4mgqfec:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=5sOqUCsqfkg:1ilN4mgqfec:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/5sOqUCsqfkg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/03/28/asp-net-webforms-new-shiny-things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/03/28/asp-net-webforms-new-shiny-things/</feedburner:origLink></item>
		<item>
		<title>HTML5 Placeholder support for ASP.NET WebForm TextBox</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/ggIUdB7oTYU/</link>
		<comments>http://www.kashyapas.com/2013/02/03/html5-placeholder-support-for-asp-net-webform-textbox/#comments</comments>
		<pubDate>Sun, 03 Feb 2013 10:29:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[customization]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[placeholder]]></category>
		<category><![CDATA[textbox]]></category>
		<category><![CDATA[webforms]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1337</guid>
		<description><![CDATA[Background: In my last post “HTML5 Input Types Support in ASP.NET WebForm”, we looked at the HTML5 input types support from the ASP.NET WebForm TextBox control. One of the other cool features of HTML5 specification for a input controls is the placeholder attribute. Currently there is no support for placeholders in ASP.NET Webform TextBox control. In the blog post we &#8230; <a href="http://www.kashyapas.com/2013/02/03/html5-placeholder-support-for-asp-net-webform-textbox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p align="justify"><strong>Background:</strong></p>
<p align="justify">In my last post <a href="http://www.kashyapas.com/?p=1324" target="_blank">“HTML5 Input Types Support in ASP.NET WebForm”</a>, we looked at the HTML5 input types support from the ASP.NET WebForm TextBox control. One of the other cool features of HTML5 specification for a input controls is the placeholder attribute. Currently there is no support for placeholders in ASP.NET Webform TextBox control. In the blog post we will see how we can achieve this by creating a custom control.</p>
<p align="justify"><a href="http://www.kashyapas.com/2013/02/01/html5-input-types-support-in-asp-net-webform/image_thumb-png-228/" rel="attachment wp-att-1313"><img class="alignnone size-full wp-image-1313" title="image_thumb.png" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb.png" alt="" width="244" height="189" /></a></p>
<p align="justify"><strong>What is a Placeholder:</strong></p>
<p align="justify">According to the HTML5 Living Standard, the placeholder attribute is defined as follows:</p>
<blockquote>
<p align="justify">The <em>placeholder</em> attribute represents a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format. The attribute if specified, must have a value that contains no LINE FEED or CARRIAGE RETURN characters.</p>
</blockquote>
<p align="justify">Here is the link to the living standard: <a title="http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-placeholder-attribute" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-placeholder-attribute">http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-placeholder-attribute</a></p>
<p align="justify"><strong>Supporting Placeholder attribute in a TextBox – the Idea:</strong></p>
<p align="justify">If we talk from a plain HTML perspective, in order to support the placeholder attribute, all we need to do is to add a attribute named “placeholder” and provide a value to that attribute on a INPUT control of type text. So here is how the HTML will look like:</p>
<p align="justify"><script src="https://gist.github.com/4701397.js"></script><noscript><pre><code class="language-html html">&lt;input  type=&acirc;</p>
<p align="justify">Now, we know that the ASP.NET WebForm TextBox control does not contain any property to support this. And all we have to do is to add an extra attribute on the input type control. So the idea to achieve this is as follows:</p>
<ul>
<li>
<div align="justify">Create a custom web control which inherits from TextBox class</div>
</li>
<li>
<div align="justify">Add a public property of string type and name it “Placeholder”</div>
</li>
<li>
<div align="justify">Add attribute called placeholder during rendering of the control</div>
</li>
</ul>
<p align="justify">We will look at the above steps one by one:</p>
<p align="justify"><strong>Creating Custom Web Control:</strong></p>
<p align="justify">Open  visual studio and create a new project of type ASP.NET Server Control. I am selecting C# as the language.</p>
<p align="justify"><a href="http://www.kashyapas.com/wp-content/uploads/2013/02/SNAGHTML2e890245.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="SNAGHTML2e890245" src="http://www.kashyapas.com/wp-content/uploads/2013/02/SNAGHTML2e890245_thumb.png" alt="SNAGHTML2e890245" width="604" height="329" border="0" /></a></p>
<p align="justify">By default, the project will contain a ServerControl1 class when the project is created. We will use the same class and modify the class name to suit to our needs. First, rename the class to lets say “HTML5TextBox”. Currently the class inherits from WebControl. Instead we will inherit the class from TextBox. This is because, we just want to subclass the TextBox and add an attribute just before rendering the user control. By doing this we get to use all the plumbing the TextBox control already provides in the control rendering. So now we have a HTML5TextBix control which inherits from TextBox. The code will look like below:</p>
<script src="https://gist.github.com/4701405.js"></script><noscript><pre><code class="language-c# c#">[DefaultProperty(&quot;Text&quot;)]
[ToolboxData(&quot;&lt;{0}:Html5TextBox runat=server&gt;&lt;/{0}:Html5TextBox&gt;&quot;)]
public class Html5TextBox : TextBox
{
  
}</code></pre></noscript>
<p align="justify">Remove all other contents of the textbox for now. Lets get on with the next step which is creating a placeholder attribute.</p>
<p align="justify"><strong>Placeholder public property on the control:</strong></p>
<p align="justify">Now that we have the class created, we will now expose a public property to set the placeholder text. This property will be set with a value in the page where this control will be consumed. If no placeholder value is set, the control will have a default value to set. Here is the property definition:</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<script src="https://gist.github.com/4701413.js"></script><noscript><pre><code class="language-c# c#">string _placeholder = &quot;enter value&quot;;

[Bindable(true)]
[Category(&quot;Appearance&quot;)]
[DefaultValue(&quot;enter value&quot;)]
[Localizable(true)]
public string Placeholder
{
  get
    {
      return _placeholder;
    }

  set
    {
      _placeholder = value;
    }
}</code></pre></noscript>
<p align="justify">As you can see, we have created a backing field and a public property to expose the Placeholder attribute. Next we will see how to add the attribute to the TextBox rendering.</p>
<p align="justify"><strong>Add Placeholder attribute while rendering TextBox control:</strong></p>
<p align="justify">Now we have pretty much set up all the infrastructure needed to finish this. One thing we need to understand now is the rendering mechanism of a custom control. I suggest you read the following MSDN article to understand this: <a title="http://msdn.microsoft.com/en-us/library/aa338806(v=VS.71).aspx" href="http://msdn.microsoft.com/en-us/library/aa338806(v=VS.71).aspx">http://msdn.microsoft.com/en-us/library/aa338806(v=VS.71).aspx</a>. So I will not be digging deep in to the rendering mechanism as that is out of this blog post scope.</p>
<p align="justify">As said in the idea section, we just want to include a custom attribute during the controls output rendering. The custom control infrastructure provides us with a hook for this. It is known as AddAttributesToRender method. Here is the official definition of this method:</p>
<p align="justify"><a href="http://www.kashyapas.com/wp-content/uploads/2013/02/image6.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb6.png" alt="image" width="604" height="106" border="0" /></a></p>
<p align="justify">The AddAttributesToRender() method gets a HtmlTextWriter and all we need to do is to use the AddAttribute() method on the writer to insert our custom attributes. Here is the code to perform this action:</p>
<script src="https://gist.github.com/4701427.js"></script><noscript><pre><code class="language-c# c#">protected override void AddAttributesToRender(HtmlTextWriter writer)
{
  writer.AddAttribute(&quot;placeholder&quot;, _placeholder);
  base.AddAttributesToRender(writer);
}</code></pre></noscript>
<p>As you can see we use the AddAttribute(string key, string value) overload to insert our custom attribute. the attribute name is “placeholder” and the value is what has been set in a page where the control is consumed.</p>
<p align="justify">Here is the complete code of the control:</p>
<p align="justify"><script src="https://gist.github.com/4701149.js"></script><noscript><pre><code class="language-c# c#">    [DefaultProperty(&quot;Text&quot;)]
    [ToolboxData(&quot;&lt;{0}:Html5TextBox runat=server&gt;&lt;/{0}:Html5TextBox&gt;&quot;)]
    public class Html5TextBox : TextBox
    {
        string _placeholder = &quot;enter value&quot;;

        [Bindable(true)]
        [Category(&quot;Appearance&quot;)]
        [DefaultValue(&quot;enter value&quot;)]
        [Localizable(true)]
        public string Placeholder
        {
            get
            {
                return _placeholder;
            }
 
            set
            {
                _placeholder = value;
            }
        }

        protected override void AddAttributesToRender(HtmlTextWriter writer)
        {
            writer.AddAttribute(&quot;placeholder&quot;, _placeholder);
            base.AddAttributesToRender(writer);
        } 
    }</code></pre></noscript></p>
<p align="justify"><strong>Consuming the Custom Control:</strong></p>
<p align="justify">In any ASP.NET WebForm project, add reference to the Custom Web Control library. Then in any webform i.e. lets say in Default.aspx, use the register tag to register the control first. Here is the register tag code:</p>
<script src="https://gist.github.com/4701431.js"></script><noscript><pre><code class="language-html html">&lt;%@ Register  Assembly=&quot;HTML5WebFormsCustomControlLibrary&quot; 
              Namespace=&quot;HTML5WebFormsCustomControlLibrary&quot; 
              TagPrefix=&quot;kashyapa&quot; %&gt;</code></pre></noscript>
<p align="justify">Next, just create the textbox control as usual. Here is the code to consume the custom control we just created:</p>
<script src="https://gist.github.com/4701437.js"></script><noscript><pre><code class="language-html html">&lt;kashyapa:Html5TextBox  ID=&quot;txtName&quot; 
                        runat=&quot;server&quot; 
                        TextMode=&quot;SingleLine&quot; 
                        Width=&quot;300px&quot; 
                        Placeholder=&quot;enter your name&quot;&gt;
&lt;/kashyapa:Html5TextBox&gt;

&lt;kashyapa:Html5TextBox  ID=&quot;txtEmailAddress&quot; 
                        runat=&quot;server&quot; 
                        Width=&quot;300px&quot; 
                        TextMode=&quot;Email&quot; 
                        Placeholder=&quot;enter your email address&quot;&gt;
&lt;/kashyapa:Html5TextBox&gt;</code></pre></noscript>
<p align="justify">And here is the output of how the control will behave when rendered:</p>
<p align="justify"><a href="http://www.kashyapas.com/wp-content/uploads/2013/02/image7.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb7.png" alt="image" width="604" height="239" border="0" /></a></p>
<p align="justify">You can see that we now have the HTML5 placeholder as part of ASP.NET WebForm TextBox control. Similarly any other attributes which is not supported currently can be customized as we did for placeholder attribute.</p>
<p align="justify"><strong>Summary:</strong></p>
<p align="justify">Being a stable platform, ASP.NET WebForm technology has a lot of hooks to quickly customize the controls according to our needs. We just saw how easy it is to customize a TextBox to add a HTML5 attribute named placeholder. In this way, even being in ASP.NET WebForm platform, we can start making our code HTML5 compliant.</p>
<p align="justify">PS: If anybody from Microsoft ASP.NET does come across this article, I would request them to see if the HTML5 attributes can be pushed into the TextBox control itself. That would void the above effort to support just an attribute and the TextBox will be able to support out of the box the HTML5 attributes. We will wait and watch <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://www.kashyapas.com/wp-content/uploads/2013/02/wlEmoticon-smile.png" alt="Smile" />.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ggIUdB7oTYU:XC-8GgvnYPQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ggIUdB7oTYU:XC-8GgvnYPQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ggIUdB7oTYU:XC-8GgvnYPQ:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ggIUdB7oTYU:XC-8GgvnYPQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=ggIUdB7oTYU:XC-8GgvnYPQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=ggIUdB7oTYU:XC-8GgvnYPQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/ggIUdB7oTYU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/02/03/html5-placeholder-support-for-asp-net-webform-textbox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/02/03/html5-placeholder-support-for-asp-net-webform-textbox/</feedburner:origLink></item>
		<item>
		<title>HTML5 Input Types support in ASP.NET WebForm</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/4c7CT1gYP6E/</link>
		<comments>http://www.kashyapas.com/2013/02/01/html5-input-types-support-in-asp-net-webform/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 18:49:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[webforms]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1324</guid>
		<description><![CDATA[Background: HTML5 is the talk of the town. Everyone is talking about HTML5 everywhere. One of the cool features of HTML5 is the introduction of new input types for forms. These new input types allow better input control and validation. ASP.NET 4.5 which was released in Aug 2012 did have enhancements with respect to the input types support. The input &#8230; <a href="http://www.kashyapas.com/2013/02/01/html5-input-types-support-in-asp-net-webform/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p><strong>Background:</strong></p>
<p>HTML5 is the talk of the town. Everyone is talking about HTML5 everywhere. One of the cool features of HTML5 is the introduction of new input types for forms. These new input types allow better input control and validation.</p>
<p>ASP.NET 4.5 which was released in Aug 2012 did have enhancements with respect to the input types support. The input types i.e. TextBox in ASP.NET WebForms now support all of the new HTML5 input types. We will take a look at the input types from WebForms perspective in this blog post.</p>
<p><a href="http://www.kashyapas.com/wp-content/uploads/2013/02/image.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb.png" alt="image" width="244" height="189" border="0" /></a></p>
<p><strong>HTML5 Input Types:</strong></p>
<p>HTML5 has introduced several new input types for forms. These types improve the form input and provide better input control and validation.  Following table depicts input types, their description and browser support:</p>
<table width="400" border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="133">Input Type</td>
<td valign="top" width="133">Description</td>
<td valign="top" width="133">Supported Browser</td>
</tr>
<tr>
<td valign="top" width="133">color</td>
<td valign="top" width="133">fields that should contain a color</td>
<td valign="top" width="133">Chrome, Opera</td>
</tr>
<tr>
<td valign="top" width="133">date</td>
<td valign="top" width="133">fields that should contain date</td>
<td valign="top" width="133">Chrome, Safari, Opera</td>
</tr>
<tr>
<td valign="top" width="133">datettime</td>
<td valign="top" width="133">fields that should contain date time (with time zone)</td>
<td valign="top" width="133">Safari, Opera</td>
</tr>
<tr>
<td valign="top" width="133">datetime-local</td>
<td valign="top" width="133">fields that should contain date time (with time zone)</td>
<td valign="top" width="133">Safari, Opera</td>
</tr>
<tr>
<td valign="top" width="133">email</td>
<td valign="top" width="133">fields that should contain email address</td>
<td valign="top" width="133">FF, Chrome, Opera</td>
</tr>
<tr>
<td valign="top" width="133">month</td>
<td valign="top" width="133">fields that should contain month and year</td>
<td valign="top" width="133">Chrome, Safari, Opera</td>
</tr>
<tr>
<td valign="top" width="133">number</td>
<td valign="top" width="133">fields that should contain number</td>
<td valign="top" width="133">Chrome, Safari, Opera</td>
</tr>
<tr>
<td valign="top" width="133">range</td>
<td valign="top" width="133">fields that should contain value from a range of numbers</td>
<td valign="top" width="133">Chrome, Safari, Opera</td>
</tr>
<tr>
<td valign="top" width="133">search</td>
<td valign="top" width="133">used for search fields (a search field behaves like a regular text field)</td>
<td valign="top" width="133">Chrome, Safari</td>
</tr>
<tr>
<td valign="top" width="133">tel</td>
<td valign="top" width="133">fields that should telephone number</td>
<td valign="top" width="133">NONE</td>
</tr>
<tr>
<td valign="top" width="133">time</td>
<td valign="top" width="133">fields that should contain time</td>
<td valign="top" width="133">Chrome, Safari, Opera</td>
</tr>
<tr>
<td valign="top" width="133">url</td>
<td valign="top" width="133">fields that should contain URL address</td>
<td valign="top" width="133">FF, Chrome, Opera</td>
</tr>
<tr>
<td valign="top" width="133">week</td>
<td valign="top" width="133">fields that should contain week and year</td>
<td valign="top" width="133">Chrome, Safari, Opera</td>
</tr>
</tbody>
</table>
<p><strong>Creating ASP.NET WebForm Project:</strong></p>
<p>Fire up a Visual Studio 2012 and create a new ASP.NET WebForm project. Select File &gt; New Project and in the New Project dialog select “ASP.NET Web Forms Application” template. Below is a screenshot of the new project dialog:</p>
<p><a href="http://www.kashyapas.com/wp-content/uploads/2013/02/image1.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb1.png" alt="image" width="604" height="340" border="0" /></a></p>
<p>Give it a name and click Ok. Visual Studio will go ahead and create the project.</p>
<p><strong>Add TextBox to a WebForm:</strong></p>
<p>Open the Default.aspx that gets generated by default. Remove all the content from the content place holder named “BodyContent”. Just add a TextBox – either drag and drop from the toolbox or type it out. If you are in the designer mode, select the TextBox or if you are in source code mode place the cursor in the TextBox tag. Next press F4 to open the properties window. In the Properties window, select TextMode and click on the value field. It will now show up a drop down list with all the supported text modes. Till now, TextMode supported 3 values namely – SingleLine, MultiLine and Password. With ASP.NET 4.5 this property now supports all the newly defined HTML5 input types. Here is a screen shot of the same:</p>
<p><a href="http://www.kashyapas.com/wp-content/uploads/2013/02/image2.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb2.png" alt="image" width="604" height="312" border="0" /></a></p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p><strong>Examining the output:</strong></p>
<p>As we all know, a TextBox gets rendered as a HTML &lt;input&gt; type when the pages gets to the client. For the sake of testing, I had set the TextoBox TextMode to “color”. Here is the TextBox control definition:</p>
<blockquote><p>&lt;asp:TextBox ID=&#8221;txtName&#8221; runat=&#8221;server&#8221; TextMode=&#8221;Color&#8221; Width=&#8221;300px&#8221;&gt;&lt;/asp:TextBox&gt;</p></blockquote>
<p>Here is the generayed HTML for the above TextBox:</p>
<blockquote><p>&lt;input name=&#8221;ctl00$MainContent$txtName&#8221; type=&#8221;color&#8221; id=&#8221;MainContent_txtName&#8221; style=&#8221;width:300px;&#8221; /&gt;</p></blockquote>
<p>Here is a screenshot of how this looks in different browsers:</p>
<table width="400" border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="200">Chrome Output</td>
<td valign="top" width="200">Opera Output</td>
</tr>
<tr>
<td valign="top" width="200"><a href="http://www.kashyapas.com/wp-content/uploads/2013/02/image3.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb3.png" alt="image" width="244" height="204" border="0" /></a></td>
<td valign="top" width="200"><a href=" http://www.kashyapas.com/wp-content/uploads/2013/02/image4.png"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb4.png" alt="image" width="244" height="81" border="0" /></p>
<p></a></td>
</tr>
</tbody>
</table>
<p>As you can see different browsers have implemented in different way but what matters is the value that the field will contain. I clicked on the submit button and put a break point in the button click event handler. When I looked at the text box value, it contained the hex code of the color that we select as part of the color picker. Here is a screen shot which depicts the scenario:</p>
<p><a href="http://www.kashyapas.com/wp-content/uploads/2013/02/image5.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://www.kashyapas.com/wp-content/uploads/2013/02/image_thumb5.png" alt="image" width="604" height="239" border="0" /></a></p>
<p>So play around with other input types also and see how browser implement them. Not far are the days when all browser will support these input types and user experience for input and validation can be standardized.</p>
<p><strong>Summary</strong>:</p>
<p>HTML5 is becoming so mainstream that ASP.NET WebForm is also trying to catch up in the race. I see that it’s a good move to support the html5 input types. People who are developing in WebForms technology can move their application towards HTML5 compliance slowly and be ready for the the full embrace when it happens.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=4c7CT1gYP6E:dDmtrCnA_2g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=4c7CT1gYP6E:dDmtrCnA_2g:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=4c7CT1gYP6E:dDmtrCnA_2g:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=4c7CT1gYP6E:dDmtrCnA_2g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=4c7CT1gYP6E:dDmtrCnA_2g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=4c7CT1gYP6E:dDmtrCnA_2g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/4c7CT1gYP6E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/02/01/html5-input-types-support-in-asp-net-webform/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/02/01/html5-input-types-support-in-asp-net-webform/</feedburner:origLink></item>
		<item>
		<title>Roshan Abbas – Bollywood Personality – Uncut &amp; Unedited</title>
		<link>http://feedproxy.google.com/~r/KashyapasnetRumbles/~3/7hLl_5oLUjc/</link>
		<comments>http://www.kashyapas.com/2013/01/07/roshan-abbasndashbollywood-personalityndashuncut-amp-unedited/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 05:19:00 +0000</pubDate>
		<dc:creator>kashyapa</dc:creator>
				<category><![CDATA[Uncut & Unedited]]></category>
		<category><![CDATA[uncut unedited windows8]]></category>

		<guid isPermaLink="false">http://www.kashyapas.com/?p=1307</guid>
		<description><![CDATA[I am back with one more episode of Uncut &#38; Unedited. This is episode number 27. My guest in this episode&#160; is Mr. Roshan Abbas. Roshan Abbas is a Bollywood or Indian Film Industry personality. He is multi faceted person with his experience in Indian Radio, Indian Television, India Film Industry and Media. Currently he runs his own company called &#8230; <a href="http://www.kashyapas.com/2013/01/07/roshan-abbasndashbollywood-personalityndashuncut-amp-unedited/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wpInsert wpInsertInPostAd wpInsertAbove" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p>I am back with one more episode of Uncut &amp; Unedited. This is episode number 27. My guest in this episode&nbsp; is Mr. Roshan Abbas. </p>
<p><a href="http://www.kashyapas.com/wp-content/uploads/2013/01/image4.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.kashyapas.com/wp-content/uploads/2013/01/image_thumb4.png" width="182" height="244"></a></p>
<p>Roshan Abbas is a Bollywood or Indian Film Industry personality. He is multi faceted person with his experience in Indian Radio, Indian Television, India Film Industry and Media. Currently he runs his own company called Encompass which takes care of the event management of big companies in India. You can know more about Roshan Abbas here: <a title="http://roshanabbas.com/Welcome.html" href="http://roshanabbas.com/">http://roshanabbas.com/</a>.</p>
<p>Roshan was in Bangalore for Windows 8 launch that happened on Oct 31 2012. I had bloggers invite to be part of the launch in Bangalore. Roshan Abbas was part of the team which enacted a small skit depicting how Windows 8 can change one’s life. He did an excellent job in explaining some of the features of Windows 8. I hesitantly approached Roshan for his 10 minutes for my show. I must say he was so down to earth and instantly obliged my request and we had the interview done in a corner. Here are the questions that I ask Roshan:</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my link units */
google_ad_slot = "7445896272";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<ul>
<li>Roshan Abbas and his background</li>
<li>How has technology played a role in his life</li>
<li>Windows 8 and his experience</li>
<li>His experience with windows 8 hardware</li>
<li>One thing he liked the most in Windows 8 </li>
</ul>
<p>Here is the video of the interview:</p>
<p><div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:866a1612-382d-4dd6-b24f-268fe568e6f1" class="wlWriterEditableSmartContent" style="height: 351px; float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"><embed src="http://www.youtube.com/v/u-drvjaSK4A?hd=1" type="application/x-shockwave-flash" wmode="transparent" width="549" height="307"></embed>
<div style="width:549px;clear:both;font-size:.8em">Roshan Abbas–Bollywood Personality–Uncut &#038; Unedited</div>
</div>
<p>Hope you enjoy this episode and stay tuned for more. Do leave your feedback or comments if you have any.</p>
<p>Till next time – Happy Coding.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-3102830438045023";
/* my Leaderboard */
google_ad_slot = "1127824291";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=7hLl_5oLUjc:FTc99v0i5b0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=7hLl_5oLUjc:FTc99v0i5b0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=7hLl_5oLUjc:FTc99v0i5b0:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=7hLl_5oLUjc:FTc99v0i5b0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?i=7hLl_5oLUjc:FTc99v0i5b0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?a=7hLl_5oLUjc:FTc99v0i5b0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/KashyapasnetRumbles?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/KashyapasnetRumbles/~4/7hLl_5oLUjc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.kashyapas.com/2013/01/07/roshan-abbasndashbollywood-personalityndashuncut-amp-unedited/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.kashyapas.com/2013/01/07/roshan-abbasndashbollywood-personalityndashuncut-amp-unedited/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

 Served from: www.kashyapas.com @ 2013-05-21 01:31:31 by W3 Total Cache -->
