<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Vin Kamat &#124; Vin Kamat</title>
	<atom:link href="http://vinkamat.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://vinkamat.com</link>
	<description>Thoughts about technology and life in general</description>
	<lastBuildDate>Wed, 03 Apr 2013 00:02: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>
		<item>
		<title>Simple, easy way to avoid UI from freezing in Windows Forms / WPF apps</title>
		<link>http://vinkamat.com/2013/simple-easy-way-to-avoid-ui-from-freezing-in-windows-forms-wpf-apps/</link>
		<comments>http://vinkamat.com/2013/simple-easy-way-to-avoid-ui-from-freezing-in-windows-forms-wpf-apps/#comments</comments>
		<pubDate>Tue, 02 Apr 2013 23:42:51 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=118</guid>
		<description><![CDATA[<p>It&#8217;s always been a pain point to not have the UI freeze, when some long running background task is going on in Windows Forms or WPF applications. We&#8217;ve been used to using the infamous BackgroundWorker to achieve this, however with Task Parallel Library it&#8217;s so much succinct to manage this. &#8230;</p><p>The post <a href="http://vinkamat.com/2013/simple-easy-way-to-avoid-ui-from-freezing-in-windows-forms-wpf-apps/">Simple, easy way to avoid UI from freezing in Windows Forms / WPF apps</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s always been a pain point to not have the UI freeze, when some long running background task is going on in Windows Forms or WPF applications. We&#8217;ve been used to using the infamous BackgroundWorker to achieve this, however with Task Parallel Library it&#8217;s so much succinct to manage this.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">      Task<span style="color: #008000;">.</span><span style="color: #0000FF;">Factory</span><span style="color: #008000;">.</span><span style="color: #0000FF;">StartNew</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">=&gt;</span>
      <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">return</span> DoWork<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
      <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">.</span><span style="color: #0000FF;">ContinueWith</span><span style="color: #008000;">&#40;</span>antecedent <span style="color: #008000;">=&gt;</span>
      <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">try</span>
        <span style="color: #008000;">&#123;</span>
          UpdateViewWithResults<span style="color: #008000;">&#40;</span>antecedent<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #0600FF; font-weight: bold;">catch</span> <span style="color: #008000;">&#40;</span>AggregateException ae<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
          ae<span style="color: #008000;">.</span><span style="color: #0000FF;">Handle</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#41;</span> <span style="color: #008000;">=&gt;</span>
          <span style="color: #008000;">&#123;</span>
            MessageBox<span style="color: #008000;">.</span><span style="color: #0000FF;">Show</span><span style="color: #008000;">&#40;</span>x<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            statusStrip1<span style="color: #008000;">.</span><span style="color: #0000FF;">Items</span><span style="color: #008000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Done.&quot;</span><span style="color: #008000;">;</span>
            ViewerProgressBar<span style="color: #008000;">.</span><span style="color: #0000FF;">Visible</span> <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">false</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #0600FF; font-weight: bold;">false</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// Let anything else stop the application.</span>
          <span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
      <span style="color: #008000;">&#125;</span>, TaskScheduler<span style="color: #008000;">.</span><span style="color: #0000FF;">FromCurrentSynchronizationContext</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>The post <a href="http://vinkamat.com/2013/simple-easy-way-to-avoid-ui-from-freezing-in-windows-forms-wpf-apps/">Simple, easy way to avoid UI from freezing in Windows Forms / WPF apps</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2013/simple-easy-way-to-avoid-ui-from-freezing-in-windows-forms-wpf-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Very cool .Net, Javascript, Json and CSS libraries</title>
		<link>http://vinkamat.com/2012/very-cool-net-javascript-json-and-css-libraries/</link>
		<comments>http://vinkamat.com/2012/very-cool-net-javascript-json-and-css-libraries/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 15:48:31 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[css4]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[lists]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=103</guid>
		<description><![CDATA[<p>Recently I&#8217;ve been using and reading about the following interesting libraries for .Net, Javascript, Json and CSS. There are tons of those these days out there. But this will be a list of ones I value most. OpenWebKitSharp &#8211; http://code.google.com/p/open-webkit-sharp/ &#8211; check this too &#8211; http://stackoverflow.com/questions/790542/replacing-net-webbrowser-control-with-a-better-browser-like-chrome/10097480#10097480 JsonFx.Net &#8211; great library &#8230;</p><p>The post <a href="http://vinkamat.com/2012/very-cool-net-javascript-json-and-css-libraries/">Very cool .Net, Javascript, Json and CSS libraries</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Recently I&#8217;ve been using and reading about the following interesting libraries for .Net, Javascript, Json and CSS. There are tons of those these days out there. But this will be a list of ones I value most.</p>
<ol>
<li><strong>OpenWebKitSharp</strong> &#8211; <a title="On Google Code" href="http://code.google.com/p/open-webkit-sharp/" target="_blank">http://code.google.com/p/open-webkit-sharp/</a> &#8211; check this too &#8211; <a href="http://stackoverflow.com/questions/790542/replacing-net-webbrowser-control-with-a-better-browser-like-chrome/10097480#10097480" target="_blank">http://stackoverflow.com/questions/790542/replacing-net-webbrowser-control-with-a-better-browser-like-chrome/10097480#10097480</a></li>
<li><strong>JsonFx</strong>.Net &#8211; great library to work with Json in .Net &#8211; <a title="On GitHub" href="https://github.com/jsonfx/jsonfx" target="_blank">https://github.com/jsonfx/jsonfx</a></li>
<li><a href="http://microjs.com" target="_blank"><strong>microjs</strong>.com</a> &#8211; dictionary of js libraries</li>
<li><strong>sugarjs</strong> &#8211; extends native objects with helpful methods &#8211; <a href="http://sugarjs.com" target="_blank">sugarjs.com</a></li>
<li>http://<strong>emberjs</strong>.com/ &#8211; another databinding library, looks comprehensive, but I am sold on knockoutjs, I&#8217;ve looked at half a dozen binding libs, and to me knockout trumps everything else, just saying&#8230;</li>
<li>fully functional, rich datagrids on the client side &#8211; <a href="http://datatables.net/" target="_blank">http://<strong>datatables</strong>.net/</a></li>
<li>do anything with lists &#8211; <a href="http://listjs.com/" target="_blank">http://<strong>listjs</strong>.com/</a></li>
<li><strong>mediatizr</strong> &#8211; Responsive design support for older browsers &#8211; <a href="https://github.com/pyrsmk/mediatizr" target="_blank">https://github.com/pyrsmk/mediatizr</a></li>
<li><strong>stroll</strong>.js &#8211; awesome looking css3 scroll effects &#8211; <a href="http://lab.hakim.se/scroll-effects/" target="_blank">http://lab.hakim.se/scroll-effects/</a></li>
<li>Superfast client side templating &#8211; <strong><a href="http://handlebarsjs.com/" target="_blank">HandleBarsJS</a></strong></li>
<li>Rich Data for Javascript apps &#8211; perfect for SPA (Single Page App)s that deal with Server side data &#8211; <strong><a href="http://www.breezejs.com/" target="_blank">BreezeJS</a></strong></li>
<li>SPA template and client side app library &#8211; Single Page Apps done right &#8211; <strong><a href="http://durandaljs.com/" target="_blank">DurandalJS</a></strong></li>
</ol>
<p>The post <a href="http://vinkamat.com/2012/very-cool-net-javascript-json-and-css-libraries/">Very cool .Net, Javascript, Json and CSS libraries</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2012/very-cool-net-javascript-json-and-css-libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple and basic CSS3 properties that change everything</title>
		<link>http://vinkamat.com/2012/simple-and-basic-css3-properties-that-change-everything/</link>
		<comments>http://vinkamat.com/2012/simple-and-basic-css3-properties-that-change-everything/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 20:40:57 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=97</guid>
		<description><![CDATA[<p>By now the world has pretty much agreed upon the future of HTML5 and CSS3 &#8211; This is how new apps will be built, for the web and for multitude of other devices. There is no question native experience on a platform serves the best for the user, slowly but &#8230;</p><p>The post <a href="http://vinkamat.com/2012/simple-and-basic-css3-properties-that-change-everything/">Simple and basic CSS3 properties that change everything</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>By now the world has pretty much agreed upon the future of HTML5 and CSS3 &#8211; This is how new apps will be built, for the web and for multitude of other devices. There is no question native experience on a platform serves the best for the user, slowly but gradually apps are moving to the HTML5 model, primary examples being Facebook app, Netflix, USA Today, Financial times and several business/finance related apps.</p>
<p>CSS3 is awesome, it&#8217;s like magic. It suddenly makes your web app look cooler and less stressful. The biggest improvements over previous versions is the support for,</p>
<ol>
<li>Rounded Corners</li>
<li>Box Shadows</li>
<li>Text Shadows</li>
<li>Gradients</li>
</ol>
<p>Of course all the above are visible to the user only when they are viewing your app in a browser that supports these CSS3 properties. To lookup which properties are supported in which browser, take a quick <a title="CSS3 Test" href="http://css3test.com" target="_blank">CSS3 test</a>.</p>
<p>I&#8217;ve been looking to refine the usage of these properties to make them look the best I can and come up with ideal values.</p>
<p>Here&#8217;s my current swatch for these properties.</p>
<ol>
<li>Rounded Corners &#8211; this is simple &#8211; at 10px border radius it looks like perfection, not more not less.
<pre class="css">
            -webkit-border-radius: 10px;
            -moz-border-radius: 10px;
            border-radius: 10px;
</pre>
</li>
<li>Box Shadows &#8211; this is a little hard to get to, but with #999 a nice gray slightly blurred shadow, it seems close to perfect.
<pre class="css">
            -webkit-box-shadow: 3px 3px 10px 0px #999;
            -moz-box-shadow: 3px 3px 10px 0px #999;
            box-shadow: 3px 3px 10px 0px #999;
</pre>
</li>
<li>Text Shadows &#8211; this is the trickiest part &#8211; because there&#8217;s more shadow real estate going on, and it&#8217;s harder if you have dark text on light color. This also depends on the background color surrounding the text, so adjust the colors according to your underlying theme.
<pre class="css">
// light color text needs,
            -webkit-text-shadow: 0 2px 5px #333;
            -moz-text-shadow: 0 2px 5px #333;
            text-shadow: 0 2px 5px #333;
// dark color text needs,
            color: #111;
            -webkit-text-shadow: 0 2px 5px #999;
            -moz-text-shadow: 0 2px 5px #999;
            text-shadow: 0 2px 5px #999;
</pre>
</li>
<li>Gradients &#8211; I avoid them as much as I can, but when I need to I use saturated colors to compliment the darker one. Here&#8217;s an example of a glossy CSS3 icon using gradients.
<pre class="css">
div.appIconCss
        {
            width: 48px;
            height: 48px;
            margin: 20px auto 0 auto;
            padding:5px;
            font-size: 2.3em;
            color: #ffffff;  
            -webkit-text-shadow: 2px 2px 5px #333;
            -moz-text-shadow: 2px 2px 5px #333;
            text-shadow: 2px 2px 5px #333;                   
            -webkit-border-radius: 10px 10px 10px;
            -moz-border-radius: 10px 10px 10px;
            background: -webkit-gradient(radial, 28.5 -47, 0, 28.5 0, 700,
		        from(rgba(255,255,255,1)), to(rgba(255,255,255,0)),
		        color-stop(10%, rgba(255,255,255,0.2)),
		        color-stop(10.5%, rgba(140,140,140,0.2)),
		        color-stop(13%, rgba(140,140,140,0)),
		        color-stop(13.7%, rgba(255,255,255,0)),
		        color-stop(17%, rgba(255,255,255,1))) #2E79AB;
            background: -moz-radial-gradient(28.5px -47px 45deg, circle farthest-side,
		        rgba(255,255,255,1) 0%,
		        rgba(255,255,255,0.2) 72%,
		        rgba(140,140,140,0.3) 74.5%,
		        rgba(140,140,140,0) 85%,
		        rgba(255,255,255,0) 95%,
		        rgba(255,255,255,1) 160%);
        }
</pre>
</li>
</ol>
<p>&nbsp;</p>
<p>The post <a href="http://vinkamat.com/2012/simple-and-basic-css3-properties-that-change-everything/">Simple and basic CSS3 properties that change everything</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2012/simple-and-basic-css3-properties-that-change-everything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing Error Messages</title>
		<link>http://vinkamat.com/2011/designing-error-messages/</link>
		<comments>http://vinkamat.com/2011/designing-error-messages/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 19:44:54 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=87</guid>
		<description><![CDATA[<p>Error messages are an important part of an application. Generally each application/system has a collection of error messages stored somewhere (I would use a dictionary of some sorts). From a UX stand point it&#8217;s important to phrase and design error messages and dialogs, in a way that tells the user &#8230;</p><p>The post <a href="http://vinkamat.com/2011/designing-error-messages/">Designing Error Messages</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Error messages are an important part of an application. Generally each application/system has a collection of error messages stored somewhere (I would use a dictionary of some sorts). From a UX stand point it&#8217;s important to phrase and design error messages and dialogs, in a way that tells the user what &#8216;<strong>exactly</strong>&#8216; just happened. There&#8217;s no point in covering technical issues with a generic error message such as &#8220;<strong>Service unavailable</strong>&#8220;, when it doesn&#8217;t do anything to help the user take any action based on that information. Provide them with what to do when a service is not available. Is the internet connection not available? Is your web service down for maintenance? Is it a windows service on user&#8217;s machine that didn&#8217;t start correctly on reboot?</p>
<p>Technially it&#8217;s always possible to go that one extra mile to figure out and tell the user exactly what just happened and provide them with links to help documentation or provide useful actionable information immediately available, most times, right on the Error Dialog may be.</p>
<p>I recently got this Error dialog, when I was trying to activate a tool, I entered my credentials and bam, I got this error.</p>
<p><a href="http://vinkamat.com/wp-content/uploads/2011/06/ErrorMessage.DualReasons.png"><img class="aligncenter size-full wp-image-88" title="ErrorMessage.DualReasons" src="http://vinkamat.com/wp-content/uploads/2011/06/ErrorMessage.DualReasons.png" alt="" width="452" height="169" /></a></p>
<p>It could have been more specific, as in I entered my credentials wrong or the web service it used to authenticate is not available.</p>
<p>&nbsp;</p>
<p>The post <a href="http://vinkamat.com/2011/designing-error-messages/">Designing Error Messages</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2011/designing-error-messages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UI Design and Approach for Line of Business Apps</title>
		<link>http://vinkamat.com/2011/ui-design-and-approach-for-line-of-business-apps/</link>
		<comments>http://vinkamat.com/2011/ui-design-and-approach-for-line-of-business-apps/#comments</comments>
		<pubDate>Fri, 13 May 2011 21:25:20 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=79</guid>
		<description><![CDATA[<p>For any LOB (Line of Business) Application, User Interface Design can make or break the success of the application. In the recent years, due to the advent of mobile devices, great improvements in the Web technologies, the browsers and client side experience, there has been greater than ever emphasis on &#8230;</p><p>The post <a href="http://vinkamat.com/2011/ui-design-and-approach-for-line-of-business-apps/">UI Design and Approach for Line of Business Apps</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>For any LOB (Line of Business) Application, User Interface Design can make or break the success of the application. In the recent years, due to the advent of mobile devices, great improvements in the Web technologies, the browsers and client side experience, there has been greater than ever emphasis on UI Design and usability than before. Users having used iPhones, iPads and Kinects come to expect similar intuitive experience when they are using any application, be it an internal enterprise app or public facing web applications.</p>
<p>I&#8217;ve been very inspired by Billy Hollis&#8217; approach to Application development, ever since I first listened to his shows on the .Net Rocks podcast shows. He has a keen focus on User Experience and Prototyping.</p>
<p>Here&#8217;s a compiled list of links to his talks and presentations</p>
<p><a href="http://community.infragistics.com/pixel8/media/p/206488.aspx" target="_new">User Engaged Prototyping with Billy Hollis</a></p>
<p><a href="http://channel9.msdn.com/Blogs/KeithPleas/Billy-Hollis-on-WPF-and-Silverlight" target="_new">Billy Hollis on WPF and Silverlight</a></p>
<p><a href="http://msdn.microsoft.com/en-us/Video/dd941929" target="_new">Bytes by MSDN: June 18 &#8211; Billy Hollis</a></p>
<p><a href="http://www.dnrtv.com/default.aspx?showNum=115" target="_new">Billy Hollis on Getting Smart with WPF &#8211; dnrtv</a></p>
<p><a href="http://www.dnrtv.com/default.aspx?showNum=128" target="_new">Billy Hollis: XAML for Developers Part One</a></p>
<p><a href="http://www.dnrtv.com/default.aspx?showNum=129" target="_new">Billy Hollis: XAML for Developers Part Two</a></p>
<p>Check out this nice application called <a href="http://quince.infragistics.com" target="_new">Quince</a> which has a treasure trove of UX Patterns</p>
<p>The post <a href="http://vinkamat.com/2011/ui-design-and-approach-for-line-of-business-apps/">UI Design and Approach for Line of Business Apps</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2011/ui-design-and-approach-for-line-of-business-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDD, Unit Testing and Benefits</title>
		<link>http://vinkamat.com/2011/tdd-unit-testing-and-benefits/</link>
		<comments>http://vinkamat.com/2011/tdd-unit-testing-and-benefits/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 20:20:54 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=68</guid>
		<description><![CDATA[<p>What is TDD? From Wikipedia, quoting, Test-driven development (TDD) is a software development processthat relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finallyrefactors the new code &#8230;</p><p>The post <a href="http://vinkamat.com/2011/tdd-unit-testing-and-benefits/">TDD, Unit Testing and Benefits</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><strong>What is TDD?</strong></p>
<p>From Wikipedia, quoting,</p>
<blockquote><p>Test-driven development (TDD) is a <a href="http://en.wikipedia.org/wiki/Software_development_process">software development process</a>that relies on the repetition of a very short development cycle: first the developer writes a failing automated <a href="http://en.wikipedia.org/wiki/Test_case">test case</a> that defines a desired improvement or new function, then produces code to pass that test and finally<a title="Code refactoring" href="http://en.wikipedia.org/wiki/Code_refactoring">refactors</a> the new code to acceptable standards. <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a>, who is credited with having developed or &#8216;rediscovered&#8217; the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.<a href="http://en.wikipedia.org/wiki/Test-driven_development#cite_note-Beck-0">[1]</a></p>
<p>Test-driven development is related to the test-first programming concepts of <a title="Extreme programming" href="http://en.wikipedia.org/wiki/Extreme_programming">extreme programming</a>, begun in 1999,<a href="http://en.wikipedia.org/wiki/Test-driven_development#cite_note-Cworld92-1">[2]</a> but more recently has created more general interest in its own right.<a href="http://en.wikipedia.org/wiki/Test-driven_development#cite_note-Newkirk-2">[3]</a></p>
<p>Programmers also apply the concept to improving and <a title="Software bug" href="http://en.wikipedia.org/wiki/Software_bug">debugging</a> <a href="http://en.wikipedia.org/wiki/Legacy_code">legacy code</a> developed with older techniques.</p></blockquote>
<div id="attachment_69" class="wp-caption alignleft" style="width: 207px"><a href="http://vinkamat.com/wp-content/uploads/2011/03/tdd_cycle.jpg"><img class="size-medium wp-image-69 " title="TDD Cycle" src="http://vinkamat.com/wp-content/uploads/2011/03/tdd_cycle-246x300.jpg" alt="TDD Cycle" width="197" height="240" /></a><p class="wp-caption-text">TDD Cycle</p></div>
<p>&nbsp;</p>
<p>Although TDD doesn&#8217;t mean you write your tests first, test-first development relies on the process of writing a requirement to add a feature, functionality in the form of short unit-test, watching it fail first, then implementing the classes, methods and properties defined in the test, bit-by-bit, and then watching it pass, which is why it&#8217;s also sometimes termed as red-green (fail-then-pass) refactoring. Test-first or not, Test Driven Development makes Tests first class citizens of development process, rather than an after-thought.</p>
<p>&nbsp;</p>
<p><strong>Concerns and Benefits</strong></p>
<p>There have been several cases against using TDD or Unit Tests in general, common concerns being,</p>
<ol>
<li>Oh, this means the developers have to spend extra time writing unit tests, which they could be spending on &#8220;actual&#8221; development adding &#8220;features&#8221;.</li>
<li>Well, it&#8217;s going to either need more developers to make up for the time lost and increase project costs.</li>
<li>So you are saying we don&#8217;t need QA anymore, if Unit Tests are going to take care of all the testing?</li>
<li>and so forth&#8230;</li>
</ol>
<p>Some benefits of Unit Testing in general,</p>
<ol>
<li>The Project is going to gain a lot more time actually spent on quality, although more time might be required upfront to ensure unit tests are written for as many cases possible. However, the confidence in the quality of the code will be high for each developer. They will be able to know a defect they fixed is not going to break something else, very quickly. Immediate feedback, less QA cycles.</li>
<li>Cost associated with adding more developers is going to pay back once you have lesser QA cycles, immediate feedback on buggy code, lower long term maintenance and QA costs. It&#8217;s important not to conclude based just on the initial increase in development time and cost.</li>
<li>Generally it&#8217;s not a good idea to add more developers just to write unit tests for code that&#8217;s being written by some other developer. Ideally each developer who implements a feature or functionality has to write his/her own unit tests, and then be peer reviewed for accuracy and design</li>
<li>Unit tested and TDD code is likely to create and force automatic optimum design, also it&#8217;s going to help discover bugs in existing/legacy code &#8211; this is why it&#8217;s also sometimes called Design Driven Development. The API is going to evolve and emerge just enough to end up being optimum, on-demand design and avoid any upfront, grand ivory tower design that usually is a pattern in the Waterfall methodology.</li>
<li>Unit tested code is more likely to create a sense of &#8216;care for the code&#8217; from a developer&#8217;s standpoint, and not writing code &#8216;just to make things work&#8217;</li>
<li>There could be more many more that I missed, please feel free to add.</li>
</ol>
<p>Now, these benefits depend on how TDD is adopted and practiced and the results may vary on case by case basis. Also there are situations when writing unit tests for every part of the application is not feasible or possible. For example, UI testing, which is a whole another topic. For UI testing it is recommended to have Automated Coded UI tests, validating parts of the application that can not possibly be tested using Unit Tests.</p>
<p><strong>Types of Testing</strong></p>
<p>Generally there are 3 types of Testing areas. It&#8217;s important to know their differences and purpose.</p>
<ol>
<li>Unit Tests &#8211; focus on testing classes, methods and API in general, interacting with APIs of the various modules of the application. Goal is test functionality at a micro level and make sure each unit of code is accurately functioning as expected.</li>
<li>Integration Tests &#8211; focus on testing multiple coherent components/modules of the application. Goal is to validate if they work together as expected. This might include Presentation layer interacting with Business logic / Middleware and databases.</li>
<li>Automated/Coded UI Tests &#8211; focus on UI and how the user interacts with the application &#8211; test cases generally not covered by the Unit Tests or Integration Tests.</li>
</ol>
<p>All the above 3 types of tests are known to significantly reduce cost, maintainance and resources for the Project.</p>
<p><strong>Research and Case Study</strong></p>
<p>To that point, a research was conducted by folks at Microsoft which weigh in costs development time vs benefits.</p>
<p>Quoting from that research whitepaper,</p>
<blockquote><p>Test driven development has recently re-emerged as a critical enabling practice of agile software development methodologies. However, little empirical evidence supports or refutes the utility of this practice in an industrial context. Case studies were conducted with three development teams at Microsoft and one at IBM that have adopted TDD. The results of the case studies indicate that the pre-release <strong>defect density of the four products decreased between 40% and 90%</strong> relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a <strong>15–35% increase in initial development time</strong> after adopting TDD.</p></blockquote>
<p><a title="Whitepaper Study on benefits of TDD" href="http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf" target="_blank">Link to the WhitePaper</a> (thanks to <a href="twitter.com/jslicer" target="_blank">@jslicer</a> for the discovery of this whitepaper)</p>
<p><a href="http://www.lostechies.com/blogs/derekgreer/archive/2011/03/21/effective-tests-test-first.aspx" target="_blank">Great article</a> on several terminologies related to Test practices (Test first, BDD, TDD, Executable Specs etc)</p>
<p>&nbsp;</p>
<p>The post <a href="http://vinkamat.com/2011/tdd-unit-testing-and-benefits/">TDD, Unit Testing and Benefits</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2011/tdd-unit-testing-and-benefits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript: The Good Parts, Web Programming and Tools</title>
		<link>http://vinkamat.com/2011/javascript-the-good-parts-web-programming-and-tools/</link>
		<comments>http://vinkamat.com/2011/javascript-the-good-parts-web-programming-and-tools/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 23:29:03 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=54</guid>
		<description><![CDATA[<p>Javascript: The Good Parts, is the name of the one of the greatest book written on modern Javascript. Author Douglas Crockford who invented his own JSON spec and also invented JSLint explains why Javascript is not an inadequate language of the web after all. It&#8217;s good parts make up for &#8230;</p><p>The post <a href="http://vinkamat.com/2011/javascript-the-good-parts-web-programming-and-tools/">Javascript: The Good Parts, Web Programming and Tools</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a title="Amazon link" href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742" target="_blank"><img class="alignleft" title="Book Cover" src="http://ecx.images-amazon.com/images/I/41EMBPmjJLL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg" alt="Javascript: The Good Parts" width="240" height="240" />Javascript: The Good Parts</a>, is the name of the one of the greatest book written on modern Javascript. Author <a title="Douglas Crockford's website" href="http://javascript.crockford.com/" target="_blank">Douglas Crockford</a> who invented his own JSON spec and also invented JSLint explains why Javascript is not an inadequate language of the web after all. It&#8217;s good parts make up for anything that&#8217;s wrong or inconsistent. You just have to learn to know it.</p>
<p>If you skip the book, don&#8217;t miss this <a title="Video: Javascript the Good Parts" href="http://googlecode.blogspot.com/2009/03/doug-crockford-javascript-good-parts.html" target="_blank">video of a presentation he gave at Google</a>.</p>
<p>My first stint with Javascript was when I started my career in web development back in 1999, writing HTML, CSS and Javascript with Classic ASP on the server side. We worked through hoops to make things work on Netscape and IE (we had to worry about only two browsers back then, but more later on), then there were elaborate, error-prone hacky javascript files (document.getElementById all over the place) we included in pages to take care of client side validation, UI manipulation and XHR. Yes, all the good things of the web today were available to be used back then in the 1990s, especially with the MSIE browser. We just had to know to use it. AJAX was already there.</p>
<p>Since the arrival of modern javascript libraries like <strong><a title="jQuery website" href="http://jquery.com/" target="_blank">jQuery</a></strong>, made the life of a Javascript programmer so much easier. Letting you focus on &#8220;What to accomplish&#8221; more than &#8220;How to accomplish and bring it all together&#8221;. Which is great. It also provided a better separation of concerns, getting rid of inline event handling hooks and styling. The MV-VM Javascript library <strong><a title="KnockoutJS website" href="http://knockoutjs.com" target="_blank">KnockoutJS</a></strong> is yet another tool in the kit, that has brought goodies like observable properties and arrays, viewmodels etc to the web programming arena. With appropriate use of <strong><a title="jQuery Templates" href="http://api.jquery.com/category/plugins/templates/" target="_blank">jQuery Templates</a></strong>, you can get Silverlight/WPF like data-template and control-template like capabilities. This morning I discovered <strong><a title="d3 on github" href="https://github.com/mbostock/d3#readme" target="_blank">d3</a></strong>, this helps dealing with both DOM and SVG way easier.</p>
<p>I am excited how things are getting more and more standardized and easier to use with all the excitement around HTML5, CSS3 etc.</p>
<p>Now on to <strong>Tools</strong>. One of the areas where &#8216;Web Development&#8217; lags behind compared to Desktop/Client development is Tools. Tools that are transparent, easy to use, provide context, help and do not stand between the developer and the end result. Historically all these deficiencies have scared away the transition of a VB developer in to the pure web programmer, and thus ASP.Net came in to prominence making the developers not think about javascript, html at all and live in the land of Server Controls, View States and Magical unicorns, in the name of productivity, RAD or whatever you want to call it. While I completely agree ASP.Net filled a void and served well it&#8217;s real purpose at the time, it also delayed the emergence of frameworks like ASP.Net MVC. I am speaking in the context of a Enterprise .Net developer here.</p>
<p>ASP.Net MVC brought the shine back to web development on the MS .Net stack. When you have complete control over your markup, scripting, styling, URLs, routing, views, controllers and models, you can have greater transparency and focus on &#8220;What you want to create&#8221;. Yet built on top of the same ASP.Net&#8217;s core foundation, which is solid and evolving with each new version.</p>
<p>Coming back to Tools, I am crazy about &#8216;Chrome Developer Tools&#8217;. It&#8217;s brilliant. Simply love the way Chrome is supporting developers by providing context based, transparent and easy to use information about what got rendered on the client and moving away from just relying on &#8220;view source&#8221;. All though IE-9 is trying to catch up, when you compare, Chrome is years ahead of IE-9.</p>
<p style="text-align: center;"><a href="http://code.google.com/chrome/devtools/docs/overview.html#window"><img class="aligncenter" title="Chrome Dev Tools Tabs" src="http://code.google.com/chrome/devtools/docs/overview-files/top_tool_bar_w_console.png" alt="Chrome Dev Tools Tabs" width="560" height="69" /></a></p>
<p><a title="Chrome Developer Tools" href="http://code.google.com/chrome/devtools/" target="_blank">Learn more about &#8216;Chrome Developer Tools&#8217;</a> and dont&#8217; miss the video to get a quick look at it.</p>
<p><span style="font-size: 16px; line-height: 24px; font-family: Georgia, 'Bitstream Charter', serif;"><a style="font-family: Georgia, 'Bitstream Charter', serif; color: #0066cc; line-height: 1.5;" href="http://JSFiddle.net"><img class="alignleft" style="font-family: Georgia, 'Bitstream Charter', serif; color: #444444; line-height: 1.5; margin-top: 4px; margin-right: 24px; margin-bottom: 12px; margin-left: 0px; max-width: 640px; float: left; display: inline; border: 0px initial initial;" title="JSFiddle" src="http://doc.jsfiddle.net/_images/jsfiddle-desktop-thumbnail-a1.png" alt="JSFiddle" width="256" height="160" /></a></span></p>
<p>You might also want to use pure web-based tools like the awesome <a title="JSFiddle" href="http://jsfiddle.net/">JSFiddle</a>. For a full introduction and how-to guide for JSFiddle.Net, read this <a title="Get to know JSFiddle" href="http://www.knockmeout.net/2011/03/jsfiddle-to-rescue.html" target="_blank">blog post by Ryan</a>. I am using it on regular basis, when there is a need to create any client side UI development. Prototype it there, once it&#8217;s functional, bring the source code back to your application.</p>
<p>To sum it up, you always get good support from Visual Studio debugger and the VS tools to troubleshoot and inspect server side code, and VS does a splendid job of it. In VS2010, the Javascript intellisense and debugging support is great. However without an accompanying browser based Developer toolset your client side development is open to lost productivity, too many trial and error fixing sessions and frustration. This frustration eventually leads to a statement like &#8220;Ohh I hate javascript, html and this web development, Windows Forms/WPF/Silverlight development is so much better&#8221;. The important thing to note here is that it&#8217;s not the web development model that is difficult to deal with, it&#8217;s the tools, and the stateless nature of the web. So, you do need things like &#8216;Chrome Developer Tools&#8217; to fill the gaps and make things happen quickly and efficiently. It&#8217;s not perfect, yet, but it will get there, if you use it, you&#8217;ll know what I mean.</p>
<p>I wish Visual Studio can provide all three in one place. The Browser Developer Tools, a playground to prototype client side features like JSFiddle and then great, easy to use, built-in Javascript debugging.</p>
<p>Happy web programming folks!</p>
<p>The post <a href="http://vinkamat.com/2011/javascript-the-good-parts-web-programming-and-tools/">Javascript: The Good Parts, Web Programming and Tools</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2011/javascript-the-good-parts-web-programming-and-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Useful Reference Samples for KnockoutJS</title>
		<link>http://vinkamat.com/2011/useful-reference-samples-for-knockoutjs/</link>
		<comments>http://vinkamat.com/2011/useful-reference-samples-for-knockoutjs/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 19:30:12 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[KnockoutJS]]></category>
		<category><![CDATA[Reference]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=31</guid>
		<description><![CDATA[<p>After I recently started using KnockoutJS, the awesome MV-VM Javascript library, I came across several samples which serve as a great reference for real-world scenarios to solve specific UI problems. Because it&#8217;s hard to get to when I wanted to take quick look at, thought of making a list. This &#8230;</p><p>The post <a href="http://vinkamat.com/2011/useful-reference-samples-for-knockoutjs/">Useful Reference Samples for KnockoutJS</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>After I recently started using <strong><a title="KnockoutJS Website" href="http://knockoutjs.com" target="_blank">KnockoutJS</a></strong>, the awesome MV-VM Javascript library, I came across several samples which serve as a great reference for real-world scenarios to solve specific UI problems. Because it&#8217;s hard to get to when I wanted to take quick look at, thought of making a list. This is an evolving list, so will keep adding samples as I find them.</p>
<p>I am sure you will find them useful.</p>
<p>The reference samples are created by community and are mostly on the JSFiddle.net</p>
<ol>
<li><a href="http://jsfiddle.net/VinKamat/sQ6R9/">ObservableArray Manipulation, providing own mappings for ko.mapping Plugin</a></li>
<li><a href="http://jsfiddle.net/mikekidder/pnQ3L/">Defining a customBinder</a></li>
<li><a href="http://jsfiddle.net/rniemeyer/nxGWf/">Nested Comments Sample</a></li>
<li><a href="http://jsfiddle.net/rniemeyer/F7pLN/">applyBindingsToNode, reapply bindings</a></li>
<li><a href="http://jsfiddle.net/VinKamat/879jW/" target="_blank">Data binding html element&#8217;s attributes like <strong>Title, Class</strong> etc</a></li>
<li><a href="http://jsfiddle.net/VinKamat/879jW/" target="_blank">Subscribe to property inside ObservableArray</a></li>
<li><a href="http://jsfiddle.net/VinKamat/879jW/" target="_blank">ChangedItemes and deltatracking to sent to server</a></li>
<li><a href="http://jsfiddle.net/rniemeyer/4B9EP/" target="_blank">Undo/Redo quick initial sample</a></li>
<li><a href="http://jsfiddle.net/rniemeyer/RWcXN/" target="_blank">Keep a track of selected items (checkbox list) on the client side</a></li>
</ol>
<p>The post <a href="http://vinkamat.com/2011/useful-reference-samples-for-knockoutjs/">Useful Reference Samples for KnockoutJS</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2011/useful-reference-samples-for-knockoutjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating handy shortcuts VS2010</title>
		<link>http://vinkamat.com/2011/creating-handy-shortcuts-vs2010/</link>
		<comments>http://vinkamat.com/2011/creating-handy-shortcuts-vs2010/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 15:32:30 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Shortcuts]]></category>
		<category><![CDATA[VS2010]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=22</guid>
		<description><![CDATA[<p>There are several in-built keyboard shortcuts available in Visual Studio. However, there are some actions that developers need shortcuts for, that are not available by default. One of them is opening up &#8220;TFS Source Control Explorer&#8221; tool window. I typically attach Ctrl+Alt+S to this action. Currently we have to open the Team &#8230;</p><p>The post <a href="http://vinkamat.com/2011/creating-handy-shortcuts-vs2010/">Creating handy shortcuts VS2010</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>There are several in-built keyboard shortcuts available in Visual Studio.</p>
<p>However, there are some actions that developers need shortcuts for, that are not available by default.</p>
<p>One of them is opening up &#8220;TFS Source Control Explorer&#8221; tool window. I typically attach Ctrl+Alt+S to this action.</p>
<p>Currently we have to open the Team Explorer, drill down to our team project, and then double click on the Source Control Explorer node in the Tree. This is time-consuming.</p>
<p>Here&#8217;s how to add Ctrl+Alt+S to &#8220;View TFS Source Control Explorer&#8221; to Visual Studio.</p>
<ol>
<li>Go to Tools -&gt; Options -&gt; Environment -&gt;Keyboard</li>
<li>On the right hand pane, filter the &#8220;Show commands containing&#8221; available commands by typing in &#8220;TFSSourceControlExplorer&#8221;</li>
<li>Once it&#8217;s highlighted in the listbox below, click and focus on &#8220;Press Shortcut Keys&#8221; textbox</li>
<li>Press Ctrl+Alt+S</li>
<li>Click on the &#8220;Assign&#8221; button next to the textbox</li>
<li>Hit OK</li>
<li>Done</li>
</ol>
<p><a href="http://vinkamat.com/wp-content/uploads/2011/02/AttachKBShortcut.png"><img class="alignnone size-full wp-image-45" title="AttachKBShortcut" src="http://vinkamat.com/wp-content/uploads/2011/02/AttachKBShortcut.png" alt="" width="598" height="344" /></a>Another handy shortcut is to assign &#8220;Close command on the Currently open File&#8221;</p>
<p>Follow the same steps above and assign &#8220;Ctrl+W&#8221; &#8211; the reason I assign Ctrl+W is it&#8217;s already in our muscle memory to mean &#8220;Close currently open tab document&#8221; when we use it in pretty much all browsers. (FireFox, Chrome, IE)</p>
<p>Hope that helps.</p>
<p>&nbsp;</p>
<p>The post <a href="http://vinkamat.com/2011/creating-handy-shortcuts-vs2010/">Creating handy shortcuts VS2010</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2011/creating-handy-shortcuts-vs2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Full Map Scroll Mode Extension for VS2010</title>
		<link>http://vinkamat.com/2011/full-map-scroll-mode-extension-for-vs2010/</link>
		<comments>http://vinkamat.com/2011/full-map-scroll-mode-extension-for-vs2010/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 15:30:35 +0000</pubDate>
		<dc:creator>Vin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[VS2010]]></category>

		<guid isPermaLink="false">http://vinkamat.com/?p=18</guid>
		<description><![CDATA[<p>I used &#8220;Metal Scroll&#8221; for VS2008 to get a full code map on the right hand scrollbar to quickly identify and reach a code section I have in mind. However, there wasn&#8217;t a similar extension for VS2010, until now. The Productivity Power Tools extension recently added &#8220;Enhanced Scroll Bar&#8221; that provides similar &#8230;</p><p>The post <a href="http://vinkamat.com/2011/full-map-scroll-mode-extension-for-vs2010/">Full Map Scroll Mode Extension for VS2010</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I used &#8220;Metal Scroll&#8221; for VS2008 to get a full code map on the right hand scrollbar to quickly identify and reach a code section I have in mind.</p>
<p>However, there wasn&#8217;t a similar extension for VS2010, until now.</p>
<p style="text-align: left;">The Productivity Power Tools extension recently added &#8220;Enhanced Scroll Bar&#8221; that provides similar functionality.</p>
<p style="text-align: center;"><img class="size-full wp-image-46 aligncenter" title="EnhancedScrollbar" src="http://vinkamat.com/wp-content/uploads/2011/02/EnhancedScrollbar.png" alt="" width="598" height="344" /><a href="http://vinkamat.com/wp-content/uploads/2011/02/FullMapModeScrollbar.png"><img class="size-full wp-image-47 aligncenter" title="FullMapModeScrollbar" src="http://vinkamat.com/wp-content/uploads/2011/02/FullMapModeScrollbar.png" alt="" width="594" height="350" /></a></p>
<p>To enable it,</p>
<ol>
<li>Install the &#8220;Productivity Power Tools&#8221; Extension</li>
<li>Go to Tools -&gt; Options -&gt; Productivity Power Tools -&gt; Enhanced Scroll Bar.</li>
<li>Turn on &#8220;Full Map Mode&#8221;</li>
<li>Now open any code file and look at the scroll bar on the right.</li>
<li>Done</li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="http://vinkamat.com/2011/full-map-scroll-mode-extension-for-vs2010/">Full Map Scroll Mode Extension for VS2010</a> appeared first on <a href="http://vinkamat.com">Vin Kamat</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinkamat.com/2011/full-map-scroll-mode-extension-for-vs2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
