<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Danny Thorpe &#187; Silverlight</title>
	<atom:link href="http://dannythorpe.com/tag/silverlight/feed/" rel="self" type="application/rss+xml" />
	<link>http://dannythorpe.com</link>
	<description>Dream &#38; Deliver</description>
	<lastBuildDate>Tue, 07 Feb 2012 17:50:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Silverlight 4 to Include MEF</title>
		<link>http://dannythorpe.com/2009/11/30/silverlight-4-to-include-mef/</link>
		<comments>http://dannythorpe.com/2009/11/30/silverlight-4-to-include-mef/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 20:11:56 +0000</pubDate>
		<dc:creator>Danny Thorpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[exceptions]]></category>
		<category><![CDATA[MEF]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2009/11/30/silverlight-4-to-include-mef/</guid>
		<description><![CDATA[I just heard the news announced at PDC that the Managed Extensibility Framework, or MEF, is now slated to be included in Silverlight 4.  Great news! I did a bit of proof of concept work using MEF about a year ago.  MEF is all about composition of providers and consumers.  MEF&#8217;s main job is to <a href='http://dannythorpe.com/2009/11/30/silverlight-4-to-include-mef/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I just heard the news announced at PDC that the Managed Extensibility Framework, or <a href="http://blogs.msdn.com/gblock/archive/2009/11/29/mef-has-landed-in-silverlight-4-we-come-in-the-name-of-extensibility.aspx">MEF, is now slated to be included in Silverlight 4</a>.  Great news!</p>
<p>I did a bit of proof of concept work using MEF about a year ago.  MEF is all about composition of providers and consumers.  MEF&#8217;s main job is to connect the providers to the consumers so that when the consumer code executes, the providers they require are &#8220;just there.&#8221;</p>
<p>As trivial as that sounds, it significantly changes how you think about programming.  It forces you to think in terms of composition instead of in terms of plumbing and bushwhacking.  As a result, you can focus more energy on solving your actual problem instead of spending the majority of your time building the plumbing and scaffolding so that you can get to the point where you can begin to solve your problem.</p>
<p>For example, if you&#8217;re writing some code and you require &#8220;X&#8221; to get your work done, you write your MEF code module to declare your need for &#8220;X&#8221;.  When your module is loaded by MEF, MEF will take care of the dirty details of finding a provider to fill your need for &#8220;X&#8221;.  The provider may be the one you had in mind when you wrote the code, or it may be completely different, but as long as it implements &#8220;X&#8221; faithfully, you don&#8217;t really care.  The application defines the list of providers to choose from &#8211; whether a fixed list determined at build time or a list gathered at runtime &#8211; the point is, you and your code don&#8217;t need to deal with the how, just declare the what and keep going.</p>
<p>MEF alters your coding thought process from</p>
<blockquote><p>&#8220;I need to figure out how to load and connect to something to get the X that I need&#8221;</p></blockquote>
<p>to</p>
<blockquote><p>&#8220;I need X.  I can rely on X being here when my code executes.  If for whatever reason X isn&#8217;t available, my code won&#8217;t be loaded so I don&#8217;t have to mess with all that.&#8221;</p></blockquote>
<p>This change in thought process is similar to the shift that can and should occur when you go from writing traditional fire-brigade error handling code to writing code in an exception handling environment. For most of the code in your app (the middle layers), you can operate under the mantra of &#8220;If execution gets this far, then everything prior to this must have succeeded.  If anything back there failed, it would have thrown an exception so I wouldn&#8217;t be here now.&#8221;</p>
<p>I&#8217;ll see if I can get clearance to blog about my little MEF experiment from awhile ago.</p>
<div style="text-align:center;width:100%;"><div style="margin:0px 0px 0px 0px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-0861479594738165";
/* End of Post */
google_ad_slot = "6510912161";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></div><p><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://dannythorpe.com/2009/11/30/silverlight-4-to-include-mef/" data-text="Silverlight 4 to Include MEF"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://dannythorpe.com/2009/11/30/silverlight-4-to-include-mef/"></a><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://dannythorpe.com/2009/11/30/silverlight-4-to-include-mef/"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fdannythorpe.com%2F2009%2F11%2F30%2Fsilverlight-4-to-include-mef%2F&amp;title=Silverlight%204%20to%20Include%20MEF" id="wpa2a_4">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2009/11/30/silverlight-4-to-include-mef/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moonlight 1.0 Released &#8211; Silverlight for Linux</title>
		<link>http://dannythorpe.com/2009/02/12/moonlight-10-released-silverlight-for-linux/</link>
		<comments>http://dannythorpe.com/2009/02/12/moonlight-10-released-silverlight-for-linux/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 19:34:35 +0000</pubDate>
		<dc:creator>Danny Thorpe</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[Moonlight]]></category>
		<category><![CDATA[Novell]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2009/02/12/moonlight-10-released-silverlight-for-linux/</guid>
		<description><![CDATA[Congratulations to Miguel de Icaza and his team at Novell for the completion and release of Moonlight 1.0!  Moonlight is an open source implementation of Silverlight for the Linux platform developed in a joint effort between Novell and Microsoft. Silverlight was the primary deployment vehicle for live online video coverage of the Olympics last summer, <a href='http://dannythorpe.com/2009/02/12/moonlight-10-released-silverlight-for-linux/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Congratulations to <a href="http://tirania.org/blog/archive/2009/Feb-11.html">Miguel de Icaza</a> and his team at Novell for the completion and <a href="http://www.novell.com/news/press/moonlight-shines-on-the-linux-desktop/">release of Moonlight 1.0</a>!  Moonlight is an open source implementation of Silverlight for the Linux platform developed in a joint effort between Novell and Microsoft.</p>
<p>Silverlight was the primary deployment vehicle for live online video coverage of the Olympics last summer, and more recently live video coverage of the Obama inaugeration last month.  Moonlight enables Linux users to view video and applications built for Silverlight on their Linux boxes.</p>
<p>Scott Guthrie has more details <a href="http://weblogs.asp.net/scottgu/archive/2009/02/11/moonlight-1-0-release.aspx">here</a>.</p>
<p><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://dannythorpe.com/2009/02/12/moonlight-10-released-silverlight-for-linux/" data-text="Moonlight 1.0 Released &#8211; Silverlight for Linux"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://dannythorpe.com/2009/02/12/moonlight-10-released-silverlight-for-linux/"></a><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://dannythorpe.com/2009/02/12/moonlight-10-released-silverlight-for-linux/"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fdannythorpe.com%2F2009%2F02%2F12%2Fmoonlight-10-released-silverlight-for-linux%2F&amp;title=Moonlight%201.0%20Released%20%E2%80%93%20Silverlight%20for%20Linux" id="wpa2a_8">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2009/02/12/moonlight-10-released-silverlight-for-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Details on Silverlight 2 and Silverlight 3</title>
		<link>http://dannythorpe.com/2008/11/19/details-on-silverlight-2-and-silverlight-3/</link>
		<comments>http://dannythorpe.com/2008/11/19/details-on-silverlight-2-and-silverlight-3/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 19:04:40 +0000</pubDate>
		<dc:creator>Danny Thorpe</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[BlockBuster]]></category>
		<category><![CDATA[H.264]]></category>
		<category><![CDATA[NetFlix]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/11/19/details-on-silverlight-2-and-silverlight-3/</guid>
		<description><![CDATA[Scott Guthrie gives us a status report on the Silverlight 2 deployment and key design wins worldwide.  100 million downloads of Silverlight 2 in the past 4 weeks.  Silverlight is now on 1 in 4 PCs on the web. BlockBuster and Netflix both use Silverlight for their online movie players. Scott also sketches out some details <a href='http://dannythorpe.com/2008/11/19/details-on-silverlight-2-and-silverlight-3/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Scott Guthrie gives us <a href="http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx">a status report on the Silverlight 2 deployment</a> and key design wins worldwide.  100 million downloads of Silverlight 2 in the past 4 weeks.  Silverlight is now on 1 in 4 PCs on the web. BlockBuster and Netflix both use Silverlight for their online movie players.</p>
<p>Scott also sketches out some <a href="http://weblogs.asp.net/scottgu/archive/2008/11/16/update-on-silverlight-2-and-a-glimpse-of-silverlight-3.aspx">details on the Silverlight 3 release</a> planned for sometime next year.  H.264 support, hardware GPU acceleration, and at long last proper design-time support for Silverlight in Visual Studio.</p>
<p><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://dannythorpe.com/2008/11/19/details-on-silverlight-2-and-silverlight-3/" data-text="Details on Silverlight 2 and Silverlight 3"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://dannythorpe.com/2008/11/19/details-on-silverlight-2-and-silverlight-3/"></a><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://dannythorpe.com/2008/11/19/details-on-silverlight-2-and-silverlight-3/"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fdannythorpe.com%2F2008%2F11%2F19%2Fdetails-on-silverlight-2-and-silverlight-3%2F&amp;title=Details%20on%20Silverlight%202%20and%20Silverlight%203" id="wpa2a_12">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/11/19/details-on-silverlight-2-and-silverlight-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Do I Mesh Thee?  Let Me Count The Ways</title>
		<link>http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/</link>
		<comments>http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 09:40:01 +0000</pubDate>
		<dc:creator>Danny Thorpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Google Gears]]></category>
		<category><![CDATA[Live Framework]]></category>
		<category><![CDATA[Live Mesh]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/</guid>
		<description><![CDATA[A few folks I&#8217;ve talked to in the Live Frameworks CTP forum or in email have expressed a little bit of confusion or a lot of surprise at what you can do with the Live Mesh platform and Live Frameworks. Let&#8217;s run through a few of scenarios to give you an idea of the breadth of options you have to leverage Live <a href='http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>A few folks I&#8217;ve talked to in the <a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads/">Live Frameworks CTP forum </a>or in email have expressed a little bit of confusion or a lot of surprise at what you can do with the Live Mesh platform and <a href="http://dev.live.com/liveframework/">Live Frameworks</a>. Let&#8217;s run through a few of scenarios to give you an idea of the breadth of options you have to leverage Live Mesh and Live Services in your applications.</p>
<p>First, let&#8217;s look at what kinds of applications can access user data stored in the user&#8217;s mesh (after user consent, of course):</p>
<ol>
<li>Silverlight mesh-enabled web apps</li>
<li>DHTML + JavaScript mesh-enabled web apps</li>
<li>Server-side web applications (<a href="http://www.microsoft.com/azure/windowsazure.mspx">Windows Azure</a>, ASP.NET, Apache, PHP, etc)</li>
<li>Cloud-based web services (Windows Azure, Amazon EC2, Google Apps, etc)</li>
<li>Desktop .NET apps</li>
<li>Win32 apps</li>
<li>Win64 apps</li>
<li>Linux apps</li>
<li>Mac apps</li>
<li>Mobile device apps</li>
<li>Anything that can make HTTP requests, set HTTP request headers, and process XML responses.  With a little bit of code, your Internet-connected lawn sprinker controller can load its watering schedule from a mesh object in your Live Mesh! </li>
</ol>
<p>We provide .NET client libraries to facilitate using the Live Operating Environment (LOE) services in your app, but .NET is not required to talk to the LOE or to specific services in the Live Services cloud &#8211; you can also talk to Live Services (and the LOE) with RESTful HTTP requests built on industry standards such as Atom, RSS, JSON, and XML using whatever programming tools you want, from whatever device or platform you want.</p>
<h4>Mesh Enabled vs Mesh Aware</h4>
<p>A mesh-enabled web app is a DHTML or Silverlight web application that can not only talk to mesh services and access the user&#8217;s mesh data, but the app itself is a mesh object deployed and sync&#8217;d through the cloud to whatever Internet browser enabled device the user has in front of them.</p>
<p>A mesh-aware application is any other kind of app, running on the client device or on the server, which talks to Live Services and can make use of user data stored in their mesh.  These do not get the benefit of automatic deployment or updates orchestrated by the LOE, but they are also not restricted to the security sandbox of a mesh-enabled web app.</p>
<h4>Online and Offline Modes</h4>
<p>The user&#8217;s mesh data can be accessed by applications when the device is online.  If the Live Mesh client is installed on a device, apps can access user mesh data even when the device has no network connection. Data changes written to the local LOE while offline will be sync&#8217;d to the cloud LOE the next time a network connection is available.</p>
<h4>Data Sync</h4>
<p>The Live Framework automatically synchronizes data changes between the local client and the cloud, in both directions.  The user can select which Mesh Objects are sync&#8217;d to which devices in their mesh.  You&#8217;d want to sync photos from your cameraphone / mobile device up to a mesh folder in the cloud, but you would probably not want to sync all of your photos in the cloud down to your phone.</p>
<h4>Mode Transparency</h4>
<p>Mesh-enabled and mesh-aware applications use the same APIs / HTTP request patterns to access user mesh data in the local LOE as to access user data in the cloud LOE.  What changes is the domain name used in the HTTP request (localhost:port versus cloud domain), and that&#8217;s needed only when making the initial connection to the LOE.  After that, all LOE requests are relative to the base URL of the selected LOE.  And if you&#8217;re using the .NET client libraries, nearly all of that local/cloud selection will be taken care of automatically behind the scenes.</p>
<h4>User Authentication, Authorization, and Delegation </h4>
<p>You can use the LiveID SDK to enable users to log into their mesh account from within your mesh-aware desktop or device applications.  You can also use LiveID in your own Windows Azure cloud services: read <a href="http://dev.live.com/blogs/devlive/archive/2008/11/12/432.aspx">Windows Azure Integration with Windows Live ID, Active Directory and OpenID</a>.</p>
<p>You don&#8217;t have to use LiveID.  If your app is a server-side web app or other service that the end user cannot log into directly, you can use Live Service&#8217;s delegated authorization to obtain an authorization token that you can use to access data in the user&#8217;s mesh independent of the user&#8217;s login state.  The user has to opt in to giving you that token, and can revoke your access (invalidate the token) if you don&#8217;t play nice.  The authorization token is cryptographically bound to your domain and the user&#8217;s id. </p>
<p>Mesh-enabled web apps don&#8217;t need to do anything with authentication because the user will have already logged in prior to executing the mesh-enabled web app, and the web app lives &#8220;inside&#8221; that authenticated sandbox context.</p>
<h4>Sharing</h4>
<p>The user can choose to share a Mesh Object with other users.  If your app writes to a particular Mesh Object and the user shares it with others, your app data can be distributed to the social graph without any work on your part.  Your app can also see who has access to or is sharing the Mesh Object. </p>
<h4>A Few Scenarios</h4>
<ul>
<li>A desktop .NET application (written in any .NET language) reading and writing app data to the user&#8217;s mesh. </li>
<li>The same app (same binary executable module) writing data to the user&#8217;s mesh while the machine is offline. (local LOE)</li>
<li>A desktop Win32 application reading and writing from the user&#8217;s contacts. (LiveID SDK + raw HTTP / AtomPub)</li>
<li>A web server app that writes data to a mesh object in the user&#8217;s mesh in response to a button click or form submit. (online)</li>
<li>A headless cloud based web service that updates data in the user&#8217;s mesh every 3 hours. (delegated auth)</li>
<li>A DHTML+JavaScript mesh-enabled web app running in the browser reading and writing data to the user&#8217;s mesh. (online)</li>
<li>A Silverlight mesh-enabled web application running on the local desktop (via Live Mesh client) while offline.  (Offline Silverlight!)</li>
<li>A DHTML+JavaScript mesh-enaabled web application running in any JavaScript-enabled browser on a smartphone. (online)</li>
<li>A Silverlight mesh-enabled web application that displays interactive features on current events, updated continually (daily) with new content and code logic (online/offline, data sync and app sync)</li>
<li>Store your application&#8217;s personalization settings in the user&#8217;s mesh.  The user&#8217;s preferences follow them to any machine they run that app on, regardless of whether your app is a mesh-enabled web app or a traditional installed desktop app.  (Think: student computer lab.  Many machines all configured the same used by many students all demanding to be different)</li>
<li>Same as previous scenario, but now across different kinds of devices.  User&#8217;s preferences and settings sync across PC, Mac, cellphone, etc.</li>
<li>Briefcase application:  Grab a dataset of client leads into your mesh-enabled sales lead app while at the office.  Review client dossiers while offline in transit.  Update sales contacts and enter purchase orders at client site, while offline.  Sync changes and purchase orders to office (to a cloud mesh object shared with and watched by a mesh app at the office) at an Internet cafe in the airport on the way to the next client. Show next client how to enter orders themselves using your purchase order mesh-enabled web app (the same one you have running offline on your PDA-phone) running in their browser. </li>
</ul>
<p>These are just a tiny sampling of the kinds of things you can do with the Live Framework.  There are many more features I haven&#8217;t mentioned that add additional dimentions to the sample matrix:  your mesh-aware and mesh-enabled apps running on the client device can programmatically construct resource scripts (expression trees) which can be executed on a server in the cloud (to move large data around on the server without making a round trip to the client across the network); there&#8217;s a server-side cross-domain proxy service that lets your mesh-enabled web app (executing in the context of a cloud domain name) &#8220;phone home&#8221; to your own web server or domain; and so forth.</p>
<p>If I had to name one thing that sets the Live Framework head and shoulders apart from other products that attempt to bridge the online/offline gap, it has to be Live Framework&#8217;s data synchronization.  Other tools such as Google Gears can help you run your web app offline, but getting your offline data back into the cloud is left as an exercise for the reader.  In Live Framework, synchronization is a fundamental assumption, a cornerstone of the core architecture.</p>
<p>When data automagically appears in all the places it&#8217;s supposed to go, you suddenly find that you have a lot less code to write, debug, and maintain.  You can get back to focusing on business logic and spend a lot less time on infrastructure.</p>
<p>With apologies to &#8216;The Bard&#8217;</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fdannythorpe.com%2f2008%2f11%2f14%2fhow-do-i-mesh-thee-let-me-count-the-ways%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fdannythorpe.com%2f2008%2f11%2f14%2fhow-do-i-mesh-thee-let-me-count-the-ways%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<p><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/" data-text="How Do I Mesh Thee?  Let Me Count The Ways"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/"></a><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fdannythorpe.com%2F2008%2F11%2F14%2Fhow-do-i-mesh-thee-let-me-count-the-ways%2F&amp;title=How%20Do%20I%20Mesh%20Thee%3F%20%20Let%20Me%20Count%20The%20Ways" id="wpa2a_16">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/11/14/how-do-i-mesh-thee-let-me-count-the-ways/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Visual Studio Tools for Windows Azure and Live Framework</title>
		<link>http://dannythorpe.com/2008/10/28/visual-studio-tools-for-windows-azure-and-live-framework/</link>
		<comments>http://dannythorpe.com/2008/10/28/visual-studio-tools-for-windows-azure-and-live-framework/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 05:23:09 +0000</pubDate>
		<dc:creator>Danny Thorpe</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Live Framework Tools]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PDC2008]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://dannythorpe.com/2008/10/28/visual-studio-tools-for-windows-azure-and-live-framework/</guid>
		<description><![CDATA[Yesterday at PDC Microsoft unveiled Windows Azure, a new platform for global scale distributed computing services, often called &#8220;cloud computing&#8221;. Today Microsoft rolled out tools for creating apps that use Live Services, access the same Mesh Objects you see in Live Mesh, or execute in the Windows Azure cloud.  Mesh-enabled web applications can even update themselves thanks to Feedsync-enabled Live Services <a href='http://dannythorpe.com/2008/10/28/visual-studio-tools-for-windows-azure-and-live-framework/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Yesterday at <a href="http://www.microsoftpdc.com/">PDC</a> Microsoft unveiled <a href="http://www.microsoft.com/azure/default.mspx">Windows Azure</a>, a new platform for global scale distributed computing services, often called &#8220;cloud computing&#8221;. Today Microsoft rolled out tools for creating apps that use Live Services, access the same Mesh Objects you see in Live Mesh, or execute in the Windows Azure cloud.  Mesh-enabled web applications can even update themselves thanks to Feedsync-enabled Live Services storage features.</p>
<p>Now that this is all out in the open, I can finally tell you what I do.  I (re)joined Microsoft back in June to work on what is now called Live Framework Tools for Windows Visual Studio.  (Quite a mouthful.) </p>
<p>You can use the Live Framework to talk to Live Services, and to build apps that live in the Live Mesh environment.  A Mesh-enabled web application can execute via Live Desktop in the browser, or the user can opt to run the mesh app on their desktop using the Live Mesh client software. </p>
<p>The same runtime that synchronizes data files in Live Mesh shared folders, the LOE (Live Operating Environment) will keep the local cache of Mesh-enabled web applications in sync with the cloud.  If a local instance of the app modifies one of its internal Mesh Objects, that change will be sync&#8217;d back to the cloud and seen by all other instances of that application in the user&#8217;s mesh. Similarly, changes made to the app or its data in the cloud will be sync&#8217;d to any local instances on a given device the next time the device is connected to the network.</p>
<p>The code you write in the mesh application doesn&#8217;t need to care much about whether it&#8217;s running in the local LOE or the cloud LOE, since both LOE&#8217;s implement the same APIs and services.</p>
<p>The Live Framework SDK&#8217;s client libraries currently include JavaScript, Silverlight, and desktop .NET libraries so you can write mesh apps in the context of an HTML web page or create a stand-alone &#8220;mesh aware&#8221; desktop application.  You can access Live Services using any tool/language/device that can talk HTTP, but the Live Framework client libraries make it a lot simpler by taking care of the low level gorey HTTP details.  I&#8217;m sure we&#8217;ll see additional libraries pop up in the field to automate the low level HTTP stuff for other dev tools such as Ruby, Perl, Python, et al.  Delphi, btw, is covered by the Live Framework SDK&#8217;s existing desktop .NET library.</p>
<p>And of course, you don&#8217;t have to start from scratch - you can use Live Services in your existing web or desktop applications with a little bit of code and a recompile. Your existing Silverlight projects are probably also mesh deployable with little or no changes.</p>
<p>My team (<a href="http://blogs.msdn.com/cloud/">Cloud Computing Tools</a>) implements Visual Studio extensions to handle creating, editing, deploying, and debugging Mesh-enabled web applications running in the Live Mesh cloud.  If you&#8217;re a .NET nut, we have a Silverlight Mesh-enabled web app project for you.  If you&#8217;re an HTML JavaScript jockey, we&#8217;ve got an HTML Mesh-enabled web app project type as well.  Both can be edited, deployed, and debugged within VS.  If you&#8217;re working on a traditional desktop .NET application, you can just reference the Live Framework assemblies in your existing project &#8211; no VS extensions are needed.</p>
<p>Actually, only part of CCT is working on mesh tools - the majority of the team is focused on building Windows Azure Tools for Microsoft Visual Studio for writing services that execute in the Windows Azure cloud environment. </p>
<p>For Azure dev info, check out <a href="http://blogs.msdn.com/gusperez/archive/2008/10/27/windows-azure-a-big-day-for-us.aspx">Gus Perez&#8217;s recently revived blog</a>.  Gus is on the Azure side of the CCT house and would blog more often if I would stop sending him stupid VS n00b questions in IM.  <a href="http://blogs.msdn.com/jnak">Jim Nakashima</a> of Azure tools has also been blogging on Azure, though I think he may have an easier time of it than Gus because I don&#8217;t have Jim&#8217;s home phone number.  (Yet)</p>
<p><a href="http://www.removingalldoubt.com/">Chuck Jazdzewski</a> is also here in CCT and is the architect of my return to Microsoft.  If you know Delphi, you know Chuck.  Though Chuck is officially working on &#8220;deep research,&#8221; he chipped in quite a bit to help get mesh tools off the ground.  (Thanks Chuck!)</p>
<p>I&#8217;ll be trolling the <a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads/">Live Framework forum</a> to answer getting started questions, and hopefully posting a few Live Mesh app demos here later this week.</p>
<p><a class="a2a_button_twitter_tweet addtoany_special_service" data-count="none" data-url="http://dannythorpe.com/2008/10/28/visual-studio-tools-for-windows-azure-and-live-framework/" data-text="Visual Studio Tools for Windows Azure and Live Framework"></a><a class="a2a_button_google_plusone addtoany_special_service" data-annotation="none" data-href="http://dannythorpe.com/2008/10/28/visual-studio-tools-for-windows-azure-and-live-framework/"></a><a class="a2a_button_facebook_like addtoany_special_service" data-href="http://dannythorpe.com/2008/10/28/visual-studio-tools-for-windows-azure-and-live-framework/"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fdannythorpe.com%2F2008%2F10%2F28%2Fvisual-studio-tools-for-windows-azure-and-live-framework%2F&amp;title=Visual%20Studio%20Tools%20for%20Windows%20Azure%20and%20Live%20Framework" id="wpa2a_20">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://dannythorpe.com/2008/10/28/visual-studio-tools-for-windows-azure-and-live-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  dannythorpe.com/tag/silverlight/feed/ ) in 0.51015 seconds, on May 21st, 2012 at 6:55 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 21st, 2012 at 7:55 pm UTC -->
