<?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>Wade Wegner</title>
	
	<link>http://www.wadewegner.com</link>
	<description>From the whiteboard to the keyboard</description>
	<lastBuildDate>Fri, 27 Aug 2010 20:26:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WadeWegner" /><feedburner:info uri="wadewegner" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>39.610431</geo:lat><geo:long>-104.881399</geo:long><feedburner:emailServiceId>WadeWegner</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FWadeWegner" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FWadeWegner" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FWadeWegner" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/WadeWegner" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FWadeWegner" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FWadeWegner" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FWadeWegner" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FWadeWegner" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><item>
		<title>Service Bus on the Cloud Cover Show</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/vItrd-q5fGE/</link>
		<comments>http://www.wadewegner.com/2010/08/service-bus-on-the-cloud-cover-show/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 19:01:59 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[Service Bus]]></category>
		<category><![CDATA[Windows Azure AppFabric]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/service-bus-on-the-cloud-cover-show/</guid>
		<description><![CDATA[Ryan Dunn and Steve Marx have a great show on Channel9 called the Cloud Cover Show.&#160; I’ve been watching it since the beginning, and have learned a lot about different features of the Windows Azure Platform, the latest news and announcements, as well as tips and tricks.&#160; Naturally, I was honored (and a bit scared) [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WadeCloudCoverShow" border="0" alt="WadeCloudCoverShow" align="right" src="http://www.wadewegner.com/wp-content/uploads/2010/08/WadeCloudCoverShow.png" width="135" height="103" /> <a href="http://dunnry.com/blog/" target="_blank">Ryan Dunn</a> and <a href="http://blog.smarx.com/" target="_blank">Steve Marx</a> have a great show on Channel9 called the <a href="http://channel9.msdn.com/shows/Cloud+Cover/" target="_blank">Cloud Cover Show</a>.&#160; I’ve been watching it since the beginning, and have learned a lot about different features of the <a href="http://www.azure.com/" target="_blank">Windows Azure Platform</a>, the latest news and announcements, as well as tips and tricks.&#160; Naturally, I was honored (and a bit scared) when they asked me to join them on the show to talk about the <a href="http://www.microsoft.com/windowsazure/appfabric/default.aspx" target="_blank">Windows Azure AppFabric Service Bus</a>.</p>
<p>Let me state this for the record – I was right to be afraid! &lt;grin&gt;</p>
<p>Let’s talk about how I was introduced – <a href="http://www.youtube.com/watch?v=JwmLyEA52I4" target="_blank">Wegner Clawed</a>.&#160; Watch it for yourself.&#160; If you aren’t laughing hysterically then there’s something wrong with you.&#160; And for the record I am not related to Joe Wegner (at least I hope not)!</p>
<p><a href="http://wadesfunkyfreshbeat.cloudapp.net/" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Wade&#39;s Funky Fresh Beat" border="0" alt="Wade&#39;s Funky Fresh Beat" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image10.png" width="199" height="211" /></a></p>
<p>Next, <a href="http://wadesfunkyfreshbeat.cloudapp.net/" target="_blank">Wade’s Funky Fresh Beat</a> – a tribute to both <a href="http://www.youtube.com/watch?v=JwmLyEA52I4" target="_blank">Wegner Clawed</a> and the funky beat in my post <a href="http://www.wadewegner.com/2010/08/use-social-web-providers-in-less-than-5-minutes/" target="_blank">Using Social Web Providers in Less than 5 Minutes</a>.&#160; I’m moved that Steve took the time to put this together.</p>
<p>Of course, we did manage to spend some time talking about the Service Bus, and even showed a few demos (with a funky beat, I might add).</p>
<p><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="512" height="384"><param name="source" value="http://channel9.msdn.com/App_Themes/default/VideoPlayer10_01_18.xap" /><param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/ch9/9566/569566/CloudCoverEp23_2MB_ch9.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://ecn.channel9.msdn.com/o9/ch9/9566/569566/CloudCoverEp23_512_ch9.jpg, postid=569566" /><param name="background" value="#00FFFFFF" /><a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"> <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /> </a> </object></p>
<p>All-in-all, I had a ton of fun (despite losing a bit of dignity).&#160; Can’t wait to come on again!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=vItrd-q5fGE:eWE5tSyukOM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=vItrd-q5fGE:eWE5tSyukOM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=vItrd-q5fGE:eWE5tSyukOM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=vItrd-q5fGE:eWE5tSyukOM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=vItrd-q5fGE:eWE5tSyukOM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=vItrd-q5fGE:eWE5tSyukOM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=vItrd-q5fGE:eWE5tSyukOM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=vItrd-q5fGE:eWE5tSyukOM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=vItrd-q5fGE:eWE5tSyukOM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/vItrd-q5fGE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/service-bus-on-the-cloud-cover-show/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>

		<feedburner:origLink>http://www.wadewegner.com/2010/08/service-bus-on-the-cloud-cover-show/</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/WadeWegner/~5/gJzt1bZwDy4/CloudCoverEp23_2MB_ch9.wmv" length="762828181" type="video/asf" /><feedburner:origEnclosureLink>http://ecn.channel9.msdn.com/o9/ch9/9566/569566/CloudCoverEp23_2MB_ch9.wmv</feedburner:origEnclosureLink></item>
		<item>
		<title>Using the ‘TrustServerCertificate’ Property with SQL Azure and Entity Framework</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/gumgWJ5BGqc/</link>
		<comments>http://www.wadewegner.com/2010/08/using-the-trustservercertificate-property-with-sql-azure-and-entity-framework/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 04:48:58 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[SQL Azure]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/using-the-trustservercertificate-property-with-sql-azure-and-entity-framework/</guid>
		<description><![CDATA[I’ve spent the last few days refactoring a web application to leverage SQL Server via Entity Framework 4.0 (EF4) in preparation for migrating it to SQL Azure.&#160; It’s a neat application, and a great example of how to fully encapsulate your data tier (the previous version had issues due to tight coupling between the data [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve spent the last few days refactoring a web application to leverage SQL Server via Entity Framework 4.0 (EF4) in preparation for migrating it to SQL Azure.&#160; It’s a neat application, and a great example of how to fully encapsulate your data tier (the previous version had issues due to tight coupling between the data and web tier).&#160; More on this soon.</p>
<p>So, when I deployed my database to SQL Azure (using the SQL Azure Migration Wizard) I was confounded by the following error:</p>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; font-size: 12px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0 &#8211; The certificate&#8217;s CN name does not match the passed value.)</div>
<p> 
<p>I was caught off guard by this error, as I was pretty sure my connection string was valid – after all, I had copied it directly from the SQL Azure portal.&#160; Then I realized that this was the first time I had attempted to use EF4 along with SQL Azure; my first thought was, “oh crap!”</p>
<p>After a little bit of frantic research I found the following <a href="http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/94d24825-c5f7-4fb1-8c9f-a43be3ebde70" target="_blank">question on the SQL Azure forums</a>.&#160; Raymond Li of Microsoft made the suggestion to set the ‘TrustServerCertificate’ property to True.&#160; So, I updated my connection string from …</p>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;</span><span style="color: #800000">add</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;BidNowDataContext&quot;</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">	<span style="color: #ff0000">connectionString</span>=<span style="color: #0000ff">&quot;metadata=</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		res://*/BidNowDataContext.csdl|res://*/BidNowDataContext.ssdl|</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		res://*/BidNowDataContext.msl;</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">	provider=System.Data.SqlClient;</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">	provider connection string=&amp;quot;</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		Server=tcp:SERVERNAME.database.windows.net;Database=BidNow;</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		User ID=USERNAME@SERVERNAME;Password=PASSWORD;</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		Trusted_Connection=False;Encrypt=True;&amp;quot;&quot;</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">	<span style="color: #ff0000">providerName</span>=<span style="color: #0000ff">&quot;System.Data.EntityClient&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
</div>
<p>
  <br />… to …</p>
</p>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;</span><span style="color: #800000">add</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">&quot;BidNowDataContext&quot;</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">	<span style="color: #ff0000">connectionString</span>=<span style="color: #0000ff">&quot;metadata=</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		res://*/BidNowDataContext.csdl|res://*/BidNowDataContext.ssdl|</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		res://*/BidNowDataContext.msl;</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">	provider=System.Data.SqlClient;</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">	provider connection string=&amp;quot;</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		Server=tcp:SERVERNAME.database.windows.net;Database=BidNow;</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		User ID=USERNAME@SERVERNAME;Password=PASSWORD;</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		Trusted_Connection=False;Encrypt=True;trustServerCertificate=true;</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">		&amp;quot;&quot;</span></pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">	<span style="color: #ff0000">providerName</span>=<span style="color: #0000ff">&quot;System.Data.EntityClient&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
</div>
<p>
  <br />… and voilà!&#160; It worked!</p>
<p>Turns out that when <font face="Courier New">Encryt=True</font> and <font face="Courier New">TrustServerCertificate=False</font>, the driver will attempt to validate the SQL Server SSL certificate.&#160; By setting the property <font face="Courier New">TrustServerCertificate=True</font> the driver will not validate the SQL Server SSL certificate.</p>
<p>Of course, once I learned tried this I came across an article on MSDN called <a href="http://msdn.microsoft.com/en-us/library/ee336243.aspx" target="_blank">How to: Connect to SQL Azure Using ADO.NET</a> to says to set the TrustServerCertificate property to False and the Encrypt property to True to prevent any man-in-the-middle attacks, so I guess I should include the following disclaimer: <em><strong>Use at your own risk!</strong></em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=gumgWJ5BGqc:YXtm03KTWpU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=gumgWJ5BGqc:YXtm03KTWpU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=gumgWJ5BGqc:YXtm03KTWpU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=gumgWJ5BGqc:YXtm03KTWpU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=gumgWJ5BGqc:YXtm03KTWpU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=gumgWJ5BGqc:YXtm03KTWpU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=gumgWJ5BGqc:YXtm03KTWpU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=gumgWJ5BGqc:YXtm03KTWpU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=gumgWJ5BGqc:YXtm03KTWpU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/gumgWJ5BGqc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/using-the-trustservercertificate-property-with-sql-azure-and-entity-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/using-the-trustservercertificate-property-with-sql-azure-and-entity-framework/</feedburner:origLink></item>
		<item>
		<title>SQL Azure Adds Support for Database Copy</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/uXKcL6FKmVw/</link>
		<comments>http://www.wadewegner.com/2010/08/sql-azure-adds-support-for-database-copy/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 04:36:37 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Windows Azure Platform]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/sql-azure-adds-support-for-database-copy/</guid>
		<description><![CDATA[The SQL Azure team has announced SQL Azure Service Update 4, which includes database copy, an improved help system, and deployment of Microsoft Project Code-Named “Houston” to multiple data centers.&#160; See the SQL Azure Team Blog for the formal announcement. Customers have been asking for a way to backup databases with SQL Azure for a [...]]]></description>
			<content:encoded><![CDATA[<p>The SQL Azure team has announced SQL Azure Service Update 4, which includes database copy, an improved help system, and deployment of Microsoft Project Code-Named “Houston” to multiple data centers.&#160; See the <a href="http://blogs.msdn.com/b/sqlazure/archive/2010/08/24/10053883.aspx" target="_blank">SQL Azure Team Blog</a> for the formal announcement.</p>
<p>Customers have been asking for a way to backup databases with SQL Azure for a long time, and the new database copy capabilities will provide a lot of support.&#160; From the SQL Azure Team Blog:</p>
<blockquote><p><strong>Support for database copy:</strong> Database copy allows you to make a real-time complete snapshot of your database into a different server in the data center. This new copy feature is the first step in backup support for SQL Azure, allowing you to get a complete backup of any SQL Azure database before making schema or database changes to the source database. The ability to snapshot a database easily is our top requested feature for SQL Azure, and goes above and beyond our database center replication to keep your data always available. The MSDN Documentation with more information is entitled: <a href="http://msdn.microsoft.com/en-us/library/ff951624.aspx" target="_blank">Copying Databases in SQL Azure</a>.</p>
</blockquote>
<p>Good stuff.&#160; So, if you want to rename a database, you can do this …</p>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 500px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #008000">// Rename a database</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">ALTER DATABASE database1 modify name=database2</pre>
</div>
<p>
  <br />… if you want to make a copy of a database, you can do this …</p>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 500px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #008000">// Create a consistent copy of a database</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">CREATE DATABASE database2 AS COPY OF database1</pre>
</div>
<p>
  <br />… and finally, if you want to track the copy progress of a database, you can do this …</p>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 500px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #008000">// Keep track of the copy progress</span></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">SELECT * FROM sys.dm_database_copies</pre>
</div>
<p>
  <br />There is also some great <a href="http://msdn.microsoft.com/en-us/library/ee621787.aspx" target="_blank">“How-To” documentation</a> that’s been published to MSDN that you should take a look at:</p>
<ul>
<p><a href="http://msdn.microsoft.com/en-us/library/ee336282.aspx">Guidelines for Connecting to SQL Azure Database</a> </p>
<p><a href="http://msdn.microsoft.com/en-us/library/ee336280.aspx">How to: Connect to SQL Azure Using sqlcmd</a> </p>
<p><a href="http://msdn.microsoft.com/en-us/library/ee336243.aspx">How to: Connect to SQL Azure Using ADO.NET</a> </p>
<p><a href="http://msdn.microsoft.com/en-us/library/ee621781.aspx">How to: Connect to SQL Azure Through ASP.NET</a> </p>
<p><a href="http://msdn.microsoft.com/en-us/library/ee621789.aspx">How to: Connect to SQL Azure Through WCF (ADO.NET) Data Services</a> </p>
<p><a href="http://msdn.microsoft.com/en-us/library/ff394110.aspx">How to: Connect to SQL Azure Using PHP</a> </p>
<p><a href="http://msdn.microsoft.com/en-us/library/ff951633.aspx">How to: Connect to SQL Azure Using the ADO.NET Entity Framework</a></p>
</ul>
<p>And don’t forget about “Houston”.&#160; <a href="http://blogs.msdn.com/b/sqlazure/archive/2010/07/26/10042571.aspx" target="_blank">Microsoft project Microsoft Project Code-Named “Houston” (Houston)</a> is a light weight web-based database management tool for SQL Azure. Houston, which runs on top of Windows Azure is now available in multiple datacenters reducing the latency between the application and your SQL Azure database.</p>
<p>Enjoy!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uXKcL6FKmVw:oF8BWoWRE3A:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uXKcL6FKmVw:oF8BWoWRE3A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=uXKcL6FKmVw:oF8BWoWRE3A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uXKcL6FKmVw:oF8BWoWRE3A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=uXKcL6FKmVw:oF8BWoWRE3A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uXKcL6FKmVw:oF8BWoWRE3A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uXKcL6FKmVw:oF8BWoWRE3A:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uXKcL6FKmVw:oF8BWoWRE3A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=uXKcL6FKmVw:oF8BWoWRE3A:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/uXKcL6FKmVw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/sql-azure-adds-support-for-database-copy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/sql-azure-adds-support-for-database-copy/</feedburner:origLink></item>
		<item>
		<title>AutoStart WCF Services to Expose them as Service Bus Endpoints</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/3kdPpstSYmY/</link>
		<comments>http://www.wadewegner.com/2010/08/autostart-wcf-services-to-expose-them-as-service-bus-endpoints/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 16:30:46 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[Autostart]]></category>
		<category><![CDATA[Service Bus]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Windows Azure AppFabric]]></category>
		<category><![CDATA[Windows Server AppFabric]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/autostart-wcf-services-to-expose-them-as-service-bus-endpoints/</guid>
		<description><![CDATA[A couple months ago I wrote a post on how to host WCF services in IIS that expose themselves as endpoints on the Windows Azure AppFabric Service Bus.&#160; The principal challenge in this scenario is that IIS/WAS relies on message-based activation and will only launch the host after the first request comes in.&#160; However, until [...]]]></description>
			<content:encoded><![CDATA[<p>A couple months ago I wrote a post on how to host <a href="http://www.wadewegner.com/2010/05/host-wcf-services-in-iis-with-service-bus-endpoints/" target="_blank">WCF services in IIS that expose themselves as endpoints on the Windows Azure AppFabric Service Bus</a>.&#160; The principal challenge in this scenario is that IIS/WAS relies on message-based activation and will only launch the host after the first request comes in.&#160; However, until the host is launched the service will not connect to the Service Bus, and consequently will never receive a message.&#160; A classic <a href="http://dictionary.reference.com/browse/Catch-22" target="_blank">catch-22</a>.</p>
<p>The solution I proposed was to leverage the Application Warm-Up Extension for IIS 7.5, which will proactively load and initialize processes before the first request arrives.&#160; While this is acceptable, I’ve found a better solution using the Windows Server AppFabric Autostart (thanks to conversations with <a href="blogs.msdn.com/b/rjacobs" target="_blank">Ron Jacobs</a>).</p>
<p> <object data="data:application/x-silverlight," type="application/x-silverlight" width="490" height="350">     <param name="source" value="http://blog.wadewegner.com/MediaPlayerTemplate.xap" />     <param name="onerror" value="onSilverlightError" />     <param name="autoUpgrade" value="true" />     <param name="minRuntimeVersion" value="3.0.40624.0" />                 <param name="enableHtmlAccess" value="true" />     <param name="enableGPUAcceleration" value="true" />     <param name="initparams" value="playerSettings = 
                &lt;Playlist&gt;
                    &lt;AutoLoad&gt;false&lt;/AutoLoad&gt;
                    &lt;AutoPlay&gt;false&lt;/AutoPlay&gt;
                    &lt;DisplayTimeCode&gt;false&lt;/DisplayTimeCode&gt;
                    &lt;EnableCachedComposition&gt;true&lt;/EnableCachedComposition&gt;
                    &lt;EnableCaptions&gt;false&lt;/EnableCaptions&gt;
                    &lt;EnableOffline&gt;false&lt;/EnableOffline&gt;
                    &lt;EnablePopOut&gt;true&lt;/EnablePopOut&gt;
                    &lt;StartMuted&gt;false&lt;/StartMuted&gt;
                    &lt;StretchMode&gt;None&lt;/StretchMode&gt;
                    &lt;Items&gt;
						&lt;PlaylistItem&gt;
							&lt;AudioCodec&gt;Wma&lt;/AudioCodec&gt;
							&lt;Description&gt;&lt;/Description&gt;
							&lt;FileSize&gt;12342727&lt;/FileSize&gt;
							&lt;FrameRate&gt;15.000015000015&lt;/FrameRate&gt;
							&lt;Height&gt;768&lt;/Height&gt;
							&lt;IsAdaptiveStreaming&gt;false&lt;/IsAdaptiveStreaming&gt;
							&lt;MediaSource&gt;http://wadewegner.blob.core.windows.net/wmvs/AutostartWCF.wmv&lt;/MediaSource&gt;
							&lt;ThumbSource&gt;&lt;/ThumbSource&gt;
							&lt;Title&gt;Autostart WCF Services for Service Bus Connectivity&lt;/Title&gt;
							&lt;VideoCodec&gt;VC1&lt;/VideoCodec&gt;
							&lt;Width&gt;1024&lt;/Width&gt;
						&lt;/PlaylistItem&gt;
                    &lt;/Items&gt;
                &lt;/Playlist&gt;" />            <!--  unused valid silverlight init parameters
    <param name="enableFrameRateCounter" value="bool" />
    <param name="enableRedrawRegions" value="bool" />
    <param name="maxFrameRate" value="int" />
    <param name="allowHtmlPopupWindow" value="bool"/>
    <param name="background" value="colorValue"/>
    <param name="splashScreenSource" value="uri"/>
    <param name="fullScreen" value="bool"/>
    <param name="onFullScreenChanged" value="functionname"/>
    <param name="onResize" value="functionname"/>
    <param name="onSourceDownloadComplete" value="functionname"/>
    <param name="onSourceDownloadProgressChanged" value="functionname"/>
    <param name="windowLess" value="bool"/>
        -->           <div onmouseover="highlightDownloadArea(true)" onmouseout="highlightDownloadArea(false)">             <img src="" style="position:absolute;width:100%;height:100%;border-style:none;" onerror="this.style.display='none'" />             <img src="Preview.png" style="position:absolute;width:100%;height:100%;border-style:none;" onerror="this.style.display='none'" />                                                         <div id="overlay" class="fadeLots" style="position:absolute;width:100%;height:100%;border-style:none;background-color:white;"/></div>             <table width="100%" height="100%" style="position:absolute;"><tr><td align="center" valign="middle">                                    <img src="http://go2.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight">              </td></tr></table>                                <a href="http://go2.microsoft.com/fwlink/?LinkID=124807">                 <img src="" class="fadeCompletely" style="position:absolute;width:100%;height:100%;border-style:none;" alt="Get Microsoft Silverlight" />             </a>                            </div>              </object>
<p><a href="http://msdn.microsoft.com/en-us/library/ee677260.aspx" target="_blank">Windows Server AppFabric Autostart</a> is a feature introduced in Windows 7 and Windows Server 2008 R2.&#160; The primary use cases are for reducing the latency incurred by the first message and to host WCF transports/protocols for which their are no listener adapters.&#160; As you can see, initializing the host so that it connects to the Service Bus is another benefit.</p>
<p>To set this up, ensure that you have installed Windows Server AppFabric on your machine.&#160; I personally recommend you use the <a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a> to do this for you (I detail how to do this in the first part of my post on <a href="http://www.wadewegner.com/2010/08/getting-started-with-windows-server-appfabric-cache/" target="_blank">Getting Started with Windows Server AppFabric Cache</a>).&#160; Once you have this installed, follow these steps:</p>
<ol>
<li>Open <strong>IIS Manager</strong>.&#160; Navigate to your web application. </li>
<li>Click on <strong>Configure</strong> in Actions pane. </li>
<li>Configure the application to either autostart all the services by choosing <strong>Enabled</strong> or specific services by choosing <strong>Custom</strong>. </li>
<li>If you specified <strong>Custom</strong>, navigate to the configuration panel for that specific service and turn autostart to <strong>Enabled</strong>. </li>
</ol>
<p>Pretty straightforward.&#160; I think you’ll like this solution, as it keeps everything within the AppFabric family.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=3kdPpstSYmY:lnsUzRo-ln4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=3kdPpstSYmY:lnsUzRo-ln4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=3kdPpstSYmY:lnsUzRo-ln4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=3kdPpstSYmY:lnsUzRo-ln4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=3kdPpstSYmY:lnsUzRo-ln4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=3kdPpstSYmY:lnsUzRo-ln4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=3kdPpstSYmY:lnsUzRo-ln4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=3kdPpstSYmY:lnsUzRo-ln4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=3kdPpstSYmY:lnsUzRo-ln4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/3kdPpstSYmY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/autostart-wcf-services-to-expose-them-as-service-bus-endpoints/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/autostart-wcf-services-to-expose-them-as-service-bus-endpoints/</feedburner:origLink></item>
		<item>
		<title>Configuring an ASP.NET Web Application to Use a Windows Server AppFabric Cache for Session State</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/OgLF5Lu-Xqs/</link>
		<comments>http://www.wadewegner.com/2010/08/configuring-an-asp-net-web-application-to-use-a-windows-server-appfabric-cache-for-session-state/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 22:36:55 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[.NET 4.0]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Windows Server AppFabric]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/configuring-an-asp-net-web-application-to-use-a-windows-server-appfabric-cache-for-session-state/</guid>
		<description><![CDATA[Last week I spent some time setting up Windows Server AppFabric Cache in anticipation of additional tasks this week.&#160; The first task is configuring an ASP.NET web application to use Windows Server AppFabric Caching for the Session State Provider.&#160; This allows the web application to spread session objects across the entire cache cluster, resulting in [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I spent some time <a href="http://www.wadewegner.com/2010/08/getting-started-with-windows-server-appfabric-cache/" target="_blank">setting up Windows Server AppFabric Cache</a> in anticipation of additional tasks this week.&nbsp; The first task is configuring an ASP.NET web application to use Windows Server AppFabric Caching for the Session State Provider.&nbsp; This allows the web application to spread session objects across the entire cache cluster, resulting in greater scalability.</p>
<p>Below is a walkthrough on how to configure this scenario.&nbsp; In addition to this post, I recommend you take a look at <a href="http://msdn.microsoft.com/en-us/library/ee790859.aspx" target="_blank">this article on MSDN</a>.</p>
<ol>
<li>Thoroughly review <a href="http://www.wadewegner.com/2010/08/getting-started-with-windows-server-appfabric-cache/" target="_blank">Getting Started with Windows Server AppFabric Cache</a> to get everything setup.
<li>Open up the <strong>Cache PowerShell</strong> console (Start –&gt; Windows Server AppFabric –&gt; Caching Administration Windows PowerShell).&nbsp; This will automatically import the <font face="Courier New">DistributedCacheAdministration</font> module and use the <font face="Courier New">CacheCluster</font>.
<li>Start the Cache Cluster (if not already started).&nbsp; Run the following command in the PowerShell console: <br />
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">Start-CacheCluster</pre>
</div>
<li>Create a new cache that you will leverage for your session state provider.&nbsp; Run the following command in the PowerShell console:
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">New-Cache MySessionStateCache</pre>
</div>
<li>Create a <strong>new ASP.NET Web Application</strong> in <strong>Visual Studio 2010</strong> targeting .NET 4.0.&nbsp; This will create a sample project, complete with master page which we’ll leverage later on.
<li>Add references to the <strong><font face="Courier New">Microsoft.ApplicationServer.Caching.Client</font></strong> and <strong><font face="Courier New">Microsoft.ApplicationServer.Caching.Core</font></strong>.&nbsp; To do this, use the following steps (thanks to <a href="http://blogs.msdn.com/b/rjacobs/archive/2010/03/04/how-to-add-a-reference-to-microsoft-applicationserver-caching-client.aspx" target="_blank">Ron Jacobs for the insight</a>):
<ol>
<li>Right-click on your project and select <strong>Add Reference</strong>.
<li>Select the <strong>Browse</strong> tab.
<li>Enter the following folder name, and press enter:
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">%windir%\Sysnative\AppFabric</pre>
</div>
<li>Locate and select both <strong><font face="Courier New">Microsoft.ApplicationServer.Caching.Client</font></strong> and <strong><font face="Courier New">Microsoft.ApplicationServer.Caching.Core</font></strong> assemblies. </li>
</ol>
<li>Add the <strong><font face="Courier New">configSections</font></strong> element to the <strong>web.config</strong> file as the very first element element in the configuration element:
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #008000">&lt;!--configSections must be the FIRST element --&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;</span><span style="color: #800000">configSections</span><span style="color: #0000ff">&gt;</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  <span style="color: #008000">&lt;!-- required to read the &lt;dataCacheClient&gt; element --&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">section</span> <span style="color: #ff0000">name</span>=<span style="color: #0000ff">"dataCacheClient"</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        <span style="color: #ff0000">type</span>=<span style="color: #0000ff">"Microsoft.ApplicationServer.Caching.DataCacheClientSection,
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">          Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0,
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">          Culture=neutral, PublicKeyToken=31bf3856ad364e35"</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        <span style="color: #ff0000">allowLocation</span>=<span style="color: #0000ff">"true"</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        <span style="color: #ff0000">allowDefinition</span>=<span style="color: #0000ff">"Everywhere"</span><span style="color: #0000ff">/&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">configSections</span><span style="color: #0000ff">&gt;</span></pre>
</div>
<li>Add the <strong><font face="Courier New">dataCacheClient</font></strong> element to the <strong>web.config</strong> file, after the configSections element.&nbsp; Be sure to replace <strong>YOURHOSTNAME</strong> with the name of your cache host.&nbsp; In the PowerShell console you can get the HostName (and CachePort) by starting or restarting your cache).
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;</span><span style="color: #800000">dataCacheClient</span><span style="color: #0000ff">&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  <span style="color: #008000">&lt;!-- cache host(s) --&gt;</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">hosts</span><span style="color: #0000ff">&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">host</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        <span style="color: #ff0000">name</span>=<span style="color: #0000ff">"YOURHOSTNAME"</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        <span style="color: #ff0000">cachePort</span>=<span style="color: #0000ff">"22233"</span><span style="color: #0000ff">/&gt;</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  <span style="color: #0000ff">&lt;/</span><span style="color: #800000">hosts</span><span style="color: #0000ff">&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dataCacheClient</span><span style="color: #0000ff">&gt;</span></pre>
</div>
<li>Add the <strong><font face="courier ">sessionState</font></strong> element to the <strong>web.config</strong> file in the system.web element.&nbsp; Be sure that the <strong>cacheName</strong> is the same as the cache you created in step 4.
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;</span><span style="color: #800000">sessionState</span> <span style="color: #ff0000">mode</span>=<span style="color: #0000ff">"Custom"</span> <span style="color: #ff0000">customProvider</span>=<span style="color: #0000ff">"AppFabricCacheSessionStoreProvider"</span><span style="color: #0000ff">&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  <span style="color: #0000ff">&lt;</span><span style="color: #800000">providers</span><span style="color: #0000ff">&gt;</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    <span style="color: #008000">&lt;!-- specify the named cache for session data --&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">add</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">      <span style="color: #ff0000">name</span>=<span style="color: #0000ff">"AppFabricCacheSessionStoreProvider"</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">      <span style="color: #ff0000">type</span>=<span style="color: #0000ff">"Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">      <span style="color: #ff0000">cacheName</span>=<span style="color: #0000ff">"MySessionStateCache"</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">      <span style="color: #ff0000">sharedId</span>=<span style="color: #0000ff">"SharedApp"</span><span style="color: #0000ff">/&gt;</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">  <span style="color: #0000ff">&lt;/</span><span style="color: #800000">providers</span><span style="color: #0000ff">&gt;</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">sessionState</span><span style="color: #0000ff">&gt;</span></pre>
</div>
<li>Now, we need a quick and easy way to test this.&nbsp; There are many ways to do this, below is mine.&nbsp; I loaded data into session, then created a button that writes the session data into a JavaScript alert.&nbsp; Quick and easy:
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #0000ff">protected</span> <span style="color: #0000ff">void</span> Page_Load(<span style="color: #0000ff">object</span> sender, EventArgs e)
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">{
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    <span style="color: #008000">// Store information into session</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    Session["<span style="color: #8b0000">PageLoadDateTime</span>"] = DateTime.Now.ToString();
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"></pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    <span style="color: #008000">// Reference the ContentPlaceHoler on the master page</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    ContentPlaceHolder mpContentPlaceHolder =
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        (ContentPlaceHolder)Master.FindControl("<span style="color: #8b0000">MainContent</span>");
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    <span style="color: #0000ff">if</span> (mpContentPlaceHolder != <span style="color: #0000ff">null</span>)
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    {
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        <span style="color: #008000">// Register the button</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        mpContentPlaceHolder.Controls.Add(
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">            GetButton("<span style="color: #8b0000">btnDisplayPageLoadDateTime</span>", "<span style="color: #8b0000">Click Me</span>"));
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    }
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">}
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"></pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #008000">// Define the button</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"><span style="color: #0000ff">private</span> Button GetButton(<span style="color: #0000ff">string</span> id, <span style="color: #0000ff">string</span> name)
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">{
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    Button b = <span style="color: #0000ff">new</span> Button();
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    b.Text = name;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    b.ID = id;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    b.OnClientClick = "<span style="color: #8b0000">alert('PageLoadDateTime defined at </span>" +
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">        Session["<span style="color: #8b0000">PageLoadDateTime</span>"] + "<span style="color: #8b0000">')</span>";
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">    <span style="color: #0000ff">return</span> b;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">}</pre>
</div>
<li>Now, hit <strong>control-F5</strong> to start your project.&nbsp; After it loads, click the button labeled “Click Me” – you should see the following alert: <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/image9.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ASP.NET using Cache for Session State" border="0" alt="ASP.NET using Cache for Session State" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image_thumb6.png" width="644" height="449"></a> </li>
</ol>
<p>That’s it!&nbsp; You have now configured your ASP.NET web application to leverage Windows Server AppFabric Cache to store all Session State.&nbsp; </p>
<p>While I was putting this together, I encountered two errors.&nbsp; I figured I’d share them here, along with resolution, in case any of you encounter the same problems along the way.</p>
<ul>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">Configuration Error
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">&nbsp; </pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">Description: An error occurred during the processing of a configuration
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">file required to service this request. Please review the specific error
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">details below and modify your configuration file appropriately.
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">Parser Error Message: ErrorCode&lt;ERRCA0009&gt;:SubStatus&lt;ES0001&gt;:Cache
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">referred to does not exist. Contact administrator or use the Cache
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">administration tool to create a Cache.</pre>
</div>
<p><br />If you received the above error message, it’s likely that the cacheName specified in the sessionState element is wrong.&nbsp; Update the cacheName to reflect the cache you created in step #4.</p>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">Configuration Error
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">&nbsp; </pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">Description: An error occurred during the processing of a configuration
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">file required to service this request. Please review the specific error
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">details below and modify your configuration file appropriately.
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">Parser Error Message: ErrorCode&lt;ERRCA0017&gt;:SubStatus&lt;ES0006&gt;:There is
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">a temporary failure. Please retry later. (One or more specified Cache
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">servers are unavailable, which could be caused by busy network or
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">servers. Ensure that security permission has been granted for this
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">client account on the cluster and that the AppFabric Caching Service
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px">is allowed through the firewall on all cache hosts. Retry later.)</pre>
</div>
<p><br />If you received the above error message, it’s likely that the host name specified in the dataCacheClient is wrong.&nbsp; Update the dataCacheClient host name to reflect the name of your host.&nbsp; Note: it’s likely that it’s just your machine name.</p>
</ul>
<p>Hope this help!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=OgLF5Lu-Xqs:8M4xxPt9rwA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=OgLF5Lu-Xqs:8M4xxPt9rwA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=OgLF5Lu-Xqs:8M4xxPt9rwA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=OgLF5Lu-Xqs:8M4xxPt9rwA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=OgLF5Lu-Xqs:8M4xxPt9rwA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=OgLF5Lu-Xqs:8M4xxPt9rwA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=OgLF5Lu-Xqs:8M4xxPt9rwA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=OgLF5Lu-Xqs:8M4xxPt9rwA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=OgLF5Lu-Xqs:8M4xxPt9rwA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/OgLF5Lu-Xqs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/configuring-an-asp-net-web-application-to-use-a-windows-server-appfabric-cache-for-session-state/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/configuring-an-asp-net-web-application-to-use-a-windows-server-appfabric-cache-for-session-state/</feedburner:origLink></item>
		<item>
		<title>Getting Started with Windows Server AppFabric Cache</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/mu0SMhL6F98/</link>
		<comments>http://www.wadewegner.com/2010/08/getting-started-with-windows-server-appfabric-cache/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 21:22:58 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Windows Server AppFabric]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/getting-started-with-windows-server-appfabric-cache/</guid>
		<description><![CDATA[I struggled today to find a good “Getting started with Windows Server AppFabric Cache” tutorial – either my search fu failed me or it simply doesn’t exist.&#160; Nevertheless, I was able to piece together the information I needed to get started. I recommend you break this up into three steps: Installing Windows Server AppFabric Configuring [...]]]></description>
			<content:encoded><![CDATA[<p>I struggled today to find a good “Getting started with Windows Server AppFabric Cache” tutorial – either my <em>search fu </em>failed me or it simply doesn’t exist.&#160; Nevertheless, I was able to piece together the information I needed to get started.</p>
<p>I recommend you break this up into three steps:</p>
<ul>
<li>Installing Windows Server AppFabric</li>
<li>Configuring Windows Server AppFabric Cache</li>
<li>Testing Windows Server AppFabric Cache with Sample Apps</li>
</ul>
<p>I think this article will serve as a good tutorial on getting started, and we can refer back to it as the basis for more advanced scenarios.</p>
<p><strong>Installing Windows Serve AppFabric</strong></p>
<ol>
<li>Get the <a href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Web Platform Installer</a>. </li>
<li>Once it is installed and opened, select <strong>Options</strong>.       <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/clip_image0024.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Options" border="0" alt="Options" src="http://www.wadewegner.com/wp-content/uploads/2010/08/clip_image0024_thumb.jpg" width="244" height="182" /></a> </li>
<li>Under <strong>Display additional scenarios</strong> select <strong>Enterprise</strong>.       <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/clip_image0026.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Enterprise" border="0" alt="Enterprise" src="http://www.wadewegner.com/wp-content/uploads/2010/08/clip_image0026_thumb.jpg" width="244" height="169" /></a> </li>
<li>Now you’ll see an Enterprise tab.&#160; Select it, and choose <strong>Windows Server AppFabric</strong>.&#160; Click <strong>Install</strong>.&#160; This will start a multi-step process for installing Windows Server AppFabric (which in my case required two reboots to complete).       <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/clip_image0028.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Server AppFabric" border="0" alt="Windows Server AppFabric" src="http://www.wadewegner.com/wp-content/uploads/2010/08/clip_image0028_thumb.jpg" width="244" height="182" /></a> </li>
</ol>
<p><strong>Configuring Windows Server AppFabric Cache</strong></p>
<ol>
<li>Open the <strong>Windows Server AppFabric Configuration Wizard</strong> (Start –&gt; Windows Server AppFabric –&gt; Configure AppFabric). </li>
<li>Click <strong>Next</strong> until you reach the <strong>Caching Service</strong> step.&#160; Check <strong>Set Caching Service configuration</strong>, select <strong>SQL Server AppFabric Caching Service Configuration Store Provider</strong> for the configuration provider, and click <strong>Configure</strong>.       <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Set Caching Service" border="0" alt="Set Caching Service" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image_thumb.png" width="244" height="186" /></a> </li>
<li>Check <strong>Create AppFabric Caching Service configuration database</strong>, confirm the <strong>Server </strong>name, and specify a <strong>Database</strong> name. Click <strong>OK</strong>.       <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/image4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Specify Database" border="0" alt="Specify Database" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image_thumb1.png" width="244" height="129" /></a> </li>
<li>When asked if you want to continue, click <strong>Yes</strong>.       <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/image5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Configuration Database confirmation" border="0" alt="Configuration Database confirmation" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image_thumb2.png" width="244" height="93" /></a> </li>
<li>You will receive confirmation that your database was created and registered.      <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/image6.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Success" border="0" alt="Success" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image_thumb3.png" width="244" height="90" /></a> </li>
<li>On the <strong>Cache Node</strong> step, confirm the selected port nodes.       <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/image7.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cache Node ports" border="0" alt="Cache Node ports" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image_thumb4.png" width="244" height="186" /></a> </li>
<li>You will be asked to continue and apply the configuration settings; select <strong>Yes</strong>.       <br /><a href="http://www.wadewegner.com/wp-content/uploads/2010/08/image8.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Continue" border="0" alt="Continue" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image_thumb5.png" width="244" height="107" /></a> </li>
<li>On the last step you’ll click <strong>Finish</strong>. </li>
<li>Open up an elevated <strong>Windows PowerShell </strong>window. </li>
<li>Add the Distributed Cache administration module
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">Import-Module DistributedCacheAdministration</pre>
</div>
</li>
<li>Set the context of your Windows PowerShell session to the desired cache cluster with Use-CacheCluster.&#160; You can run this without parameters to use the connection parameters provided during configuration.
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">Use-CacheCluster</pre>
</div>
</li>
<li>Grant your user account access to the cache cluster as a client.&#160; Specify your user and domain name.
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">Grant-CacheAllowedClientAccount domain\username</pre>
</div>
</li>
<li>Verify your user account has been granted access.
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">Get-CacheAllowedClientAccounts</pre>
</div>
</li>
<li>Start the cluster.
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">Start-CacheCluster</pre>
</div>
</li>
</ol>
<p><strong>Testing Windows Server AppFabric Cache with Sample Apps</strong></p>
<ol>
<li>Grab a copy of the <a href="http://go.microsoft.com/fwlink/?LinkID=167153" target="_blank">Microsoft AppFabric Samples</a>, which are a series of <em>very</em> short examples.</li>
<li>Extract the samples locally.</li>
<li>Open up <strong>CacheSampleWebApp.sln</strong> (..\Samples\Cache\CacheSampleWebApp).</li>
<li>Right-click the <strong>CreateOrder.aspx</strong> file and select <strong>Set As Start Page</strong>.</li>
<li>Hit <strong>F5</strong> to start the solution.</li>
<li>Confirm that the cache is functioning by creating a sample order, getting the sample order, and updating the sample order.</li>
</ol>
<p>Once you accomplish these three steps, you’ll have the basis for building more complex caching solutions.</p>
<p>I hope this helps!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=mu0SMhL6F98:XIHVy9rtvDM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=mu0SMhL6F98:XIHVy9rtvDM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=mu0SMhL6F98:XIHVy9rtvDM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=mu0SMhL6F98:XIHVy9rtvDM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=mu0SMhL6F98:XIHVy9rtvDM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=mu0SMhL6F98:XIHVy9rtvDM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=mu0SMhL6F98:XIHVy9rtvDM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=mu0SMhL6F98:XIHVy9rtvDM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=mu0SMhL6F98:XIHVy9rtvDM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/mu0SMhL6F98" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/getting-started-with-windows-server-appfabric-cache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/getting-started-with-windows-server-appfabric-cache/</feedburner:origLink></item>
		<item>
		<title>Updated Windows Azure AppFabric SDK</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/YqZtE_sBF8c/</link>
		<comments>http://www.wadewegner.com/2010/08/updated-windows-azure-appfabric-sdk/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 22:36:45 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[QFE]]></category>
		<category><![CDATA[Windows Azure AppFabric]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/updated-windows-azure-appfabric-sdk/</guid>
		<description><![CDATA[Today the Windows Azure AppFabric team released an update to the SDK.&#160; This release is what’s called a QFE (quick fix engineering) update that’s intended to address bugs or breaking issues.&#160; To my knowledge, this is the first QFE for the Windows Azure AppFabric.&#160; In this case, the QFE fixed one bug: Adding a Ws2007HttpRelayBinding [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.microsoft.com/windowsazure/appfabric/default.aspx" target="_blank"><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Azure AppFabric" border="0" alt="Windows Azure AppFabric" align="right" src="http://www.wadewegner.com/wp-content/uploads/2010/08/AppFabric2.png" width="240" height="68" /></a>Today the Windows Azure AppFabric team released an <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=39856a03-1490-4283-908f-c8bf0bfad8a5&amp;displaylang=en" target="_blank">update to the SDK</a>.&#160; This release is what’s called a QFE (quick fix engineering) update that’s intended to address bugs or breaking issues.&#160; To my knowledge, this is the first QFE for the Windows Azure AppFabric.&#160; In this case, the QFE fixed one bug:</p>
<blockquote><p>Adding a Ws2007HttpRelayBinding endpoint that uses TransportWithMessageCredential security mode to a ServiceHost that also exposes a local MEX endpoint (not visible through the Service Bus) using the mexHttpsBinding, causes the local MEX endpoint to stop working. Invoking the MEX endpoint results in an InvalidOperationException.</p>
</blockquote>
<p>If you are not experiencing this bug, there is no need for you to download the new version of the SDK.</p>
<p>Here’s the <a href="http://blogs.msdn.com/b/windowsazureappfabric/archive/2010/08/12/new-version-of-the-windows-azure-appfabric-sdk-available-for-download.aspx" target="_blank">post from the Windows Azure AppFabric team blog</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=YqZtE_sBF8c:1kzWRv5QWi8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=YqZtE_sBF8c:1kzWRv5QWi8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=YqZtE_sBF8c:1kzWRv5QWi8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=YqZtE_sBF8c:1kzWRv5QWi8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=YqZtE_sBF8c:1kzWRv5QWi8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=YqZtE_sBF8c:1kzWRv5QWi8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=YqZtE_sBF8c:1kzWRv5QWi8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=YqZtE_sBF8c:1kzWRv5QWi8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=YqZtE_sBF8c:1kzWRv5QWi8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/YqZtE_sBF8c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/updated-windows-azure-appfabric-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/updated-windows-azure-appfabric-sdk/</feedburner:origLink></item>
		<item>
		<title>Using the Expression Encoder SDK to encode lots of videos</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/_kQ2dgLbXJo/</link>
		<comments>http://www.wadewegner.com/2010/08/using-the-expression-encoder-sdk-to-encode-lots-of-videos/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 05:31:32 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Expression Encoder]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/using-the-expression-encoder-sdk-to-encode-lots-of-videos/</guid>
		<description><![CDATA[I spent a good deal of time this weekend importing hours and hours family videos off our Mini DV cassettes.&#160; Lots of fun, and LOTS of video!&#160; Based on the size of these files, I was quite close to running out of room on my Windows Media Center.&#160; So, I decided to encode the files [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a good deal of time this weekend importing hours and hours family videos off our Mini DV cassettes.&#160; Lots of fun, and LOTS of video!&#160; Based on the size of these files, I was quite close to running out of room on my Windows Media Center.&#160; So, I decided to encode the files as WMVs.&#160; Huge size reduction with very little quality loss.</p>
<p>I decided to use Microsoft Expression Encoder 3 – a great tool.&#160; The best part is that there’s an SDK and set of assemblies that you can use in your own applications.</p>
<blockquote><p>Note: if you are using a 64-bit machine, be sure to set the platform target of your application to x86, or else you will get compilation errors from the Encoder assemblies.</p>
</blockquote>
<p>Below you’ll find the application I wrote.&#160; Let me explain my goals:</p>
<ul>
<li>Multi-thread the application to encode more than one video at a time. </li>
<li>Leverage the multitude of cores in my machine. </li>
<li>Limit the number of threads (I chose the core count as a baseline). </li>
<li>Use source video and audio source to reduce quality lose. </li>
</ul>
<p>In order to do this, I had to do two things: 1) find a way to pass in the file name into thread, and 2) keep track of the number of threads and limit them to the number of cores in the machine.</p>
<p>I spent a bit of time looking for a good approach.&#160; In the end, I chose to use the delegate <font face="Courier New">ParameterizedThreadStart</font>, which takes a parameter of type object.&#160; This way, I can create a thread using an instance of this delegate instead of just <font face="Courier New">ThreadStart</font>, and the overload to <font face="Courier New">Thread.Start</font> allows me to specify a value that is passed to this new thread.&#160; (Be careful, though, as it only accepts a single parameter (although it can be a collection) and isn’t type-safe.)&#160; Additionally, with this approach I was able to leverage a counter, and sleep whenever the counter is going to exceed the number of cores in my machine.</p>
<p>Here’s all the code.&#160; For this to function, I imported the following assemblies (yes, you need Expression Encoder 3):</p>
<ul>
<li>Microsoft.Expression.Encoder </li>
<li>Microsoft.Expression.Encoder.Types </li>
<li>Microsoft.Expression.Encoder.Utilities </li>
<li>WindowsBase </li>
</ul>
<div style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 600px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #008000">// This method is used to look-up the core the thread is using</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">[DllImport(&quot;<span style="color: #8b0000">kernel32.dll</span>&quot;, CharSet = CharSet.Auto)]
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">extern</span> <span style="color: #0000ff">int</span> GetCurrentProcessorNumber();
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">&#160;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">static</span> <span style="color: #0000ff">string</span> inputFolder = @&quot;<span style="color: #8b0000">C:\temp\Videos</span>&quot;;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">static</span> <span style="color: #0000ff">string</span> outputFolder = @&quot;<span style="color: #8b0000">C:\temp\OutputVideo</span>&quot;;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">static</span> <span style="color: #0000ff">int</span> count;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">static</span> <span style="color: #0000ff">int</span> maxNum;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">&#160;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> Main(<span style="color: #0000ff">string</span>[] args)
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">{
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Start the counter at zero</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    count = 0;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Grab the processor count</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    maxNum = Environment.ProcessorCount;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Iterate through the AVI files</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #0000ff">foreach</span> (var fileName <span style="color: #0000ff">in</span> System.IO.Directory.GetFiles(inputFolder, &quot;<span style="color: #8b0000">*.avi</span>&quot;))
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    {
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        <span style="color: #008000">// Sleep/wait for a core to free up</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        <span style="color: #0000ff">while</span> (count &gt; (maxNum - 1))
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        {
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">            Thread.Sleep(500);
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        }
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        <span style="color: #008000">// Increment the counter</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        count++;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        <span style="color: #008000">// Create the thread with the delegate</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        Thread t = <span style="color: #0000ff">new</span> Thread(<span style="color: #0000ff">new</span> ParameterizedThreadStart(EncodeFile));
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        <span style="color: #008000">// Start the thread, passing in the file name</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        t.Start(fileName);
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    }
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">}
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">&#160;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> EncodeFile(<span style="color: #0000ff">object</span> ofileName)
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">{
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #0000ff">string</span> fileName = (<span style="color: #0000ff">string</span>)ofileName;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    MediaItem mediaItem = <span style="color: #0000ff">new</span> MediaItem(fileName);
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    mediaItem.OutputFormat = <span style="color: #0000ff">new</span> WindowsMediaOutputFormat();
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Use source video profile if available</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #0000ff">if</span> (mediaItem.SourceVideoProfile != <span style="color: #0000ff">null</span>)
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    {
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        mediaItem.OutputFormat.VideoProfile = mediaItem.SourceVideoProfile;
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    }
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #0000ff">else</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    {
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        mediaItem.OutputFormat.VideoProfile = <span style="color: #0000ff">new</span> AdvancedVC1VideoProfile()
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        {
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">            Size = mediaItem.MainMediaFile.VideoStreams[0].VideoSize,
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">            Bitrate = <span style="color: #0000ff">new</span> ConstantBitrate(1000)
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        };
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    }
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Use source audio profile if available</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #0000ff">if</span> (mediaItem.SourceAudioProfile != <span style="color: #0000ff">null</span>)
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    {
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        mediaItem.OutputFormat.AudioProfile = mediaItem.SourceAudioProfile;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    }
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #0000ff">else</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    {
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        mediaItem.OutputFormat.AudioProfile = <span style="color: #0000ff">new</span> WmaAudioProfile();
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    }
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Create a job and the media item for the video we wish to encode.</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    Job job = <span style="color: #0000ff">new</span> Job();
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    job.MediaItems.Add(mediaItem);
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Set up the progress callback function</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    job.EncodeProgress
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        += <span style="color: #0000ff">new</span> EventHandler&lt;EncodeProgressEventArgs&gt;(OnProgress);
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Set up the completed callback function</span>
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    job.EncodeCompleted
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        += <span style="color: #0000ff">new</span> EventHandler&lt;EncodeCompletedEventArgs&gt;(job_EncodeCompleted);
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Set the output directory and encode</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    job.OutputDirectory = outputFolder;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Do not create a job subfolder</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    job.CreateSubfolder = <span style="color: #0000ff">false</span>;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Encode</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    job.Encode();
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">}
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">&#160;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> job_EncodeCompleted(<span style="color: #0000ff">object</span> sender, EncodeCompletedEventArgs e)
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">{
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Decrement the counter</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    count--;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">}
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">&#160;
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px"><span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> OnProgress(<span style="color: #0000ff">object</span> sender, EncodeProgressEventArgs e)
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">{
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    <span style="color: #008000">// Write out information</span>
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">    Console.WriteLine(
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        count.ToString() + &quot;<span style="color: #8b0000"> : </span>&quot; +
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        GetCurrentProcessorNumber().ToString() + &quot;<span style="color: #8b0000"> : </span>&quot; +
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        System.Threading.Thread.CurrentThread.ManagedThreadId.ToString() + &quot;<span style="color: #8b0000"> : </span>&quot; +
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        e.Progress + &quot;<span style="color: #8b0000"> : </span>&quot; +
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">        e.CurrentItem.ActualOutputFileName);
</pre>
<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">}</pre>
</div>
<p>&#160;</p>
<p>Good stuff.</p>
<p>I’m running it from the console, so you will have to make some modifications if you want it to run in a more sophisticated application.&#160; Works for me, though – I just start it up at the end of the day.&#160; Here you can see the information that’s written out to the console (note the variety of cores leveraged):</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Console Output" border="0" alt="Console Output" src="http://www.wadewegner.com/wp-content/uploads/2010/08/console.png" width="676" height="340" /> </p>
<p>It’s fun to see my machine working this hard.&#160; Every core is pegged.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Pegged Cores" border="0" alt="Pegged Cores" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image2.png" width="730" height="459" /> </p>
<p>Hope someone finds this useful.&#160; Anyone see a better way to approach this?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=_kQ2dgLbXJo:26Oszk_59N4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=_kQ2dgLbXJo:26Oszk_59N4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=_kQ2dgLbXJo:26Oszk_59N4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=_kQ2dgLbXJo:26Oszk_59N4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=_kQ2dgLbXJo:26Oszk_59N4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=_kQ2dgLbXJo:26Oszk_59N4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=_kQ2dgLbXJo:26Oszk_59N4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=_kQ2dgLbXJo:26Oszk_59N4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=_kQ2dgLbXJo:26Oszk_59N4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/_kQ2dgLbXJo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/using-the-expression-encoder-sdk-to-encode-lots-of-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/using-the-expression-encoder-sdk-to-encode-lots-of-videos/</feedburner:origLink></item>
		<item>
		<title>Article: Tips for Migrating Your Applications to the Cloud</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/cUBGr-bXVXg/</link>
		<comments>http://www.wadewegner.com/2010/08/article-tips-for-migrating-your-applications-to-the-cloud/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 15:36:38 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[WIF]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/article-tips-for-migrating-your-applications-to-the-cloud/</guid>
		<description><![CDATA[I had the great pleasure of co-authoring an article on application migration to Windows Azure for MSDN Magazine with my friend George Huey, creator of the SQL Azure Migration Wizard.&#160; This article stems from our work helping dozens of customers – both small and big – migrate their existing applications to run in the cloud. [...]]]></description>
			<content:encoded><![CDATA[<p>I had the great pleasure of co-authoring an <a href="http://msdn.microsoft.com/en-us/magazine/ff872379.aspx" target="_blank">article on application migration to Windows Azure</a> for <a href="http://msdn.microsoft.com/en-us/magazine/default.aspx" target="_blank">MSDN Magazine</a> with my friend George Huey, creator of the <a href="http://sqlazuremw.codeplex.com/" target="_blank">SQL Azure Migration Wizard</a>.&#160; This article stems from our work helping dozens of customers – both small and big – migrate their existing applications to run in the cloud.</p>
<p><a href="http://msdn.microsoft.com/en-us/magazine/ff872379.aspx"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Tips for Migrating Your Applications to the Cloud" border="0" alt="Tips for Migrating Your Applications to the Cloud" src="http://www.wadewegner.com/wp-content/uploads/2010/08/image1.png" width="183" height="246" /></a> </p>
<p>(Ours is the second down on the left.)</p>
<p>While this article is by no means exhaustive, we did try to explain some of the common patterns and scenarios we faced when helping customers migrate their applications into Windows Azure.&#160; I hope you find it valuable.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=cUBGr-bXVXg:j0WaC4uFpoE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=cUBGr-bXVXg:j0WaC4uFpoE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=cUBGr-bXVXg:j0WaC4uFpoE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=cUBGr-bXVXg:j0WaC4uFpoE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=cUBGr-bXVXg:j0WaC4uFpoE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=cUBGr-bXVXg:j0WaC4uFpoE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=cUBGr-bXVXg:j0WaC4uFpoE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=cUBGr-bXVXg:j0WaC4uFpoE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=cUBGr-bXVXg:j0WaC4uFpoE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/cUBGr-bXVXg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/article-tips-for-migrating-your-applications-to-the-cloud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/article-tips-for-migrating-your-applications-to-the-cloud/</feedburner:origLink></item>
		<item>
		<title>Use social web providers in less than 5 minutes</title>
		<link>http://feedproxy.google.com/~r/WadeWegner/~3/uLV7ImInC0c/</link>
		<comments>http://www.wadewegner.com/2010/08/use-social-web-providers-in-less-than-5-minutes/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 05:13:46 +0000</pubDate>
		<dc:creator>Wade</dc:creator>
				<category><![CDATA[Access Control Service]]></category>
		<category><![CDATA[AppFabric]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">http://www.wadewegner.com/2010/08/use-social-web-providers-in-less-than-5-minutes/</guid>
		<description><![CDATA[Significant Access Control Service (ACS) updates released to AppFabric LABS environment today.&#160; Take a look at the Windows Azure AppFabric team blog for the formal announcement.&#160; I’d rather show you a quick demo. Quick summary of new capabilities in the Access Control Service: Integration with Windows Identity Foundation (WIF) and tooling Out-of-the-box support for popular [...]]]></description>
			<content:encoded><![CDATA[<p>Significant <a href="http://www.microsoft.com/windowsazure/appfabric/" target="_blank">Access Control Service</a> (ACS) updates released to AppFabric LABS environment today.&#160; Take a look at the <a href="http://blogs.msdn.com/b/windowsazureappfabric/" target="_blank">Windows Azure AppFabric team blog</a> for the formal announcement.&#160; I’d rather show you a quick demo.</p>
<p></p> <object data="data:application/x-silverlight," type="application/x-silverlight" width="490" height="350">     <param name="source" value="http://blog.wadewegner.com/MediaPlayerTemplate.xap" />     <param name="onerror" value="onSilverlightError" />     <param name="autoUpgrade" value="true" />     <param name="minRuntimeVersion" value="3.0.40624.0" />                 <param name="enableHtmlAccess" value="true" />     <param name="enableGPUAcceleration" value="true" />     <param name="initparams" value="playerSettings = 
                &lt;Playlist&gt;
                    &lt;AutoLoad&gt;false&lt;/AutoLoad&gt;
                    &lt;AutoPlay&gt;false&lt;/AutoPlay&gt;
                    &lt;DisplayTimeCode&gt;false&lt;/DisplayTimeCode&gt;
                    &lt;EnableCachedComposition&gt;true&lt;/EnableCachedComposition&gt;
                    &lt;EnableCaptions&gt;false&lt;/EnableCaptions&gt;
                    &lt;EnableOffline&gt;false&lt;/EnableOffline&gt;
                    &lt;EnablePopOut&gt;true&lt;/EnablePopOut&gt;
                    &lt;StartMuted&gt;false&lt;/StartMuted&gt;
                    &lt;StretchMode&gt;None&lt;/StretchMode&gt;
                    &lt;Items&gt;
						&lt;PlaylistItem&gt;
							&lt;AudioCodec&gt;Wma&lt;/AudioCodec&gt;
							&lt;Description&gt;&lt;/Description&gt;
							&lt;FileSize&gt;12342727&lt;/FileSize&gt;
							&lt;FrameRate&gt;15.000015000015&lt;/FrameRate&gt;
							&lt;Height&gt;768&lt;/Height&gt;
							&lt;IsAdaptiveStreaming&gt;false&lt;/IsAdaptiveStreaming&gt;
							&lt;MediaSource&gt;http://wadewegner.blob.core.windows.net/wmvs/YahooFederation.wmv&lt;/MediaSource&gt;
							&lt;ThumbSource&gt;&lt;/ThumbSource&gt;
							&lt;Title&gt;Use social web providers in less than 5 minutes&lt;/Title&gt;
							&lt;VideoCodec&gt;VC1&lt;/VideoCodec&gt;
							&lt;Width&gt;1024&lt;/Width&gt;
						&lt;/PlaylistItem&gt;
                    &lt;/Items&gt;
                &lt;/Playlist&gt;" />            <!--  unused valid silverlight init parameters
    <param name="enableFrameRateCounter" value="bool" />
    <param name="enableRedrawRegions" value="bool" />
    <param name="maxFrameRate" value="int" />
    <param name="allowHtmlPopupWindow" value="bool"/>
    <param name="background" value="colorValue"/>
    <param name="splashScreenSource" value="uri"/>
    <param name="fullScreen" value="bool"/>
    <param name="onFullScreenChanged" value="functionname"/>
    <param name="onResize" value="functionname"/>
    <param name="onSourceDownloadComplete" value="functionname"/>
    <param name="onSourceDownloadProgressChanged" value="functionname"/>
    <param name="windowLess" value="bool"/>
        -->           <div onmouseover="highlightDownloadArea(true)" onmouseout="highlightDownloadArea(false)">             <img src="" style="position:absolute;width:100%;height:100%;border-style:none;" onerror="this.style.display='none'" />             <img src="Preview.png" style="position:absolute;width:100%;height:100%;border-style:none;" onerror="this.style.display='none'" />                                                         <div id="overlay" class="fadeLots" style="position:absolute;width:100%;height:100%;border-style:none;background-color:white;"/></div>             <table width="100%" height="100%" style="position:absolute;"><tr><td align="center" valign="middle">                                    <img src="http://go2.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight">              </td></tr></table>                                <a href="http://go2.microsoft.com/fwlink/?LinkID=124807">                 <img src="" class="fadeCompletely" style="position:absolute;width:100%;height:100%;border-style:none;" alt="Get Microsoft Silverlight" />             </a>                            </div>              </object>  <p></p>
<p>Quick summary of new capabilities in the Access Control Service:</p>
<ul>
<li>Integration with Windows Identity Foundation (WIF) and tooling </li>
<li>Out-of-the-box support for popular web identity providers including: Windows Live ID, OpenID, Google, Yahoo, and Facebook </li>
<li>Out-of-the-box support for Active Directory Federation Server v2.0 </li>
<li>Support for OAuth WRAP, WS-Trust, and WS-Federation protocols </li>
<li>Support for the SAML 1.1, SAML 2.0, and Simple Web Token (SWT) token formats </li>
<li>Integrated and customizable Home Realm Discovery that allows end-users to choose their identity provider </li>
<li>An OData-based Management Service that provides programmatic access to ACS configuration </li>
<li>A Web Portal that allows administrative access to ACS configuration </li>
</ul>
<p>Try this out yourself.&#160; Use Visual Studio, install <a href="http://msdn.microsoft.com/en-us/evalcenter/dd440951.aspx" target="_blank">Windows Identity Foundation</a>, and go to <a href="https://portal.appfabriclabs.com/" target="_blank">https://portal.appfabriclabs.com/</a>.</p>
<p>For detailed information and a more verbose walkthrough (i.e. including explanations), listen to <a href="http://acs.codeplex.com/wikipage?title=Videos&amp;referringTitle=Home" target="_blank">Justin Smith’s walkthrough and interview</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uLV7ImInC0c:j74gP0yzAVM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uLV7ImInC0c:j74gP0yzAVM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=uLV7ImInC0c:j74gP0yzAVM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uLV7ImInC0c:j74gP0yzAVM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=uLV7ImInC0c:j74gP0yzAVM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uLV7ImInC0c:j74gP0yzAVM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uLV7ImInC0c:j74gP0yzAVM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/WadeWegner?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WadeWegner?a=uLV7ImInC0c:j74gP0yzAVM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WadeWegner?i=uLV7ImInC0c:j74gP0yzAVM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WadeWegner/~4/uLV7ImInC0c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wadewegner.com/2010/08/use-social-web-providers-in-less-than-5-minutes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.wadewegner.com/2010/08/use-social-web-providers-in-less-than-5-minutes/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.732 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-08-27 15:26:53 -->
