
 
<!DOCTYPE HTML>
<!--[if IE]><![endif]-->
<html>
  <head>
    <title>Blogs | The ASP.NET Site</title>
    <meta charset="UTF-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> 
  	<meta name="viewport" content="width=device-width, initial-scale=1"/>
  	<meta name="application-name" content="Microsoft ASP.NET Site"/>
  	
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@aspnet" />
<meta name="twitter:domain" content="asp.net" />
<meta name="twitter:image:src" content="//i2.asp.net/images/ui/asplogo-square.png?cdn_id=2015-04-01-001" />
<meta name="twitter:title" content="Blogs" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Blogs" />
<meta property="og:image" content="//i2.asp.net/images/ui/asplogo-square.png?cdn_id=2015-04-01-001" />
<meta property="og:url" content="http://www.asp.net/blogs" />
<meta property="og:site_name" content="The Official Microsoft ASP.NET Site" />
<meta property="fb:admins" content="scott.hanselman" />
<meta property="fb:admins" content="jon.galloway" />
<meta property="fb:admins" content="robmcm" />
        
    
      <link href='//i1.asp.net/umbraco-beta-css/main.min.css?cdn_id=2015-04-01-001' rel="stylesheet" type="text/css" media="all" />      
    
    <!--[if lte IE 7]>
      <link href='//i1.asp.net/umbraco-beta-css/lteIE7.min.css?cdn_id=2015-04-01-001' rel="stylesheet" type="text/css" media="screen" />
    <![endif]-->
	<!--[if lte IE 9]>
      <script src='//i1.asp.net/umbraco-beta-scripts/html5.js?cdn_id=2015-04-01-001' type="text/javascript"></script>
    <![endif]-->
    <link href='//i2.asp.net/images/content/favicon.ico?cdn_id=2015-04-01-001' rel="shortcut icon" />
	<link rel="alternate" type="application/rss+xml" title="Latest ASP.NET Content" href="//www.asp.net/rss/content" />
	  
	<!-- Anti-Clickjacking script -->
	<style id="antiClickjack">body{display:none !important;}</style>
	<script type="text/javascript">
		if (self === top) {
			var antiClickjack = document.getElementById("antiClickjack");
			antiClickjack.parentNode.removeChild(antiClickjack);
			} else {
			top.location = self.location;
		}
	 </script>	  
  </head>
  <body class=''>
    
    <div class='allcontent '>
    <header>
      <a href="//www.asp.net/" id="logo" data-s-object-id="logo">The ASP.NET Site</a><form method="post" id="search-query-masthead" action="/search"><div class="search-header"><input type="text" class="search-input input-common" value="Search ASP.NET" data-uitext="Search ASP.NET" data-uitype="autoreset" name="searchterm" /><input type="submit" name="submit" class="search-submit" value="" title="Search" /></div></form>
      <div class="language-translation"><a href="javascript:;" data-s-object-id="language" class="language">Language</a><div class="common-dropdown translator collapse"><div id="MicrosoftTranslatorWidget" class="Dark" style="color:white;background-color:#555555"></div><script type="text/javascript"> setTimeout(function() {{ var s = document.createElement("script"); s.type = "text/javascript"; s.charset = "UTF-8"; s.src = ((location && location.href && location.href.indexOf('https') == 0) ? "https://ssl.microsofttranslator.com" : "http://www.microsofttranslator.com" ) + "/ajax/v3/WidgetV3.ashx?siteData=VtgDR3VIw5EtyA5GLjVPQ4KJzPXxm9obABaIozZaC4rASMWk5L25KWUqh6Ar6NGqURTEzXUWnpx5iWdUN5sLtdEPpCp2cWHOJbvpyPB4G1CbqhzmBvRz5N5LcA3XLkI9&ctf=True&ui=true&settings=Manual&from=en&hideLanguages=ar,bg,ca,da,nl,et,fi,el,ht,he,hi,ms,mww,hu,id,lv,lt,no,fa,ro,sk,sl,sv,tlh,th,uk,ur,vi"; var p = document.getElementsByTagName('head')[0] || document.documentElement; p.insertBefore(s, p.firstChild); }}, 0);    
          </script></div></div>
	  <script type="text/javascript">var currentUsername = '';</script><div class="nav-user logged-out"><p><a href="https://login.asp.net/login/signin.aspx?ReturnUrl=//www.asp.net/blogs">Sign In</a><span class="separator">|</span><a href="https://login.asp.net/login/createuser.aspx?ReturnUrl=//www.asp.net/blogs">Join</a></p></div>   
	  <nav class="clearfix nav-main"><ul><li><a href="//www.asp.net/" data-s-object-id="navbar">Home</a></li><li><a href="//www.asp.net/get-started" data-s-object-id="navbar">
      Get Started
    </a></li><li class="nav-main-solutions"><a href="javascript:;" class="learnpulldown">
			Learn <span class="icon-dropdown"></span></a>
	    <div class="dropdown-learn">
	<div class="col">
	  <h2>WEB APPLICATIONS</h2>
	  <ul>
		<li><a href="//www.asp.net/web-forms" data-s-object-id="learn">Web Forms</a></li>
		<li><a href="//www.asp.net/mvc" data-s-object-id="learn">MVC</a></li>
		<li><a href="//www.asp.net/web-pages" data-s-object-id="learn">Web Pages/Razor</a></li>
		<li><a href="//www.asp.net/mobile" data-s-object-id="learn">Mobile</a></li>
		<li><a href="//www.asp.net/single-page-application" data-s-object-id="learn">Single Page Apps</a></li>
	  </ul>
	</div>
	<div class="col">
	  <h2>WEB SERVICES / API's</h2>
		<ul>
		  <li><a href="//www.asp.net/web-api" data-s-object-id="learn">Web API</a></li>
		</ul>
	</div>
	<div class="col">
	  <h2>REAL TIME</h2>
		<ul>
		  <li><a href="//www.asp.net/signalr" data-s-object-id="learn">SignalR</a></li>
		</ul>
	</div>
	<div class="col">
	  <h2>DATA ACCESS</h2>
		<ul>
		  <li><a href="//www.asp.net/entity-framework" data-s-object-id="learn">Entity Framework</a></li>
		</ul>
	</div>
	<div class="col">
	  <h2>ONE ASP.NET</h2>
		<ul>
                         <li><a href="http://blogs.msdn.com/b/webdev/archive/2014/11/12/announcing-asp-net-features-in-visual-studio-2015-preview-and-vs2013-update-4.aspx" data-s-object-id="learn">Latest Release (2013.4)</a></li>
                         <li><a href="//www.asp.net/aspnet" data-s-object-id="learn">Common ASP.NET Features</a></li>
                         <li><a href="//www.asp.net/identity" data-s-object-id="learn">Security / Identity</a></li>
                         <li><a href="//www.asp.net/visual-studio" data-s-object-id="learn">Tooling/IDE</a></li>
                         <li><a href="//www.asp.net/aspnet/overview/deployment" data-s-object-id="learn">Deployment</a></li>
                         <li><a href="//www.asp.net/vnext" data-s-object-id="learn">Future Release</a></li>
						 </ul>
	</div>
  </div>
      </li><li><a href="//www.asp.net/hosting" data-s-object-id="navbar">
      Hosting
    </a></li><li><a href="//www.asp.net/downloads" data-s-object-id="navbar">
      Downloads
    </a></li><li class="nav-main-solutions"><a href="javascript:;" class="communitypulldown selected">
			Community <span class="icon-dropdown"></span></a>
	  
		<div class="dropdown-community">
			<div class="col">
				<ul>
					<li><a href="//www.asp.net/community" data-s-object-id="community">Overview</a></li>
					<li><a href="//www.asp.net/community/spotlight" data-s-object-id="community">Community Spotlight</a></li>
					<li><a href="//www.asp.net/community/articles" data-s-object-id="community">Articles of the Day</a></li>
					<li><a href="//www.asp.net/whats-new" data-s-object-id="community">What's new</a></li>
					<li><a href="//weblogs.asp.net/" data-s-object-id="community">Community Blogs</a></li>
					<li><a href="//www.asp.net/community/microsoft-blogs" data-s-object-id="community">ASP.NET Team</a></li>
					<li><a href="//www.asp.net/community/events" data-s-object-id="community">Events</a></li>
				</ul>
			</div>
			<div class="col">
				<ul>
					<li><a href="//www.asp.net/community/recognition/hall-of-fame" data-s-object-id="community">Hall Of Fame</a></li>
					<li><a href="http://code.msdn.microsoft.com/site/search?f%5B0%5D.Type=Technology&amp;f%5B0%5D.Value=ASP.NET&amp;sortBy=Date" data-s-object-id="community">MSDN Samples</a></li>
					<li><a href="//forums.asp.net/" data-s-object-id="community">Forums</a></li>
				</ul>
			</div>
			<div class="col">
				<ul>
					<li><a href="//www.asp.net/community/websites" data-s-object-id="community">Community Websites</a></li>
					<li><a href="//www.asp.net/community/support" data-s-object-id="community">Community Support</a></li>
				</ul>
			</div>
		</div>

	  </li><li><a href="//forums.asp.net/" data-s-object-id="navbar">Forums</a></li><li><a href="//www.asp.net/contact-us" data-s-object-id="navbar">Help</a></li></ul></nav><div class="social"><span>Follow us on<a href="https://jabbr.net/#/rooms/Lobby" class="jabbr" title="JabbR"></a><a href="https://www.facebook.com/asp.net" class="facebook" title="Facebook"></a><a href="http://twitter.com/aspnet" class="twitter" title="Twitter"></a></span></div>
    </header>
      
	<div class="content community">
		<div class="col-left">
			
	<h1>ASP.NET Community Blogs</h1>
	<p class="head-desc"></p>
	
	<h3 class="icon-rss-head">Recent Blog Posts</h3>
	<div id="newsOutput" class="busy"></div>

		</div>
		<div class="col-right">
						
			<div class="common-sidebar-module">
				<div id="FeaturedAd" data-adzoneid="0" data-adtypeid="5" class="ad-300x250 ad " data-adwidth="300px" data-adheight="250px" style="width:300px;height:250px;"></div> 
			</div>
			
			<div class="common-sidebar-module" style='display: block'>
				<h2>Subscribe via rss</h2>
				<p class="icon-rss-head"><a class="icon lrg" href='/feed/recent-posts.xml' title="RSS Feed">RSS Feed</a></p>
			</div>
			
			<div class="common-sidebar-module">
				<h2>Recent Popular Tags</h2>
				<p><a href="/blogs/tag/dotnet1" class="tag1">.NET</a> 
            <a href="/blogs/tag/algorithms" class="tag2">Algorithms</a> 
            <a href="/blogs/tag/angular" class="tag2">Angular</a> 
            <a href="/blogs/tag/angularjs" class="tag3">angularjs</a> 
            <a href="/blogs/tag/architecture" class="tag4">Architecture</a> 
            <a href="/blogs/tag/architecturepatterns" class="tag4">ArchitecturePatterns</a> 
            <a href="/blogs/tag/asp-classic" class="tag4">ASP Classic</a> 
            <a href="/blogs/tag/aspdotnet1" class="tag1">ASP.NET</a> 
            <a href="/blogs/tag/aspdotnet1-mvc" class="tag1">ASP.NET MVC</a> 
            <a href="/blogs/tag/aspdotnet1-vnext" class="tag3">ASP.NET VNext</a> 
            <a href="/blogs/tag/asynchronous-programming" class="tag4">asynchronous programming</a> 
            <a href="/blogs/tag/azure" class="tag1">Azure</a> 
            <a href="/blogs/tag/binarytree" class="tag3">BinaryTree</a> 
            <a href="/blogs/tag/boston-dotnet1-architecture-study-group" class="tag4">Boston .NET Architecture Study Group</a> 
            <a href="/blogs/tag/csharp1" class="tag3">C#</a> 
            <a href="/blogs/tag/community-news" class="tag2">Community News</a> 
            <a href="/blogs/tag/controls" class="tag4">Controls</a> 
            <a href="/blogs/tag/decentcms" class="tag1">DecentCMS</a> 
            <a href="/blogs/tag/downloads" class="tag3">Downloads</a> 
            <a href="/blogs/tag/entity-framework" class="tag1">Entity Framework</a> 
            <a href="/blogs/tag/entity-framework-code-first" class="tag2">Entity Framework Code First</a> 
            <a href="/blogs/tag/events" class="tag1">Events</a> 
            <a href="/blogs/tag/extensibility" class="tag2">Extensibility</a> 
            <a href="/blogs/tag/javascript" class="tag1">JavaScript</a> 
            <a href="/blogs/tag/microsoft" class="tag1">Microsoft</a> 
            <a href="/blogs/tag/montreal" class="tag1">Montreal</a> 
            <a href="/blogs/tag/mvp" class="tag2">MVP</a> 
            <a href="/blogs/tag/nhibernate" class="tag2">NHibernate</a> 
            <a href="/blogs/tag/nodedot1js" class="tag1">Node.js</a> 
            <a href="/blogs/tag/nsession" class="tag4">NSession</a> 
            <a href="/blogs/tag/orm" class="tag2">ORM</a> 
            <a href="/blogs/tag/portugal" class="tag4">Portugal</a> 
            <a href="/blogs/tag/promise" class="tag4">promise</a> 
            <a href="/blogs/tag/python" class="tag3">python</a> 
            <a href="/blogs/tag/security" class="tag3">Security</a> 
            <a href="/blogs/tag/service-bus" class="tag3">service bus</a> 
            <a href="/blogs/tag/sharepoint" class="tag2">SharePoint</a> 
            <a href="/blogs/tag/sorting" class="tag4">Sorting</a> 
            <a href="/blogs/tag/speaking" class="tag1">Speaking</a> 
            <a href="/blogs/tag/traversal" class="tag3">Traversal</a> 
            <a href="/blogs/tag/typescript" class="tag2">TypeScript</a> 
            <a href="/blogs/tag/visual-studio" class="tag1">Visual Studio</a> 
            <a href="/blogs/tag/vnext" class="tag2">vNext</a> 
            <a href="/blogs/tag/web" class="tag2">Web</a> 
            <a href="/blogs/tag/web-services" class="tag3">Web Services</a> 
            <a href="/blogs/tag/windows-10" class="tag2">Windows 10</a> 
            <a href="/blogs/tag/windows-phone" class="tag3">Windows Phone</a> 
            <a href="/blogs/tag/wpf" class="tag4">WPF</a> 
            <a href="/blogs/tag/xml" class="tag3">XML</a> 
            </p>
			</div>
			
			<div class="common-sidebar-module">
				<h2>Blogs</h2>
				<ul class="common-list">
					<li class="first"><a href="/opml">Opml</a></li>
					<li><a href="/blogs/bloggers">Blogs on this Site</a></li>
				</ul>
			</div>
			
			<div class="common-sidebar-module">
				<div id="FeaturedAd2" data-adzoneid="0" data-adtypeid="5" class="ad-300x250 ad " data-adwidth="300px" data-adheight="250px" style="width:300px;height:250px;"></div> 
			</div>
			
		</div>
  </div><!--content-->
  <!--<div class="clear"></div>-->
  <div class="clear">
</div>
<div id="BottomAd" data-adzoneid="0" data-adtypeid="4" class="ad-728x90 ad " data-adwidth="728px" data-adheight="90px" style="width:728px;height:90px;"></div> 

      <div class="footer">
<div class="clear"></div>
<ul class="footer-menu">
<li class="block">
<h2>This site is managed for Microsoft by Neudesic, LLC. | &copy; 2015 Microsoft. All rights reserved.</h2>
</li>
<li><a href="//www.asp.net/privacy" data-s-object-id="footer">Privacy Statement</a><span class="separator">|</span></li>
<li><a href="//www.asp.net/terms-of-use" data-s-object-id="footer">Terms of Use</a><span class="separator">|</span></li>
<li><a href="//www.asp.net/contact-us" data-s-object-id="footer">Contact Us</a><span class="separator">|</span></li>
<li><a href="http://www.neudesicmediagroup.com/Advertising.aspx?site=asp" data-s-object-id="footer">Advertise With Us</a><span class="separator">|</span></li>
<li><a href="http://www.umbraco.org" data-s-object-id="footer">CMS by Umbraco</a><span class="separator">|</span></li>
<li><a href="http://azure.microsoft.com/">Hosted on Microsoft Azure</a></li></ul>
<ul class="footer-menu last">
<li class="block">
<h2><a class="logo-microsoft" title="Microsoft" href="http://microsoft.com" data-s-object-id="footer">Microsoft</a></h2>
</li>
<li><a href="http://aspnet.uservoice.com" data-s-object-id="footer">Feedback on ASP.NET</a><span class="separator">|</span></li>
<li><a href="https://connect.microsoft.com/VisualStudio" data-s-object-id="footer">File Bugs</a><span class="separator">|</span></li>
<li><a href="//www.asp.net/support">Support Lifecycle</a></li>
</ul>
</div>
    </div>    
    <div class="modal modal-webpi" style="display:none;"><a href="javascript:;" class="modal-close" data-s-object-id="webpi (close)">✖</a><div class="modal-contents"><h2>Installs powered by the Microsoft Web Platform Installer</h2><p>The product(s) you are about to install leverage the Web Platform Installer (WebPI) for installation. By downloading and using the Web Platform Installer (WebPI), you agree to the <a href="http://go.microsoft.com/fwlink/?LinkId=251729">license terms</a> and <a href="http://go.microsoft.com/fwlink/?LinkId=251732">privacy statement</a> for WebPI. This installer will contact Microsoft over the Internet to retrieve product information.  WebPI uses the Microsoft Customer Experience Improvement Program (CEIP), which is turned on by default, see <a href="http://go.microsoft.com/fwlink/?LinkId=251732">privacy statement</a> for more information.  Some of the Microsoft software obtained through WebPI may use CEIP. To view which software uses CEIP, see <a href="http://go.microsoft.com/?LinkID=9816722">here</a>.</p><a href="javascript:;" class="btn-install" data-s-object-id="webpi (install)">Accept and install</a></div></div><div class="modal-cover" style="display:none;"></div>
	
<input type="hidden" id="meta-contentType" value="Archive" />
<input type="hidden" id="meta-contentLiveDate" value="2014-02-17" />

    
	
	 
  

      <script id="itemtemplate" type="text/x-jquery-tmpl">
        {{each data}}        
           <div class="common-post blog-post">  
			<a href="${blog_url}">
				<img alt="${author}" class="social-avatar" width="59" height="59" src="${author_avatar}" />
			</a>
			<h2><a href="${link}">${unescapeHtml(title)}</a></h2>
   			<p class="details">${date} on <a href="${blog_url}">${blog_name}</a> by <a href="//forums.asp.net/members/${author}.aspx" target="_blank">${author}</a></p>
   			<p class="excerpt">${description}</p> 
   			<p>&nbsp;</p>
			{{if tags.length > 0}}
				<p class="tags">Filed under: 
				{{each tags}}
					<a href="${blog_url}/tags/${url}">${name}</a>{{if $index + 1 < tags.length}},{{/if}}					
				{{/each}}
				</p>
   			{{/if}}
          </div>
        {{/each}}
       </script>

  
  
 	
  

    <script id="pagertemplate" type="text/x-jquery-tmpl">  
      {{if currentpage != 1}}
        <a href="javascript:var x = 'previous';" data-page="${previouspage}" class="prev"><span>«</span> PREV</a>
      {{else}}
        <span class="disabled prev">« PREV</span>
      {{/if}}
      {{if (startpage > 1)}}    
        {{if currentpage == 1}}          
            <a href="javascript:var x = 'page 1';" class="selected">1</a>
        {{else}}
          <a href="javascript:var x = 'page 1';" data-page="1">1</a>
        {{/if}}
        {{if startpage > 2}}  
          <span class="nolink">...</span>
        {{/if}}
      {{/if}}
      {{each pages}}
        {{if currentpage == this}}       
          <a href="javascript:var x = 'page ${this}';" class="selected">${this}</a>
        {{else}}
          <a href="javascript:var x = 'page ${this}';" data-page="${this}">${this}</a>
        {{/if}}
      {{/each}}
      {{if (endpage < pagecount)}}
        {{if endpage < pagecount - 1}}  
          <span class="nolink">...</span>
        {{/if}}   
        {{if currentpage == pagecount}}          
            <a href="javascript:var x = 'page ${pagecount}';" class="selected">${pagecount}</a>
        {{else}}
          <a href="javascript:var x = 'page ${pagecount}';" data-page="${pagecount}">${pagecount}</a>
        {{/if}}
      {{/if}}
      {{if currentpage != endpage}}
        <a href="javascript:var x = 'next';" data-page="${nextpage}" class="next">NEXT <span>»</span></a>  
      {{else}}
        <span class="disabled next">NEXT »</span>
      {{/if}}  
    </script>

  
  


      <script src='//i3.asp.net/umbraco-beta-scripts/jquery-1.7.2.min.js?cdn_id=2015-04-01-001' type="text/javascript"></script>
      <script type="text/javascript">$.ajaxSetup({ cache: false });var omni_guid="22a80022-7656-4d04-a456-ddc8ee95fe0e";</script>
    	
	
  <script type="text/javascript">var jsonBaseUrl = '/raw/blogs';</script>
  <script type="text/javascript">var s=document.createElement('script');s.type='text/javascript';s.src='//i1.asp.net/umbraco-beta-scripts/prod-communitycontent.min.js?cdn_id=2015-04-01-001';document.body.appendChild(s);</script>
  

    <script type="text/javascript">if ((Math.floor(Math.random()*100))<5){$.getScript("/scripts/prod-survey.min.js?cdn_id=2015-04-01-001");}</script>
    <noscript><a href="http://www.omniture.com" title="Web Analytics"><img src="//msstonojsaspnet.112.2O7.net/b/ss/msstonojsaspnet/1/H.20.2--NS/0" height="1" width="1" alt="omni" /></a></noscript>
	<noscript><img alt="" width="1" height="1" src="//c.microsoft.com/trans_pixel.aspx"/></noscript>
	
	<script>
		(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
		(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
		m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
		})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

		ga('create', 'UA-61337531-1', 'auto');
		ga('send', 'pageview');
	</script>
	
	<!-- Code for Action: Microsoft .Net Promo - asp.net Conversion - Conversion -->
	<!-- Begin Rocket Fuel Conversion Action Tracking Code Version 7 -->
	<script type='text/javascript'>var rfiPub={ver:7,publisher:16881,conversionID:20643345};var rfiAds=new Array();</script>
	<script type='text/javascript' src='//c1.rfihub.net/js/bcP.js'></script>
	<noscript><iframe src='//20643345p.rfihub.com/ca.html?rb=16881&ca=20643345&ra=%RAND%' style='display:none;padding:0;margin:0' width='0' height='0'></iframe></noscript>
	<!-- End Rocket Fuel Conversion Action Tracking Code Version 7 -->

	<!-- Code for Action: Microsoft .Net Promo - asp.net Remarketing - Tracking -->
	<!-- Begin Rocket Fuel Conversion Action Tracking Code Version 7 -->
	<script type='text/javascript'>var rfiPub={ver:7,publisher:16881,conversionID:20643337};var rfiAds=new Array();</script>
	<noscript><iframe src='//20643337p.rfihub.com/ca.html?rb=16881&ca=20643337&ra=%RAND%' style='display:none;padding:0;margin:0' width='0' height='0'></iframe></noscript>
	<!-- End Rocket Fuel Conversion Action Tracking Code Version 7 -->
	
	<!-- Google Code for Remarketing Tag -->
	<script type="text/javascript">
	/* <![CDATA[ */
	var google_conversion_id = 975181679;
	var google_custom_params = window.google_tag_params;
	var google_remarketing_only = true;
	/* ]]> */
	</script>
	<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"></script>
	<noscript>
	<div style="display:inline;">
	<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/975181679/?value=0&amp;guid=ON&amp;script=0"/>
	</div>
	</noscript>
	
  </body>
</html>  