<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Live Framework Team Blog</title><subtitle type="html" /><id>http://blogs.msdn.com/liveframework/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/liveframework/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-11-13T15:01:00Z</updated><entry><title>Important Updates to Live Services: Live Framework CTP Unavailable As of Sept 8</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2009/08/21/important-updates-to-live-services-live-framework-ctp-unavailable-as-of-sept-8.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2009/08/21/important-updates-to-live-services-live-framework-ctp-unavailable-as-of-sept-8.aspx</id><published>2009-08-21T22:54:00Z</published><updated>2009-08-21T22:54:00Z</updated><content type="html">&lt;P&gt;This morning, David Treadwell &lt;A href="http://dev.live.com/blogs/devlive/archive/2009/08/21/500.aspx" mce_href="http://dev.live.com/blogs/devlive/archive/2009/08/21/500.aspx"&gt;announced&lt;/A&gt;&amp;nbsp;that the Live Framework CTP will be unavailable as of September 8. First, a very big thanks to all who tried out our CTP and provided invaluable feedback. All that we learned will be used in future offerings. As David says in his post:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;"At the Professional Developer Conference 2008, we gave the developer community access to the technical preview of the Live Framework. The Live Framework is core to our vision of providing you with a consistent programming interface. Now we are working to integrate existing services, controls and the Live Framework into the next release of Windows Live. Your feedback continues to help us build the best possible offerings for Windows Live users, for you and for your customers. "&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Read the full&amp;nbsp;announcement &lt;A href="http://dev.live.com/blogs/devlive/archive/2009/08/21/500.aspx" mce_href="http://dev.live.com/blogs/devlive/archive/2009/08/21/500.aspx"&gt;here&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks again for your participation,&lt;BR&gt;The Live Framework Team&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9879284" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Notifications and Subscriptions</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2009/04/16/notifications-and-subscriptions.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2009/04/16/notifications-and-subscriptions.aspx</id><published>2009-04-16T21:29:24Z</published><updated>2009-04-16T21:29:24Z</updated><content type="html">&lt;p&gt;In this post, we will explain how to make use of notifications in the Live Framework. When you subscribe to a specific resource, the Live Framework provides notifications when changes are made to that resource. This allows you to optimize interactions with the Live Operating Environment (both client and cloud) and only retrieve information when something has changed.&lt;/p&gt;  &lt;p&gt;We will use JSON as the wire format for all the examples shown here. All the requests made are authenticated with a delegated auth header or user auth header and are in the context of a particular user.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;The first thing that the application needs to do is to create a notification queue to receive notifications from subscribed resources. A notification queue is in the context of a user and is bounded by a user’s mesh. The queue can only receive notifications for resources that are part of this user’s mesh. The following HTTP request creates the notification queue.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;&lt;/p&gt;  &lt;pre class="code"&gt;HTTP POST	
https://user-ctp.windows.net/V0.1/Mesh/NotificationQueues

{
}&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="code"&gt;{
 &amp;quot;BaseUri&amp;quot; : &amp;quot;https:\/\/user-ctp.windows.net\/V0.1\/&amp;quot;,
 &amp;quot;Categories&amp;quot; : [
     {
         &amp;quot;Label&amp;quot; : &amp;quot;NotificationQueue&amp;quot;,
         &amp;quot;Name&amp;quot; : &amp;quot;NotificationQueue&amp;quot;,
         &amp;quot;Scheme&amp;quot; : &amp;quot;http:\/\/user.windows.net\/Resource&amp;quot;
     }
 ],
 &amp;quot;Id&amp;quot; : &amp;quot;uuid:3084e6c2-56ac-4563-b67c-af7a7fc019e7;id=18130&amp;quot;,
 &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;\/Date(1237276680000)\/&amp;quot;,
 &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;&amp;quot;,
 &amp;quot;Title&amp;quot; : &amp;quot;NotificationQueueResource&amp;quot;,
 &amp;quot;ExpirationDuration&amp;quot; : 300,
 &amp;quot;NotificationsLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;\/Notifications&amp;quot;,
 &amp;quot;Watermark&amp;quot; : &amp;quot;&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;The following properties from the preceding code examples are worth noting:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;ExpirationDuration&lt;/b&gt;: This defaults to 300 seconds. If the client does not poll this notification queue (by executing an HTTP PUT request on the queue itself or HTTP GET on the Notifications feed associated with it) one time every 300 seconds, this queue is deleted. This is because notification queues are short-lived and are not persisted in the database. &lt;/li&gt;

  &lt;li&gt;&lt;b&gt;NotificationsLink&lt;/b&gt;: This is the link to the feed that will contain notifications for all the subscribed resources. It should be cached by the client application. &lt;/li&gt;

  &lt;li&gt;&lt;b&gt;Watermark&lt;/b&gt;: This is an opaque identifier that is used to acknowledge receipt of notifications. More on this property later. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is important to note that the NotificationQueues feed only supports HTTP POST operations. Each entry within this feed (each NotificationQueue) only supports HTTP PUT operations.&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;When the application has a notification queue in place, it now needs to create a subscription for a resource. For this, the application needs to execute an HTTP POST request on the Subscriptions feed for the resource from the notification queue that the application created. &lt;/p&gt;

&lt;p&gt;The following code sample creates a subscription for a mesh object::&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="code"&gt;HTTP POST	
https://user-ctp.windows.net/V0.1/Mesh/MeshObjects/&lt;em&gt;[ID]&lt;/em&gt;/Subscriptions

{
&amp;quot;NotificationQueueLink&amp;quot; : &amp;quot;Mesh/NotificationQueues/&lt;em&gt;[ID]&lt;/em&gt;&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="code"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https:\/\/user-ctp.windows.net\/V0.1\/&amp;quot;,
    &amp;quot;Categories&amp;quot; : [
        {
            &amp;quot;Label&amp;quot; : &amp;quot;Subscription&amp;quot;,
            &amp;quot;Name&amp;quot; : &amp;quot;Subscription&amp;quot;,
            &amp;quot;Scheme&amp;quot; : &amp;quot;http:\/\/user.windows.net\/Resource&amp;quot;
        }
    ],
    &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:33abe770-0d77-4aaa-a07d-7242b04958c5&amp;quot;,
    &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;\/Date(1237276859000)\/&amp;quot;,
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;\/Subscriptions\/&lt;em&gt;[ID]&lt;/em&gt;&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;SubscriptionResource&amp;quot;,
    &amp;quot;ETag&amp;quot; : &amp;quot;171184531853220&amp;quot;,
    &amp;quot;NotificationQueueLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;&amp;quot;,
    &amp;quot;Timeout&amp;quot; : 3080
}&lt;/pre&gt;

&lt;p&gt;The following properties from the preceding code examples are of interest:–&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;Etag&lt;/b&gt;: It is possible that the mesh object (the subscribed resource in this example) is updated between the time period when the last GET was executed and the creation of this subscription. The client can make use of this &lt;b&gt;Etag&lt;/b&gt; value to check if such an update has happened (for which it would not have received any notification) and to get the latest changes. &lt;/li&gt;

  &lt;li&gt;&lt;b&gt;NotificationQueueLink&lt;/b&gt;: This is the link to the notification queue where notifications for this resource will be available. This value is the same as what the client application specified in the request body when creating a subscription. &lt;/li&gt;

  &lt;li&gt;&lt;b&gt;Timeout:&lt;/b&gt; This is the value in seconds after which this subscription will be lost. In order to keep subscribing to this resource, the client application will have to execute a PUT request on this subscription (with the data in the response as the request body) before that time period. This value is not static, is determined by the server, and is read-only. This is so because notifications and subscriptions are not persisted in the database and the server needs to reclaim unused resources. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When polling for notifications, the client application should do an HTTP GET request on the Notifications feed under NotificationQueue (provided by the subscription resource as NotificationQueueLink). The Subscriptions feed only supports an HTTP POST operation and each subscription (entry within the subscriptions feed) only supports an HTTP PUT operation.&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;Executing HTTP GET requests on notifications for the notification queue results in the following code example. You can see that this is an empty feed with no entries because no change has been made to the subscribed resource (i.e., the mesh object in this case).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Request&lt;/b&gt;&lt;/p&gt;

&lt;pre class="code"&gt;HTTP GET	
https://user-ctp.windows.net/V0.1/Mesh
/NotificationQueues/&lt;em&gt;[ID]&lt;/em&gt;/Notifications&lt;/pre&gt;

&lt;p&gt;&lt;b&gt;Response&lt;/b&gt;&lt;/p&gt;

&lt;pre class="code"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https:\/\/user-ctp.windows.net\/V0.1\/&amp;quot;,
    &amp;quot;Entries&amp;quot; : [
        
    ],
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;\/Notifications&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Notifications&amp;quot;
}&lt;/pre&gt;

&lt;h3&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;In order to demonstrate how notifications are generated, we will make changes to the mesh object by updating its summary property. This change should generate a notification under notifications for the notification queue that is associated with this mesh object.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Request&lt;/b&gt;&lt;/p&gt;

&lt;pre class="code"&gt;HTTP PUT	
https://user-ctp.windows.net/V0.1/Mesh/MeshObjects/&lt;em&gt;[ID]&lt;/em&gt;

{
    &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:8d9e425a-52ea-4645-be8f-cc20d5de7446&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Images&amp;quot;,
    &amp;quot;Summary&amp;quot; : &amp;quot;This is a test update&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;&lt;b&gt;Response&lt;/b&gt;&lt;/p&gt;

&lt;pre class="code"&gt;{
    &amp;quot;AuthorProfileLink&amp;quot; : &amp;quot;email-nguptadev@hotmail.com\/Profiles&amp;quot;,
    &amp;quot;Authors&amp;quot; : [
        {
            &amp;quot;Name&amp;quot; : &amp;quot;Nishant Gupta&amp;quot;,
            &amp;quot;Uri&amp;quot; : &amp;quot;email-nguptadev@hotmail.com\/Profiles&amp;quot;,
            &amp;quot;Email&amp;quot; : &amp;quot;nguptadev@hotmail.com&amp;quot;
        }
    ],
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https:\/\/user-ctp.windows.net\/V0.1\/&amp;quot;,
    &amp;quot;Categories&amp;quot; : [
        {
            &amp;quot;Label&amp;quot; : &amp;quot;MeshObject&amp;quot;,
            &amp;quot;Name&amp;quot; : &amp;quot;MeshObject&amp;quot;,
            &amp;quot;Scheme&amp;quot; : &amp;quot;http:\/\/user.windows.net\/Resource&amp;quot;
        }
    ],
    &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:8d9e425a-52ea-4645-be8f-cc20d5de7446&amp;quot;,
    &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;\/Date(1237277073000)\/&amp;quot;,
    &amp;quot;PublishDate&amp;quot; : &amp;quot;\/Date(1233431971000)\/&amp;quot;,
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;&amp;quot;,
    &amp;quot;Summary&amp;quot; : &amp;quot;This is a test update&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Images&amp;quot;,
    &amp;quot;ActivitiesLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;\/Activities&amp;quot;,
    &amp;quot;DataFeedsLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;\/DataFeeds&amp;quot;,
    &amp;quot;MappingsLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;\/Mappings&amp;quot;,
    &amp;quot;MembersLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;\/Members&amp;quot;,
    &amp;quot;NewsFeedLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;\/News&amp;quot;,
    &amp;quot;SubscriptionLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;\/Subscriptions&amp;quot;
}&lt;/pre&gt;

&lt;h3&gt;&lt;strong&gt;Step 5&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;We will now do a GET request on notifications to look for any notifications that may have been generated for this change.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Request&lt;/b&gt;&lt;/p&gt;

&lt;pre class="code"&gt;HTTP GET	
https://user-ctp.windows.net/V0.1/Mesh
/NotificationQueues/&lt;em&gt;[ID]&lt;/em&gt;/Notifications&lt;/pre&gt;

&lt;p&gt;&lt;b&gt;Response&lt;/b&gt;&lt;/p&gt;

&lt;pre class="code"&gt;{
   &amp;quot;BaseUri&amp;quot; : &amp;quot;https:\/\/user-ctp.windows.net\/V0.1\/&amp;quot;,
   &amp;quot;Entries&amp;quot; : [
     {
       &amp;quot;BaseUri&amp;quot; : &amp;quot;https:\/\/user-ctp.windows.net\/V0.1\/&amp;quot;,
       &amp;quot;Categories&amp;quot; : [
           {
               &amp;quot;Label&amp;quot; : &amp;quot;Notification&amp;quot;,
               &amp;quot;Name&amp;quot; : &amp;quot;Notification&amp;quot;,
               &amp;quot;Scheme&amp;quot; : &amp;quot;http:\/\/user.windows.net\/Resource&amp;quot;
            }
       ],
       &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:4f9e630c-c9d0-49eb-9e40-519f0de29f81&amp;quot;,
       &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;\/Date(1237278069000)\/&amp;quot;,
       &amp;quot;PublishDate&amp;quot; : &amp;quot;\/Date(1237278061000)\/&amp;quot;,
       &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;\/Notifications\/1&amp;quot;,
       &amp;quot;Title&amp;quot; : &amp;quot;Title&amp;quot;,
       &amp;quot;ResourceLink&amp;quot; : &amp;quot;Mesh\/MeshObjects\/&lt;em&gt;[ID]&lt;/em&gt;&amp;quot;,
       &amp;quot;Type&amp;quot; : 0,
       &amp;quot;Watermark&amp;quot; : &amp;quot;1.823.0&amp;quot;
     }
    ],
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;\/Notifications&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Notifications&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;As you can see, there is a single entry (notification) generated. &lt;/p&gt;

&lt;p&gt;The properties of interest in this example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;ResourceLink&lt;/b&gt; – This specifies the resource for which this notification has been generated. The client application can then do a GET request on this resource with the last Etag received to get the changes. &lt;/li&gt;

  &lt;li&gt;&lt;b&gt;Type&lt;/b&gt; – This specifies the type of notification that has been generated. The possible values are 

    &lt;ul&gt;
      &lt;li&gt;0 – Resource changed. This is the most common value for type. This signifies that the resource (identified by resource link) has changed. &lt;/li&gt;

      &lt;li&gt;1 – All subscriptions lost. Subscriptions can be lost for various reasons, such as: notification queue timed out, notifications overflow for this notification queue, or service crash/restart (because notifications are not persisted in database). In this case, you need to renew the notification queue by generating a PUT request with a watermark value for this notification (see the following step for details) and then re-subscribe to all the resources. Please note that when you renew the notification queue, the self-link now received for the notification queue is different from the previous one (because the old queue was lost). You need to use this new link when subscribing to resources. &lt;/li&gt;

      &lt;li&gt;2 – Subscription lost for the resource identified by the resource link. The loss could be due to a service restart/crash. When this happens, the client needs to re-subscribe to the resource in order to receive further notifications for this resource. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;b&gt;Watermark &lt;/b&gt;– This is an opaque identifier associated with this notification. Because notifications and notification queues are not persisted in the database, the number of notifications that can be retained in memory for a given notification queue are limited. The clients are encouraged to acknowledge the receipt of notifications that they have read by doing a PUT request on Mesh/NotificationQueues/&amp;lt;ID&amp;gt; with the watermark value of the last notification in the feed. This will remove all the acknowledged notifications up to the notification with the watermark specified and will free up resources. Failure to do so will result in loss of notifications when the limit on the number of notifications allowed per queue is reached. In an ideal case, every non-empty GET on notifications should be followed by a PUT request on the notification queue with the last read watermark value. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;&lt;strong&gt;Step 6&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;We will renew the notification queue and delete the stale notifications by doing a PUT request on the notification queue.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Request&lt;/b&gt;&lt;/p&gt;

&lt;pre class="code"&gt;HTTP PUT	
https://user-ctp.windows.net/V0.1/Mesh/NotificationQueues/&lt;em&gt;[ID]&lt;/em&gt;
{
 &amp;quot;BaseUri&amp;quot; : &amp;quot;https:\/\/user-ctp.windows.net\/V0.1\/&amp;quot;,
 &amp;quot;Categories&amp;quot; : [
     {
         &amp;quot;Label&amp;quot; : &amp;quot;NotificationQueue&amp;quot;,
         &amp;quot;Name&amp;quot; : &amp;quot;NotificationQueue&amp;quot;,
         &amp;quot;Scheme&amp;quot; : &amp;quot;http:\/\/user.windows.net\/Resource&amp;quot;
     }
 ],
 &amp;quot;Id&amp;quot; : &amp;quot;uuid:3084e6c2-56ac-4563-b67c-af7a7fc019e7;id=18130&amp;quot;,
 &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;\/Date(1237276680000)\/&amp;quot;,
 &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;&amp;quot;,
 &amp;quot;Title&amp;quot; : &amp;quot;NotificationQueueResource&amp;quot;,
 &amp;quot;ExpirationDuration&amp;quot; : 300,
 &amp;quot;NotificationsLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;\/Notifications&amp;quot;,
 &amp;quot;Watermark&amp;quot; : &amp;quot;1.823.0&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;A subsequent GET request on the notifications will appear as follows. Note that there are no more entries (notifications) because we deleted the stale entry by providing the watermark value in the PUT request on notification queue.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Request&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="code"&gt;HTTP GET	
https://user-ctp.windows.net/V0.1/Mesh/NotificationQueues/&lt;em&gt;[ID]&lt;/em&gt;/Notifications&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Response&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="code"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https:\/\/user-ctp.windows.net\/V0.1\/&amp;quot;,
    &amp;quot;Entries&amp;quot; : [
        
    ],
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh\/NotificationQueues\/&lt;em&gt;[ID]&lt;/em&gt;\/Notifications&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Notifications&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;It is important to note that you can also renew the notification queue by doing an HTTP GET on notifications. This will, however, not remove the acknowledged notifications from the queue.&lt;/p&gt;

&lt;h3&gt;Take-away Points&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;Notifications and subscriptions allow for efficient polling to check for updates on the resource without actually doing a GET request on the resource itself. &lt;/li&gt;

  &lt;li&gt;The client application can create a single notification queue and use it for subscribing to multiple resources. &lt;/li&gt;

  &lt;li&gt;The default life span for notification queue is 300 seconds from the last PUT request. The client application should renew it by doing an HTTP PUT on the notification queue or HTTP GET on the notifications feed within that duration. If there are acknowledged notifications that need to be removed, the client should specify the watermark value corresponding to the last such notification. The polling interval chosen by the client should be determined based on the client’s need for responsiveness and the TTL of the queue. &lt;/li&gt;

  &lt;li&gt;Subscriptions to resources timeout after a period. In order for the client application to continue subscribing to the resource, it should renew it by doing a PUT request within the timeout duration. &lt;/li&gt;

  &lt;li&gt;Watermarks should be treated as opaque identifiers. No assumptions should be made on their format. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;--Live Services Team&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9553309" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>New Live Framework Samples</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2009/03/20/new-live-framework-samples.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2009/03/20/new-live-framework-samples.aspx</id><published>2009-03-21T00:01:14Z</published><updated>2009-03-21T00:01:14Z</updated><content type="html">&lt;p&gt;We’ve created a code gallery for Live Framework samples, and posted six &lt;a href="http://code.msdn.microsoft.com/liveframework"&gt;new samples&lt;/a&gt; not included in the SDK. &lt;/p&gt;  &lt;p&gt;Here’s the list of the additional samples now available:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="4" width="485"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="bottom" width="96"&gt;         &lt;p&gt;&lt;b&gt;Sample Name &lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="bottom" width="300"&gt;         &lt;p&gt;&lt;b&gt;Description &lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="bottom" width="92"&gt;         &lt;p&gt;&lt;b&gt;Technologies Used&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="96"&gt;         &lt;p&gt;Livefx Office Addins&lt;/p&gt;       &lt;/td&gt;        &lt;td width="300"&gt;         &lt;p&gt;Demonstrates how to integrate Live Framework capabilities with Office products using the Live Framework .NET Toolkit.&lt;/p&gt;       &lt;/td&gt;        &lt;td width="92"&gt;         &lt;p&gt;C#, Visual Studio Tools for Office&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="96"&gt;         &lt;p&gt;ASP.NET DelAuth&lt;/p&gt;       &lt;/td&gt;        &lt;td width="300"&gt;         &lt;p&gt;Demonstrates how to set up and use Delegated Authentication from an ASP.NET Web site in order to access Live Framework resources. &lt;/p&gt;       &lt;/td&gt;        &lt;td width="92"&gt;         &lt;p&gt;ASP.NET; C#&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="96"&gt;         &lt;p&gt;Livefx PHP Helper Library &lt;/p&gt;       &lt;/td&gt;        &lt;td width="300"&gt;         &lt;p&gt;A sample PHP helper library for accessing Live Framework resources. &lt;/p&gt;       &lt;/td&gt;        &lt;td width="92"&gt;         &lt;p&gt;PHP &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="96"&gt;         &lt;p&gt;ProfileInfo&lt;/p&gt;       &lt;/td&gt;        &lt;td width="300"&gt;         &lt;p&gt;Demonstrates how retrieve a user’s Windows Live Profile information using IronPython and the Live Framework .NET Toolkit. &lt;/p&gt;       &lt;/td&gt;        &lt;td width="92"&gt;         &lt;p&gt;.NET, IronPython, LINQ&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="96"&gt;         &lt;p&gt;ProfileInfo&lt;/p&gt;       &lt;/td&gt;        &lt;td width="300"&gt;         &lt;p&gt;Demonstrates how retrieve a user’s Windows Live Profile information over HTTP, using POX and JSON. &lt;/p&gt;       &lt;/td&gt;        &lt;td width="92"&gt;         &lt;p&gt;HTTP, POX, JSON&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="96"&gt;         &lt;p&gt;Live Mesh Utilities&lt;/p&gt;       &lt;/td&gt;        &lt;td width="300"&gt;         &lt;p&gt;Demonstrates MeshObject operations using the .NET Toolkit, including creating a Live Folder and a MeshObject, mapping the MeshObject, and enumerating MeshObject properties. &lt;/p&gt;       &lt;/td&gt;        &lt;td width="92"&gt;         &lt;p&gt;C#&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Keep up to date with our sample publishing &lt;a href="http://code.msdn.microsoft.com/LiveFramework/Project/ProjectRss.aspx?ProjectRSSFeed=codeplex%3a%2f%2frelease%2fLiveFramework"&gt;via this RSS feed&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;We hope these help! As usual, chat, ask questions, or give feedback in our &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads/"&gt;Forum&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;The Live Framework team&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9493565" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Live Framework Updated!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2009/03/11/live-framework-updated.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2009/03/11/live-framework-updated.aspx</id><published>2009-03-11T23:15:00Z</published><updated>2009-03-11T23:15:00Z</updated><content type="html">&lt;P&gt;We are pleased to announce the April CTP update of the Live Framework SDK and Tools. Below you will find details about what’s new with this release. &lt;/P&gt;
&lt;P&gt;The Live Framework Team thanks its developer community for trying out Live Framework CTP and taking time to submit the feedback.&amp;nbsp; Please keep it coming through the &lt;A href="https://connect.microsoft.com/liveframework/Feedback?wa=wsignin1.0" mce_href="https://connect.microsoft.com/liveframework/Feedback?wa=wsignin1.0"&gt;&lt;U&gt;Live Framework Developer Connection&lt;/U&gt;&lt;/A&gt; and the &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads/" mce_href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads/"&gt;&lt;U&gt;Live Framework Forum&lt;/U&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=145417" mce_href="http://go.microsoft.com/fwlink/?LinkID=145417"&gt;DOWNLOAD THE TOOLS AND SDK&lt;/A&gt;&lt;BR&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=130155" mce_href="http://go.microsoft.com/fwlink/?LinkID=130155"&gt;DOWNLOAD THE SDK ONLY&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;New to the Live Framework? Go to the Live Framework home page to see how to &lt;A href="http://dev.live.com/liveframework/" mce_href="http://dev.live.com/liveframework/"&gt;get started&lt;/A&gt;. &lt;/P&gt;
&lt;H1&gt;Version numbers&lt;/H1&gt;
&lt;P&gt;The latest version numbers for this release are as follows:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://developer.mesh-ctp.com/" mce_href="http://developer.mesh-ctp.com/"&gt;Live Framework Developer Sandbox&lt;/A&gt;: 0.9.3904.1 &lt;/LI&gt;
&lt;LI&gt;Live Framework Client: 0.9.3904.1 &lt;/LI&gt;
&lt;LI&gt;Live Framework SDK: 0.9.3904.1 &lt;/LI&gt;
&lt;LI&gt;Live Framework Tools: 1.0.20309.3&lt;/LI&gt;&lt;/UL&gt;
&lt;H1&gt;&lt;B&gt;Installing the Updated Live Framework Client&lt;/B&gt;&lt;/H1&gt;
&lt;P&gt;Installing the Live Framework client will allow you to access resources locally (for example, in an offline scenario). If you want to run the Live Framework client side-by-side with the Live Mesh client, see instructions in &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/2fa9d3f1-029e-44af-9568-1cea81ca78a9" mce_href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/2fa9d3f1-029e-44af-9568-1cea81ca78a9"&gt;this forum post&lt;/A&gt;.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Sign-in to Live Mesh &lt;A href="http://developer.mesh-ctp.com/" mce_href="http://developer.mesh-ctp.com/"&gt;&lt;U&gt;Developer Sandbox&lt;/U&gt;&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;Navigate to &lt;A href="https://developer.mesh-ctp.com/Web/Devices.aspx" mce_href="https://developer.mesh-ctp.com/Web/Devices.aspx"&gt;&lt;U&gt;Devices&lt;/U&gt;&lt;/A&gt; Tab. &lt;/LI&gt;
&lt;LI&gt;Click on "Add Device". (Note: To update the Live Framework client,&lt;I&gt; you need to re-add any pre-existing devices in our Mesh&lt;/I&gt;.). &lt;/LI&gt;
&lt;LI&gt;Choose the correct operating system from drop down and Click "Install" &lt;/LI&gt;
&lt;LI&gt;Download the LiveFrameworkClient.msi file to your desktop &lt;/LI&gt;
&lt;LI&gt;Run LiveFrameworkClient.msi to install the latest client bits &lt;/LI&gt;&lt;/OL&gt;
&lt;H1&gt;&lt;A title=included name=included&gt;&lt;/A&gt;&lt;B&gt;What’s New in this Release&lt;/B&gt;&lt;/H1&gt;
&lt;P&gt;This update includes:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Support for side-by-side installation of the &lt;A href="http://www.mesh.com/" mce_href="http://www.mesh.com"&gt;www.mesh.com&lt;/A&gt; local client and the developer.mesh-ctp.com local client. This means that you can use the production Mesh.com to sync data across all your devices, and develop applications for the Mesh Developer Sandbox that uses the local client—all on the same machine. For instructions on setting up side-by-side, please see &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/2fa9d3f1-029e-44af-9568-1cea81ca78a9" mce_href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/2fa9d3f1-029e-44af-9568-1cea81ca78a9"&gt;this forum post&lt;/A&gt;. &lt;/LI&gt;
&lt;LI&gt;Support for Windows 7 and Internet Explorer 8 &lt;/LI&gt;
&lt;LI&gt;Single installer for the Live Framework SDK and the Live Framework Tools for Microsoft Visual Studio. &lt;/LI&gt;
&lt;LI&gt;Resource Scripts are now supported in Silverlight applications and with the local Live Operating Environment &lt;/LI&gt;
&lt;LI&gt;Public availability of the SDK and Tools on the Microsoft.com Download Center. &lt;/LI&gt;
&lt;LI&gt;Improved stability in the client and the cloud Live Operating Environment. &lt;/LI&gt;
&lt;LI&gt;Design and performance improvements to the API toolkits &lt;/LI&gt;
&lt;LI&gt;Simplified workflow for setting up an account and a Live Framework project on the Azure Developer Portal. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;NOTE: There are some changes in the CTP toolkits that may require you to update your application code should you recompile with the new bits. &lt;A href="http://dev.live.com/liveframework/aprilctpchanges.aspx" mce_href="http://dev.live.com/liveframework/aprilctpchanges.aspx"&gt;See this document for more information&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;See a list of &lt;A href="https://connect.microsoft.com/content/content.aspx?SiteID=630&amp;amp;ContentID=10141" mce_href="https://connect.microsoft.com/content/content.aspx?SiteID=630&amp;amp;ContentID=10141"&gt;known issues&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;&lt;B&gt;What’s New in the Tools&lt;/B&gt;&lt;/H1&gt;
&lt;P&gt;The Live Framework Tools April CTP release includes several updates:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Installation of the Silverlight Tools, Live Framework SDK, and Live Framework Tools is accessed through a single installer. &lt;/LI&gt;
&lt;LI&gt;Error messages and diagnostics have been improved. In most error situations when the server returns a failure code more information can be located in the application event log. &lt;/LI&gt;
&lt;LI&gt;A set of C# Code Snippets for accessing common Live Framework tasks are now accessible through the standard snippet mechanism. To see the available snippets right-click in a .cs file and select “insert snippet.” &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This release also contains the cumulative updates from the January CTP:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Debugging or running a Mesh-enabled Web Application which contains no changes from previous versions immediately launches the application instead of re-uploading the files. &lt;/LI&gt;
&lt;LI&gt;Mesh-enabled Web Applications created by the Live Framework Tools now have identical offers to those created through the Azure Services Developer Portal, which are generally less restrictive.&amp;nbsp; This change removes the need for the workaround mentioned in &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/695f4201-7ab3-4942-bf45-b929f75f2237" mce_href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/695f4201-7ab3-4942-bf45-b929f75f2237"&gt;this thread&lt;/A&gt;. &lt;/LI&gt;
&lt;LI&gt;Projects created by the Live Framework Tools may now contain periods fixing the issue reported in &lt;A href="https://connect.microsoft.com/liveframework/feedback/ViewFeedback.aspx?FeedbackID=384855&amp;amp;wa=wsignin1.0" mce_href="https://connect.microsoft.com/liveframework/feedback/ViewFeedback.aspx?FeedbackID=384855&amp;amp;wa=wsignin1.0"&gt;this bug&lt;/A&gt;. &lt;/LI&gt;
&lt;LI&gt;Changes to the application's logo.png file will now be reflected in the icon that appears on the Live Desktop fixing the issue reported in &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/31ed7183-016a-4245-9503-074f572dc77d/" mce_href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/31ed7183-016a-4245-9503-074f572dc77d/"&gt;this thread&lt;/A&gt;. &lt;/LI&gt;&lt;/UL&gt;
&lt;H1&gt;&lt;B&gt;What's Included in the April 2009 CTP &lt;/B&gt;&lt;/H1&gt;
&lt;P&gt;The Live Framework CTP April 2009 CTP includes everything you need in order to quickly build rich, connected, data-sharing applications using Live Services.&amp;nbsp; This CTP includes both the Live Framework SDK and the Live Framework Tools for Microsoft Visual Studio.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Live Framework SDK&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The Live Framework SDK package provides you with Live Framework API Kits, sample code demonstrating usage of the API Kits and the Live Framework Resource Browser. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Live Framework API Kits&lt;/B&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Live Framework .NET Kit – a programming library for use with .NET Framework. This includes object model, resource model and AtomPub client library. &lt;/LI&gt;
&lt;LI&gt;Live Framework Silverlight Kit – a managed code programming library to use with Silverlight. This includes object model, resource model and AtomPub client library for Silverlight. &lt;/LI&gt;
&lt;LI&gt;Live Framework JavaScript Kit – a programming library for use with JavaScript &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;Samples&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Samples included in the Live Framework SDK demonstrate the usage of various aspects of API.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Resource Browser&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The Live Framework Resource Browser is a handy tool to help you browse through Live Framework Resources.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Live Framework Tools for Microsoft Visual Studio&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The Live Framework Tools significantly decrease the time it takes to develop Mesh-enabled Web Applications in Visual Studio 2008.&lt;/P&gt;
&lt;P&gt;The Live Framework Tools include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Project templates for creating DHTML Mesh-enabled Web Applications and C# or VB Silverlight Mesh-enabled Web Applications &lt;/LI&gt;
&lt;LI&gt;Building and packaging of Mesh-enabled Web Applications for deployment &lt;/LI&gt;
&lt;LI&gt;Launching and debugging Mesh-enabled Web Applications hosted in the Live Desktop &lt;/LI&gt;
&lt;LI&gt;IntelliSense completion for Live Framework assemblies and JavaScript files &lt;/LI&gt;&lt;/UL&gt;
&lt;H1&gt;&lt;B&gt;Getting started with the Live Framework Tools&lt;/B&gt;&lt;/H1&gt;
&lt;P&gt;This textual &lt;A href="http://go.microsoft.com/fwlink/?LinkId=131778" mce_href="http://go.microsoft.com/fwlink/?LinkId=131778"&gt;&lt;U&gt;step-by-step walkthrough&lt;/U&gt;&lt;/A&gt; will guide you through using the Live Framework Tools to create, build, deploy and debug a simple DHTML and Silverlight Mesh-enabled Web Application.&lt;/P&gt;
&lt;H1&gt;&lt;B&gt;Developer Resources&lt;/B&gt;&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://dev.live.com/liveframework" mce_href="http://dev.live.com/liveframework"&gt;&lt;U&gt;Live Framework Overview&lt;/U&gt;&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=130293" mce_href="http://go.microsoft.com/fwlink/?LinkId=130293"&gt;&lt;U&gt;Online Documentation (MSDN)&lt;/U&gt;&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=131780" mce_href="http://go.microsoft.com/fwlink/?LinkId=131780"&gt;&lt;U&gt;Microsoft Cloud Computing Tools Technology Page&lt;/U&gt;&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=130156" mce_href="http://go.microsoft.com/fwlink/?LinkID=130156"&gt;&lt;U&gt;Forum for Live Framework Developers&lt;/U&gt;&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;Please give us your feedback!&lt;/B&gt; Let us know what you like and what you don't like. Stop by and give us your feedback &lt;A href="https://connect.microsoft.com/feedback/default.aspx?SiteID=630" mce_href="https://connect.microsoft.com/feedback/default.aspx?SiteID=630"&gt;&lt;U&gt;here&lt;/U&gt; &lt;/A&gt;on the Connect site.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9470944" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Start Programming with the Live Framework in 5 Minutes</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2009/03/02/start-programming-with-the-live-framework-in-5-minutes.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2009/03/02/start-programming-with-the-live-framework-in-5-minutes.aspx</id><published>2009-03-03T02:02:45Z</published><updated>2009-03-03T02:02:45Z</updated><content type="html">&lt;p&gt;Although accessing data using the Live Framework is as simple as making REST API calls, one thing that might take you more time to figure out is authentication. The Live Framework relies on the &lt;a href="http://msdn.microsoft.com/en-us/library/bb447721.aspx"&gt;Delegated Authentication&lt;/a&gt; mechanism to authenticate the incoming request and check for authorization to access the data being requested. This is done by providing a ticket (&lt;a href="http://msdn.microsoft.com/en-us/library/cc287655.aspx"&gt;Delegation Token&lt;/a&gt;) in an &lt;b&gt;AppDelegationToken&lt;/b&gt; HTTP header. Delegated authentication allows a Windows Live ID user to grant consent to a 3&lt;sup&gt;rd&lt;/sup&gt;-party web application to access data on his/her behalf. Last December, we posted a great &lt;a href="http://blogs.msdn.com/liveframework/archive/2008/12/15/connecting-your-web-site-to-the-live-framework-i-e-using-delegated-auth.aspx"&gt;article&lt;/a&gt; on how to implement delegated authentication for your website using .NET. But we want to make it even easier for you to make your first API call to the Live Framework.&lt;/p&gt;  &lt;p&gt;In this post, we give you a quick way to generate a temporary delegation token and show you how to use it to connect with the Live Framework cloud endpoint (&lt;a href="https://user-ctp.windows.net/"&gt;https://user-ctp.windows.net/&lt;/a&gt;). Note that this method of generating a token is only for testing purposes. Since the goal of this exercise is to make it easy for you to make your first API call to the Live Framework, we do not cache the token on the server.&lt;/p&gt;  &lt;p&gt;1. Go to the token generation utility at &lt;a href="http://token.mslivelabs.com"&gt;http://token.mslivelabs.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;2. Click the link to grant access to your data.&lt;/p&gt;  &lt;p&gt;3. Login with your Windows Live ID.&lt;/p&gt;  &lt;p&gt;4. Click “Allow Access”.&lt;/p&gt;  &lt;p&gt;5. Use the generated HTTP header to make an HTTP GET request on https://user-ctp.windows.net.&lt;/p&gt;  &lt;p&gt;FYI: here's an example header, requesting data to be returned in the ATOMPub format:&lt;/p&gt;  &lt;pre&gt;  Accept: application/atom+xml
  Content-Type: application/atom+xml
  AppDelegationToken: &amp;quot;&amp;lt;insert a valid token here&amp;gt;&amp;quot;
  Host: user-ctp.windows.net
  Connection: Keep-Alive&lt;/pre&gt;

&lt;p&gt;To learn how to use this header to make requests for resources, see &lt;a href="http://msdn.microsoft.com/en-us/library/dd199240.aspx"&gt;Interacting with the Live Operating Environment by Using HTTP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;--Live Framework Team&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9455376" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Live Framework Tools January CTP</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2009/02/02/live-framework-tools-january-ctp.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2009/02/02/live-framework-tools-january-ctp.aspx</id><published>2009-02-02T23:01:31Z</published><updated>2009-02-02T23:01:31Z</updated><content type="html">&lt;p&gt;The Live Framework Tools team has released an update to their Community Technical Preview (CTP). This release was focused on addressing top customer issues, so please be sure to keep the feedback coming! &lt;/p&gt;  &lt;p&gt;From the team’s announcement:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The Live Framework Tools team is pleased to announce the &lt;a href="https://connect.microsoft.com/liveframework/Downloads/DownloadDetails.aspx?DownloadID=16298"&gt;January CTP update&lt;/a&gt;. This update contains a number of fixes.&amp;#160; Please see below for details. And as always, thank you for using Live Framework.&lt;/p&gt;    &lt;p&gt;&lt;b&gt;New in this release&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;The Live Framework Tools January CTP includes a number of bug fixes.&amp;#160; A few of the most notable fixes are listed below:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Debugging or running a Mesh-enabled Web Application which contains no changes from previous versions immediately launches the application instead of re-uploading the files. &lt;/li&gt;      &lt;li&gt;Mesh-enabled Web Applications created by the Live Framework Tools now have identical offers to those created through the Azure Services Developer Portal, which are generally less restrictive.&amp;#160; This change removes the need for the workaround mentioned in &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/695f4201-7ab3-4942-bf45-b929f75f2237"&gt;this thread&lt;/a&gt;. &lt;/li&gt;      &lt;li&gt;Projects created by the Live Framework Tools may now contain periods fixing the issue reported in &lt;a href="https://connect.microsoft.com/liveframework/feedback/ViewFeedback.aspx?FeedbackID=384855&amp;amp;wa=wsignin1.0"&gt;this bug&lt;/a&gt;. &lt;/li&gt;      &lt;li&gt;Changes to the application's logo.png file will now be reflected in the icon that appears on the Live Desktop fixing the issue reported in &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/thread/31ed7183-016a-4245-9503-074f572dc77d/"&gt;this thread&lt;/a&gt;. &lt;/li&gt;      &lt;li&gt;Error messages and diagnostics have been improved.&amp;#160; In certain error situations additional information can now be located in the application event log.&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;In addition to the fixes listed above, the January CTP includes a feature that will&amp;#160; offer to notify you of any future updates to the Live Framework Tools.&amp;#160; &lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9391312" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Delegated Authentication, Part II: Managing Tokens</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2009/01/12/delegated-authentication-part-ii-managing-tokens.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2009/01/12/delegated-authentication-part-ii-managing-tokens.aspx</id><published>2009-01-13T02:23:06Z</published><updated>2009-01-13T02:23:06Z</updated><content type="html">&lt;div style="font-family: &amp;#39;Segoe UI&amp;#39;, verdana, arial, sans-serif"&gt;   &lt;p&gt;In our &lt;a href="http://blogs.msdn.com/liveframework/archive/2008/12/15/connecting-your-web-site-to-the-live-framework-i-e-using-delegated-auth.aspx"&gt;previous posting&lt;/a&gt;, we discussed the basics of setting up delegated authentication using a simple ASP.NET Web site. In this posting we will explore the code in greater detail, and expand the capabilities of the sample to include checking the expiry date of the token, and refreshing the token. This posting shows highlights of the code that is used to perform these tasks, but not the complete code. Refer to the sample code for the full source.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dev.live.com/liveframework/delauthcode2.zip"&gt;Click here to download the sample code&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Note: The instructions for setting up prerequisites have been moved to the sample code project. See readme.htm to access the instructions. Pay particularly close attention if you plan to test the application locally, there are a couple of extra steps you need to take so that cookies will work properly in the local environment.&lt;/p&gt;    &lt;h2&gt;Creating the Hyperlink&lt;/h2&gt;    &lt;p&gt;The first order of business is displaying a hyperlink for the Windows Live sign-in page. This hyperlink contains an assortment of information, including:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;The URL for the consent page. &lt;/li&gt;      &lt;li&gt;A list of offers. These determine the types of permissions that should be granted. &lt;/li&gt;      &lt;li&gt;The return URL. This should point to the response handler page (more about that later). &lt;/li&gt;      &lt;li&gt;The URL for the privacy policy page (in this sample it is merely a placeholder). &lt;/li&gt;      &lt;li&gt;The appid and appUrl values that were provided when you provisioned the application. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Altogether the URL looks like this, as it is generated by calling the &lt;strong&gt;GetConsentUrl&lt;/strong&gt; method in the &lt;strong&gt;WindowsLiveLogin&lt;/strong&gt; class when the page loads (line breaks added for clarity):&lt;/p&gt;    &lt;pre class="csharpcode"&gt;https://developer.mesh-ctp.com/web/apps/appconsent.aspx?&lt;br /&gt;ps=LiveMeshFolder.Read%2cProfiles.Read%2cContacts.Read%2cNews.Read&lt;br /&gt;&amp;amp;ru=http%3a%2f%2flivedocs3.com%2fLiveFX_DelAuth%2fdelauth-handler.aspx&lt;br /&gt;&amp;amp;pl=http%3a%2f%2flivedocs3.com%2fLiveFX_DelAuth%2fPolicy.aspx&lt;br /&gt;&amp;amp;app=appid%3d000000004800582F%26ts%3d1229629618%26sig%3d%&lt;br /&gt;252bZRR4MStePHXezuSb3onuRDCOfvW0M28P7nLYq1re2c%253d&lt;br /&gt;&amp;amp;appUrl=/Live/V0.1/Mesh/Applications/FAN5567B47NEXA5P2GWFSJRRAQ&lt;/pre&gt;

  &lt;p&gt;The following code shows creating an instance of &lt;strong&gt;WindowsLiveLogin&lt;/strong&gt; and calling &lt;strong&gt;GetConsentUrl&lt;/strong&gt;.&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// Create a new instance of WindowsLiveLogin and get a URL string.&lt;/span&gt;
WindowsLiveLogin wl_login = &lt;span class="kwrd"&gt;new&lt;/span&gt; WindowsLiveLogin(&lt;span class="kwrd"&gt;true&lt;/span&gt;);
&lt;span class="kwrd"&gt;string&lt;/span&gt; consentUrl = wl_login.GetConsentUrl(Offers);&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;On the default.aspx page, the hyperlink is presented as follows:&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;linkConsent&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;lt;%=consentUrl%&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Click here&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; to grant consent for this application to access your Windows Live data.&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;WindowsLiveLogin gets the values to use for the URL from the &lt;strong&gt;web.config&lt;/strong&gt; file for the project. When you first open the &lt;strong&gt;web.config&lt;/strong&gt;, look for the following section.&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&amp;lt;!-- IMPORTANT: These values must be entered before running the sample. --&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;--&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wll_appid&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;[Your appid.]&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wll_secret&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;[Your secret key.]&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wll_securityalgorithm&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wsignin1.0&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wll_returnurl&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;[The full URL for your delegated auth handler page.]&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wll_policyurl&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;[The full URL for your site's privacy policy page.]&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wll_consenturl&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;https://developer.mesh-ctp.com/web/apps/appconsent.aspx&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;wll_appurl&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;/Live/V0.1/Mesh/Applications/[The id provided by Azure Services Portal when you registered your app.]&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;&lt;b&gt;IMPORTANT:&lt;/b&gt; The AppID and the final segment of the Application URL (self link) are two discrete values. Take care not to get these values mixed up. See &lt;strong&gt;readme.htm&lt;/strong&gt; in the sample code for more detail about these settings.&lt;/p&gt;

  &lt;p&gt;Keep in mind that &lt;strong&gt;WindowsLiveLogin&lt;/strong&gt; is also sample code, taken directly from the &lt;a href="http://msdn.microsoft.com/en-us/library/cc287637.aspx"&gt;Windows Live ID Delegated Authentication SDK for Application Providers&lt;/a&gt;. Nothing here is set in stone, so feel free to make modifications, and extend the classes as you see fit.&lt;/p&gt;

  &lt;h2&gt;Handling the Return&lt;/h2&gt;

  &lt;p&gt;Once the user has granted consent to access the resources specified in the offers string, a request is sent back to the return URL. Code needs to be put into place to handle this request. This is done by &lt;strong&gt;delauth-handler.aspx&lt;/strong&gt; and &lt;strong&gt;delauth-handler.aspx.cs&lt;/strong&gt;. Since the return URL points directly to this page, the request is intercepted by using a standard &lt;strong&gt;HttpRequest&lt;/strong&gt; object as shown in the following example.&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
    HttpRequest Request = HttpContext.Current.Request;
    HttpResponse Response = HttpContext.Current.Response;
 
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (Request[&lt;span class="str"&gt;&amp;quot;action&amp;quot;&lt;/span&gt;] == &lt;span class="str"&gt;&amp;quot;delauth&amp;quot;&lt;/span&gt;)
    {
        &lt;span class="rem"&gt;// Call ProcessConsent to create a new token.&lt;/span&gt;
        consentToken = wl_login.ProcessConsent(Request.Form);
     }
    &lt;span class="rem"&gt;// Redirect to the login page.&lt;/span&gt;
    Response.Redirect(LoginPage);
    } 
}&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;h2&gt;Getting the Token Data&lt;/h2&gt;

  &lt;p&gt;At this point let's say a user has visited the application, clicked the link, and granted consent to allow the application to view their Windows Live data. The response handler page has redirected us back to the login page, where we now have a delegated authentication token that we'll use to make Live Framework requests on the user's behalf. But there is an issue we have not yet addressed, and that is how to get the delegated authentication token across from the handler page to the default page (and to other pages on the site that may need to use the token). The answer to this is cookies. In the previous version of this sample session cookies were used. This version of the sample offers a more robust system for managing token data, so standard cookies are used instead. This necessitates some changes. First, &lt;strong&gt;default.aspx.cs&lt;/strong&gt; needs some code to check for the existence of a cookie, refresh the cookie if it is expired, and extract delegated authentication data from the cookie. In the following code, the UI that is presented on the default page is toggled based on whether the cookie can be located.&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
    &lt;span class="rem"&gt;// Generate the consent URL by calling GetConsentUrl&lt;/span&gt;
    &lt;span class="rem"&gt;// from the WindowsLiveLogin class.&lt;/span&gt;
    consentUrl = wl_login.GetConsentUrl(Offers);
 
    &lt;span class="rem"&gt;// Toggle the UI elements that are displayed.&lt;/span&gt;
    &lt;span class="rem"&gt;// This depends upon whether a token can be found in the site cookie.&lt;/span&gt;
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;] == &lt;span class="kwrd"&gt;null&lt;/span&gt;)
    {
        lblConsent.Text = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;
        linkConsent.Visible = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
        manageConsent.Visible = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
        connectPrompt.Visible = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
    }
    &lt;span class="kwrd"&gt;else&lt;/span&gt;
    {
        &lt;span class="rem"&gt;// If there is a cookie, check the expiry value to determine whether refresh is required.&lt;/span&gt;
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (DateTime.UtcNow.AddSeconds(-300) &amp;gt; (DateTime.Parse(Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;][&lt;span class="str"&gt;&amp;quot;expiry&amp;quot;&lt;/span&gt;])))
        {
            WindowsLiveLogin.ConsentToken consentToken = authHelpers.getNewTokenwithRefreshToken(Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;][&lt;span class="str"&gt;&amp;quot;offersString&amp;quot;&lt;/span&gt;], Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;][&lt;span class="str"&gt;&amp;quot;refreshToken&amp;quot;&lt;/span&gt;]);
            authHelpers.CreateTokenCookie(consentToken);
        }
 
        lblConsent.Text = &lt;span class="str"&gt;&amp;quot;Consent acquired: &amp;quot;&lt;/span&gt; + Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;][&lt;span class="str"&gt;&amp;quot;delToken&amp;quot;&lt;/span&gt;];
        linkConsent.Visible = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
        manageConsent.Visible = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
        connectPrompt.Visible = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
    }
}&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;The following code shows &lt;strong&gt;delauth-handler.aspx.cs&lt;/strong&gt;, now expanded with some basic cookie management code.&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
    &lt;span class="rem"&gt;// Create a new instance of the AuthenticationHelpers class.&lt;/span&gt;
    AuthenticationHelperClass authHelpers = &lt;span class="kwrd"&gt;new&lt;/span&gt; AuthenticationHelperClass();
 
    &lt;span class="rem"&gt;// Create a consent token&lt;/span&gt;
    WindowsLiveLogin.ConsentToken consentToken = &lt;span class="kwrd"&gt;null&lt;/span&gt;;
    HttpRequest Request = HttpContext.Current.Request;
    HttpResponse Response = HttpContext.Current.Response;
 
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (Request[&lt;span class="str"&gt;&amp;quot;action&amp;quot;&lt;/span&gt;] == &lt;span class="str"&gt;&amp;quot;delauth&amp;quot;&lt;/span&gt;)
    {
        &lt;span class="rem"&gt;// Check if a cookie exists.&lt;/span&gt;
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;] != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
        {
            &lt;span class="rem"&gt;// If the cookie exists, check the expiry and refresh if it is expired.&lt;/span&gt;
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (DateTime.UtcNow.AddSeconds(-300) &amp;gt; (DateTime.Parse(Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;][&lt;span class="str"&gt;&amp;quot;expiry&amp;quot;&lt;/span&gt;])))
            {
                consentToken = authHelpers.getNewTokenwithRefreshToken(Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;][&lt;span class="str"&gt;&amp;quot;offersString&amp;quot;&lt;/span&gt;], Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;][&lt;span class="str"&gt;&amp;quot;refreshToken&amp;quot;&lt;/span&gt;]);
                authHelpers.CreateTokenCookie(consentToken);
            }
        }
 
        &lt;span class="kwrd"&gt;else&lt;/span&gt;
        {
            &lt;span class="rem"&gt;// Call ProcessConsent to create a new token.&lt;/span&gt;
            consentToken = wl_login.ProcessConsent(Request.Form);
            authHelpers.CreateTokenCookie(consentToken);
        }
 
        &lt;span class="rem"&gt;// Redirect to the login page.&lt;/span&gt;
        Response.Redirect(LoginPage);
    } 
}&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;This is where the &lt;strong&gt;AuthenticationHelperClass&lt;/strong&gt; class comes into play. When the handler page loads, it now checks for the existence of the &lt;strong&gt;consentToken&lt;/strong&gt; cookie. If such a cookie is found it checks the value of the expiry key. If the token is expired, a call is made to &lt;strong&gt;getNewTokenwithRefreshToken&lt;/strong&gt;. If no token exists, consent is processed, and the resulting token data is added to the site cookie. The cookie creation code in &lt;strong&gt;AuthenticationHelperClass&lt;/strong&gt; looks like this.&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// Create a cookie and assign keys to each piece of token data.&lt;/span&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CreateTokenCookie(WindowsLiveLogin.ConsentToken consentToken)
{
    HttpCookie tokenCookie = &lt;span class="kwrd"&gt;new&lt;/span&gt; HttpCookie(&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;);
    HttpResponse Response = HttpContext.Current.Response;
    tokenCookie[&lt;span class="str"&gt;&amp;quot;delToken&amp;quot;&lt;/span&gt;] = consentToken.DelegationToken;
    tokenCookie[&lt;span class="str"&gt;&amp;quot;refreshToken&amp;quot;&lt;/span&gt;] = consentToken.RefreshToken;
    tokenCookie[&lt;span class="str"&gt;&amp;quot;sessionKey&amp;quot;&lt;/span&gt;] = consentToken.SessionKey.ToString();
    tokenCookie[&lt;span class="str"&gt;&amp;quot;expiry&amp;quot;&lt;/span&gt;] = consentToken.Expiry.ToString();
    tokenCookie[&lt;span class="str"&gt;&amp;quot;offersString&amp;quot;&lt;/span&gt;] = consentToken.OffersString;
    tokenCookie[&lt;span class="str"&gt;&amp;quot;locationId&amp;quot;&lt;/span&gt;] = consentToken.LocationID;
    tokenCookie[&lt;span class="str"&gt;&amp;quot;context&amp;quot;&lt;/span&gt;] = consentToken.Context;
    tokenCookie[&lt;span class="str"&gt;&amp;quot;decodedtoken&amp;quot;&lt;/span&gt;] = consentToken.DecodedToken;
    tokenCookie[&lt;span class="str"&gt;&amp;quot;token&amp;quot;&lt;/span&gt;] = consentToken.Token;
    tokenCookie.Expires = DateTime.Now.AddDays(30d);
    Response.Cookies.Add(tokenCookie);
}&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;This code creates a new cookie named &lt;strong&gt;consentToken&lt;/strong&gt;, then adds each piece of token data to the cookie as a key, and assigns an expiry date of 30 days from the current day. Although some of the data is not used in the sample, it is a good idea to save all of it for maximum flexibility in the future. For example, you could use the cookie data to completely re-create a new &lt;strong&gt;ConsentToken&lt;/strong&gt; with updated offers. Back to the cookie expiry date, this example sets it for 30 days for the sake of simplicity. You can incorporate a more sophisticated scheme for managing the expiry dates of the token, and align the cookie expiry date accordingly. For example, you could set it up so that the cookie and the token expire at the same time. Since the &lt;strong&gt;ConsentToken.Expiry&lt;/strong&gt; property is a DateTime value, you could set the cookie expiry date based on that. For example:&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;tokenCookie.Expires = consentToken.Expiry.AddDays(30d);&lt;/pre&gt;

  &lt;p&gt;The refresh code uses an &lt;strong&gt;HttpWebRequest&lt;/strong&gt; object and System.Net.WebRequest to generate a refresh token URL, &lt;strong&gt;StreamReader&lt;/strong&gt; to read the response, and &lt;strong&gt;JavaScriptSerializer&lt;/strong&gt; to deserialize the response. The following code snippet shows the code that is used to do this.&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;//Get Renewed ConsentToken Object with RefreshToken&lt;/span&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; WindowsLiveLogin.ConsentToken getNewTokenwithRefreshToken(&lt;span class="kwrd"&gt;string&lt;/span&gt; offerString, &lt;span class="kwrd"&gt;string&lt;/span&gt; refreshToken)
{
    &lt;span class="rem"&gt;//WindowsLiveLogin wll = new WindowsLiveLogin(true);&lt;/span&gt;
    &lt;span class="kwrd"&gt;string&lt;/span&gt; refreshTokenURL = wl_login.GetRefreshConsentTokenUrl(offerString, refreshToken);
 
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(refreshTokenURL);
    request.Method = &lt;span class="str"&gt;&amp;quot;GET&amp;quot;&lt;/span&gt;;
    request.ContentType = &lt;span class="str"&gt;&amp;quot;application/json&amp;quot;&lt;/span&gt;;
 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 
    StreamReader streamReader = &lt;span class="kwrd"&gt;new&lt;/span&gt; StreamReader(response.GetResponseStream());
    &lt;span class="kwrd"&gt;string&lt;/span&gt; jsonResult = streamReader.ReadToEnd();
 
    JavaScriptSerializer jsonSerializer = &lt;span class="kwrd"&gt;new&lt;/span&gt; JavaScriptSerializer();
 
    &lt;span class="kwrd"&gt;string&lt;/span&gt; renewedRawTokenString = jsonSerializer.Deserialize&amp;lt;refreshTokenObj&amp;gt;(jsonResult).ConsentToken;
    &lt;span class="kwrd"&gt;return&lt;/span&gt; wl_login.ProcessConsentToken(renewedRawTokenString);
}
 
&lt;span class="rem"&gt;//ConsentToken Info Object to be Deserialized&lt;/span&gt;
&lt;span class="kwrd"&gt;class&lt;/span&gt; refreshTokenObj
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ConsentToken { get; set; }
}&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;h2&gt;Doing Stuff with the Live Framework&lt;/h2&gt;

  &lt;p&gt;Now that consent has been granted, and a cookie has been saved to store all of the delegated authentication token data, we can begin working with the Live Framework. This sample illustrates getting the names of each folder, and displaying them. The sample has two methods, one to connect to the Live Operating Environment (LOE), and one to page through and display the names of associated Mesh objects. The code for creating an instance of the LOE looks like this:&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// Create a new instance of the Live Operating Environment (loe).&lt;/span&gt;
LiveOperatingEnvironment loe = &lt;span class="kwrd"&gt;new&lt;/span&gt; LiveOperatingEnvironment();&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;The code for connecting to the LOE is as follows.&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt;  ConnectToLOE(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
    &lt;span class="rem"&gt;// Connect to the Live Operating Environment.&lt;/span&gt;
    loe.Connect(Request.Cookies[&lt;span class="str"&gt;&amp;quot;consentToken&amp;quot;&lt;/span&gt;][&lt;span class="str"&gt;&amp;quot;delToken&amp;quot;&lt;/span&gt;], AuthenticationTokenType.DelegatedAuthToken, LiveFxUri, accessOptions);
 
    &lt;span class="rem"&gt;// Create a new Mesh object from the loe.&lt;/span&gt;
    &lt;span class="rem"&gt;// This is the object your program will use for the majority of interactions.&lt;/span&gt;
    Mesh mesh = loe.Mesh;
 
    &lt;span class="rem"&gt;// Show some text to indicate that the user is connected.&lt;/span&gt;
    userName.InnerText = mesh.ProvisionedUser.Name + &lt;span class="str"&gt;&amp;quot; is now connected.&amp;quot;&lt;/span&gt;;
 
    &lt;span class="rem"&gt;// Call the method to display a list of Mesh objects.&lt;/span&gt;
    DisplayMeshItems(mesh);
}&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;The &lt;strong&gt;ConnectToLOE&lt;/strong&gt; method calls the &lt;strong&gt;LiveOperatingEnvironment.Connect&lt;/strong&gt; method using the delegation token key that was saved with the current cookie, indicating an &lt;strong&gt;AuthenticationTokenType&lt;/strong&gt; of &lt;strong&gt;DelegatedAuthToken&lt;/strong&gt;, and passing the &lt;strong&gt;accessOptions&lt;/strong&gt; that have been defined (not shown in this example). Next, a &lt;strong&gt;Mesh&lt;/strong&gt; object is obtained from the LOE instance. This is used to display the user's name in a confirmation message, and to call the &lt;strong&gt;DisplayMeshItems&lt;/strong&gt; method (shown in the following snippet).&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DisplayMeshItems(Mesh mesh)
{
    &lt;span class="rem"&gt;// Display all Mesh Objects (in this case, all Mesh Folders).&lt;/span&gt;
    StringBuilder meshObjectList = &lt;span class="kwrd"&gt;new&lt;/span&gt; StringBuilder(&lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
    mesh.MeshObjects.Load();
 
    var meshObjects = (from meshObject &lt;span class="kwrd"&gt;in&lt;/span&gt; mesh.CreateQuery&amp;lt;MeshObject&amp;gt;() select meshObject);
 
    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (MeshObject meshObject &lt;span class="kwrd"&gt;in&lt;/span&gt; meshObjects)
    {
        meshObjectList.Append(meshObject.Resource.Title + &lt;span class="str"&gt;&amp;quot;, &amp;quot;&lt;/span&gt;);
    }
    connected.InnerText = &lt;span class="str"&gt;&amp;quot;Mesh Folders for &amp;quot;&lt;/span&gt; + mesh.ProvisionedUser.Name + &lt;span class="str"&gt;&amp;quot;: &amp;quot;&lt;/span&gt; + meshObjectList;
}&lt;/pre&gt;
  &lt;style type="text/css"&gt;







.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;At this point, depending on the offers and corresponding consent granted by the user, the application can be empowered to do everything from read the user's data, to creating, updating, and deleting items in the user's Mesh.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;--Live Framework team&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9311188" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Connecting Your Web Site to the Live Framework (i.e. Using Delegated Auth)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2008/12/15/connecting-your-web-site-to-the-live-framework-i-e-using-delegated-auth.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2008/12/15/connecting-your-web-site-to-the-live-framework-i-e-using-delegated-auth.aspx</id><published>2008-12-16T03:24:00Z</published><updated>2008-12-16T03:24:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://dev.live.com/liveframework/delauthcode.zip" mce_href="http://dev.live.com/liveframework/delauthcode.zip"&gt;Click here to download the sample code&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Ever wondered if there was a programmatic way to &lt;B&gt;connect your web site with Live Mesh and other Live Services&lt;/B&gt;? Your Web site can request permission from your users to access their Live Mesh data such as photos, videos files or application data or Windows Live data such as Contacts and Profile information. Live ID Delegated Authentication serves to enable a Web site to connect to the Live Framework and provide access to a user’s data. The sample code featured in this posting uses a a simple ASP.NET Web application to demonstrate the basic tasks involved with using delegated authentication in conjunction with the Live Framework. This posting contains instructions for deploying and running the sample. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Before You Start&lt;/B&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You need to have a provisioned to the Live Framework Developer CTP account to run this sample. Visit https://lx.azure.microsoft.com to sign in using your token. If you don't have a token, please register your interest here http://www.microsoft.com/azure/register.mspx. The rest of this document assumes you are already provisioned to the Live Framework CTP.&lt;/LI&gt;
&lt;LI&gt;Download and install the Live Framework SDK here: http://dev.live.com/liveframework/sdk/.&lt;/LI&gt;
&lt;LI&gt;Visit your Live Desktop and create some content for this application to access. A couple of Live Mesh folders is a good start.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;To Create a new Web site using the Developer Portal&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Before you add Delegated Authentication to your Live Framework-enabled Web site you first need to visit the Azure Services Developer Portal (https://lx.azure.microsoft.com/Cloud/Provisioning/Default.aspx) to register the Website. Take the following steps to register:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Go to the Azure Services Developer Portal. &lt;/LI&gt;
&lt;LI&gt;Click &lt;B&gt;New Project&lt;/B&gt;. &lt;/LI&gt;
&lt;LI&gt;Under &lt;B&gt;Azure Services Platform&lt;/B&gt;, click &lt;B&gt;Live Services: Live Framework Community Technology Preview&lt;/B&gt;. &lt;/LI&gt;
&lt;LI&gt;Enter a label and optional description for your project, then click &lt;B&gt;Next&lt;/B&gt;. &lt;/LI&gt;
&lt;LI&gt;Select the &lt;B&gt;Create a Live Framework-enabled Website&lt;/B&gt; option, and click &lt;B&gt;Create&lt;/B&gt;. &lt;/LI&gt;
&lt;LI&gt;Click the &lt;B&gt;Summary&lt;/B&gt; tab to view a summary for the newly created project. &lt;/LI&gt;
&lt;LI&gt;Click &lt;B&gt;Edit&lt;/B&gt; next to &lt;B&gt;Delegated Authentication&lt;/B&gt; to add your domain and return URL to the configuration settings. For example: &lt;BR&gt;&lt;FONT face="Courier New"&gt;MyDomain.com &lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.mydomain.com/MyWebsite/delauth-handler.aspx" mce_href="http://www.MyDomain.com/MyWebsite/delauth-handler.aspx"&gt;&lt;FONT face="Courier New"&gt;http://www.MyDomain.com/MyWebsite/delauth-handler.aspx&lt;/FONT&gt;&lt;/A&gt; &lt;BR&gt;If you are testing your Website locally, you need to locate your &lt;B&gt;hosts&lt;/B&gt; file (for example C:\WINDOWS\system32\drivers\etc\hosts), and add an entry to redirect the domain to localhost, as shown here:&amp;nbsp; &lt;BR&gt;&lt;FONT face="Courier New"&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp; MyDomain.com&lt;/FONT&gt; &lt;BR&gt;This does not have to be an actual domain, but it does have to be unique for the Website you're registering. The hosts entry causes your local web server to redirect the response from the authentication server to localhost. If you are behind a proxy server, you will need to add the domain you chose to the exclusion list. &lt;/LI&gt;
&lt;LI&gt;Copy the following items from the summary page, and paste them into a text file for later use, along with the domain name and return URL you specified. &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Application Self Link &lt;/LI&gt;
&lt;LI&gt;Application ID &lt;/LI&gt;
&lt;LI&gt;Secret Key &lt;/LI&gt;
&lt;LI&gt;Domain name &lt;/LI&gt;
&lt;LI&gt;Return URL &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Click &lt;B&gt;Update&lt;/B&gt; to add the configuration settings. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;B&gt;To Add the Live Framework References&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Prior to running the sample, you will need to open the project in Visual Studio and add the appropriate references for the Live Framework assemblies. Here's how to do it:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Open the project in Visual Studio. &lt;/LI&gt;
&lt;LI&gt;Right-click the project name and select &lt;B&gt;Add Reference&lt;/B&gt;. &lt;/LI&gt;
&lt;LI&gt;Click the Browse tab and navigate to the installed location for the Live Framework .NET assemblies (for example C:\Program Files\Microsoft SDKs\Live Framework SDK\v0.9\Libraries\.Net Library). &lt;/LI&gt;
&lt;LI&gt;Select the following files: &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Microsoft.LiveFX.Client.dll &lt;/LI&gt;
&lt;LI&gt;Microsoft.LiveFX.ResourceModel.dll &lt;/LI&gt;
&lt;LI&gt;Microsoft.Web.dll &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Click &lt;B&gt;OK&lt;/B&gt; to add the references to the project. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;B&gt;To Run the Sample&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;There are two options here, you can either deploy the sample site on a live Web server, or test it on your local computer. If you plan to deploy the site on a live Web server, you should do so before proceeding any further. Deploy the sample to your web server as you would do so for any ASP.NET Website. &lt;/P&gt;
&lt;P&gt;If you want to run it locally, create a folder at C:\InetPub\wwwroot\LiveFX_DelAuth, and unzip the contents of the archive to that folder. The next section contains instructions for setting up your domain and return URL so that it will work in a testing environment. This example assumes that you are using Internet Information Server.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Deploy and Register the Sample Site&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Update the web.config File&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The WindowsLiveLogin class requires updating the configuration settings to the web.config file for the project. Add the appSettings tag, and add the following key-value pairs:&lt;/P&gt;
&lt;TABLE class=""&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=""&gt;&lt;B&gt;Key&lt;/B&gt;&lt;/TD&gt;
&lt;TD class=""&gt;&lt;B&gt;Value&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;wll_appid&lt;/TD&gt;
&lt;TD class=""&gt;The application ID provided by Azure Services.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;wll_secret&lt;/TD&gt;
&lt;TD class=""&gt;The secret key provided by Azure services.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;wll_securityalgorithm&lt;/TD&gt;
&lt;TD class=""&gt;The security algorithm should be set to "wsignin1.0".&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;wll_returnurl&lt;/TD&gt;
&lt;TD class=""&gt;The full return URL for the authentication handler page. In this sample, the name of the page is "delauth-handler.aspx".&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;wll_consenturl&lt;/TD&gt;
&lt;TD class=""&gt;The URL for the consent page. In this sample, " developer.mesh-ctp.com/web/apps/appconsent.aspx " is used.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;wll_policyurl&lt;/TD&gt;
&lt;TD class=""&gt;The URL for the Website's privacy policy page. In this example the page can be a blank placeholder, but in a live deployment this page must contain an actual privacy statement.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=""&gt;wll_appurl&lt;/TD&gt;
&lt;TD class=""&gt;This is the relative self-link that is used by Live Framework to reference your application. This value is provided for you by the Azure Services Developer Portal when you register your Mesh Application. If you are not using a Mesh Application, this key is not required. This value should be a relative URL, starting with Mesh/Applications. If the Azure Services Developer Portal lists a longer URL, then remove the beginning portion. In this example, it is "/Mesh/Applications/[value for ID]".&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;This is the relative self-link that is used by Live Framework to reference your application. This value is provided for you by the Azure Services Developer Portal when you register your Mesh Application. If you are not using a Mesh Application, this key is not required. This value should be a relative URL, starting with Mesh/Applications. If the Azure Services Developer Portal lists a longer URL, then remove the beginning portion. In this example, it is "/Mesh/Applications/[value for ID]".&lt;/P&gt;
&lt;P&gt;For example:&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;appSettings&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;

   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;key&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="wll_appid"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;value&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="000000004863583G"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;key&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="wll_secret"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;value&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="KfMbFMkVx95G4prAxF64gW78A3bK65HT"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;key&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="wll_securityalgorithm"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;value&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="wsignin1.0"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;key&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="wll_returnurl"&lt;/SPAN&gt; &lt;BR&gt;        &lt;SPAN class=attr&gt;value&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://MyDomain.com/MyWebsite/delauth-handler.aspx"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;key&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="wll_policyurl"&lt;/SPAN&gt; &lt;BR&gt;        &lt;SPAN class=attr&gt;value&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://MyDomain.com/MyWebsite/Policy.aspx"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;key&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="wll_consenturl"&lt;/SPAN&gt; &lt;BR&gt;        &lt;SPAN class=attr&gt;value&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="developer.mesh-ctp.com/web/apps/appconsent.aspx"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;key&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="wll_appurl"&lt;/SPAN&gt; &lt;BR&gt;        &lt;SPAN class=attr&gt;value&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="/Mesh/Applications/FAQ1234B47ZENA5P2GWFSJRLUV"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;appSettings&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;STYLE type=text/css&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P&gt;&lt;B&gt;Summary of Sample Website Features&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Default.aspx/Default.aspx.cs&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;This page, and its accompanying code-behind page, contain code that checks for a session cookie with a delegated authentication token. If a token is not found, a link to the consent page is provided. This sample uses session cookies for the sake of brevity; you can substitute standard site cookies instead. If a token exists (which will be the case immediately after requesting consent), the token itself is displayed on the page, and a link is displayed to connect to the Live Operating Environment.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;delauth-handler.aspx.cs&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;This is the page that handles the return request from the server. If the request is of type "delauth" it calls WindowsLiveLogin.ProcessConsent, passes the results of the form, and returns a consent token. The delegation token is then extracted from the consent token and added to the Session cookie.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;WindowsLiveLogin.cs&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;This class is taken directly from the Windows Live ID Delegated Authentication SDK, and added to the &lt;B&gt;App_Code&lt;/B&gt; folder for this sample. It provides the basic functionality for managing authentication data.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Running the app&lt;/B&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Click the link to request consent. Enter your Windows Live credentials if prompted. &lt;/LI&gt;
&lt;LI&gt;In the &lt;B&gt;Access Permission&lt;/B&gt; section, scroll down to where it says &lt;B&gt;Read access to the following MeshObject&lt;/B&gt;, click &lt;B&gt;Change&lt;/B&gt;, and select the Mesh objects of your choice. &lt;/LI&gt;
&lt;LI&gt;Click &lt;B&gt;OK&lt;/B&gt;, then click &lt;B&gt;Allow Access&lt;/B&gt;. &lt;/LI&gt;
&lt;LI&gt;You will be returned to your Web site. The page now displays the delegated authentication token and a link. &lt;/LI&gt;
&lt;LI&gt;Click the link to connect to the Live Operating Environment. This initiates a request to display the names of your Mesh objects. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;B&gt;For More Information, see:&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Accessing Existing Resources by Using Delegated Authentication (http://msdn.microsoft.com/en-us/library/dd217567.aspx)&lt;/P&gt;
&lt;P&gt;Windows Live ID Delegated Authentication SDK for Application Providers (http://msdn.microsoft.com/en-us/library/cc287637.aspx)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9222792" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Live Framework Resource Model--Part 1</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2008/12/11/live-framework-resource-model-part-1.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2008/12/11/live-framework-resource-model-part-1.aspx</id><published>2008-12-12T02:55:57Z</published><updated>2008-12-12T02:55:57Z</updated><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In upcoming posts we will talk about the resources that are exposed by the Live Framework. The following diagram provides a complete picture of the various resources that are currently available.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/liveframework/WindowsLiveWriter/LiveFrameworkResourceModelPart1_DFFF/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/liveframework/WindowsLiveWriter/LiveFrameworkResourceModelPart1_DFFF/image_thumb_1.png" width="500" height="314" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We will take a bottom up approach to explain the various resources. The Live Framework Resource Model describes various resources and their relationships to other resources. It is based on a simple &lt;i&gt;Property, Entity&lt;/i&gt;, &lt;i&gt;Collection &lt;/i&gt;based information model. Each resource is an entity which contains various properties and a set of entities make up a collection. Every collection and entity is uniquely addressable and is identified by a URL. The relationships between entries are represented through hyperlinks. This allows for navigation from one resource to the related resource (entity) or collection of resources (collection). Note that such an entity/collection based model can be transformed trivially to an item/feed based information model of that of RSS or an entry/feed based model of that of ATOM.&lt;/p&gt;  &lt;p&gt;At the heart of the resource model is &lt;b&gt;Data Entry&lt;/b&gt;. Data Entry is the representation of a single unit of data such as photo, a document, a blog post etc. Each data entry contains textual information which describes the data and the link to the binary information, the media (if any, such as in case of a photo). Here is an example of a data entry in JSON format &amp;#8211;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;{
    &amp;quot;AuthorProfileLink&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
    &amp;quot;Authors&amp;quot; : [
        {
            &amp;quot;Name&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
            &amp;quot;Uri&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
            &amp;quot;Email&amp;quot; : &amp;quot;brian.perry@live.com&amp;quot;
        }
    ],
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
    &amp;quot;Categories&amp;quot; : [
        {
            &amp;quot;Label&amp;quot; : &amp;quot;DataEntry&amp;quot;,
            &amp;quot;Name&amp;quot; : &amp;quot;DataEntry&amp;quot;,
            &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
        }
    ],
    &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:29c29a60-6bc0-6888-72fc-5719596cf4c6&amp;quot;,
    &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1225235053000)/&amp;quot;,
    &amp;quot;PublishDate&amp;quot; : &amp;quot;/Date(1225235053000)/&amp;quot;,
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/Entries/MCNMEKOANOEGQ4X4K4MVS3HUYY&amp;quot;,
    &amp;quot;Summary&amp;quot; : &amp;quot; &amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Amanda.wma&amp;quot;,
    &amp;quot;EditMediaLink&amp;quot; : &amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/MediaResources/MCNMEKOANOEGQ4X4K4MVS3HUYY-QLSVIDRQUCZLSAGEUVKWYJIPQA&amp;quot;,
    &amp;quot;MediaResource&amp;quot; : {
        &amp;quot;Hash&amp;quot; : &amp;quot;guVUDjCgsrkAxKVVbCUPgA==&amp;quot;,
        &amp;quot;Id&amp;quot; : &amp;quot;d73533c0-271b-4879-b5c8-021b94e874e2&amp;quot;,
        &amp;quot;IsUploaded&amp;quot; : true,
        &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1225235053495)/&amp;quot;,
        &amp;quot;Length&amp;quot; : 4990823,
        &amp;quot;MediaType&amp;quot; : &amp;quot;audio/x-ms-wma&amp;quot;,
        &amp;quot;Name&amp;quot; : &amp;quot;Amanda.wma&amp;quot;,
        &amp;quot;PublishDate&amp;quot; : &amp;quot;/Date(1225235053495)/&amp;quot;
    },
    &amp;quot;ParentId&amp;quot; : &amp;quot;urn:uuid:00000000-0000-0000-0000-000000000000&amp;quot;,
    &amp;quot;Type&amp;quot; : &amp;quot;File&amp;quot;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;The same data entry in ATOM format is represented as follows &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;entry&lt;/span&gt; &lt;span class="attr"&gt;xml:base&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;urn:uuid:29c29a60-6bc0-6888-72fc-5719596cf4c6&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Amanda.wma&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;summary&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;published&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2008-10-28T23:04:13Z&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;published&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;updated&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2008-10-28T23:04:13Z&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;updated&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;author&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Brian Perry&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;uri&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;email-brian.perry@live.com/Profiles&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;uri&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;email&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;brian.perry@live.com&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;email&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;author&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;edit-media&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Amanda.wma&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/MediaResources/MCNMEKOANOEGQ4X4K4MVS3HUYY-QLSVIDRQUCZLSAGEUVKWYJIPQA&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;self&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;self&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/Entries/MCNMEKOANOEGQ4X4K4MVS3HUYY&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;edit&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;edit&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/Entries/MCNMEKOANOEGQ4X4K4MVS3HUYY&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;LiveFX/AuthorProfile&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;LiveFX/AuthorProfile&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;email-brian.perry@live.com/Profiles&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;category&lt;/span&gt; &lt;span class="attr"&gt;term&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;File&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;File&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;scheme&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://user.windows.net/DataEntry&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;category&lt;/span&gt; &lt;span class="attr"&gt;term&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;DataEntry&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;DataEntry&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;scheme&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://user.windows.net/Resource&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;content&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;audio/x-ms-wma&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;https://user-ctp.windows.net/V0.1/Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/MediaResources/MCNMEKOANOEGQ4X4K4MVS3HUYY-QLSVIDRQUCZLSAGEUVKWYJIPQA&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Properties&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MediaResource&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Hash&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;guVUDjCgsrkAxKVVbCUPgA==&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Hash&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;d73533c0-271b-4879-b5c8-021b94e874e2&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;IsUploaded&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;true&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;IsUploaded&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LastUpdatedTime&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2008-10-28T23:04:13.4950863Z&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LastUpdatedTime&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Length&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;4990823&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Length&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MediaType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;audio/x-ms-wma&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MediaType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Amanda.wma&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PublishDate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2008-10-28T23:04:13.4950863Z&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;PublishDate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MediaResource&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ParentId&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;urn:uuid:00000000-0000-0000-0000-000000000000&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ParentId&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Properties&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;entry&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;And the same data entry in POX is represented as follows &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DataEntry&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AuthorProfileLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;email-brian.perry@live.com/Profiles&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;AuthorProfileLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Authors&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Person&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Brian Perry&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Uri&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;email-brian.perry@live.com/Profiles&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Uri&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Email&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;brian.perry@live.com&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Email&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Person&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Authors&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;BaseUri&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;https://user-ctp.windows.net/V0.1/&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;BaseUri&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Categories&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Category&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;DataEntry&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;DataEntry&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Scheme&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;http://user.windows.net/Resource&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Scheme&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Category&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Categories&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;urn:uuid:29c29a60-6bc0-6888-72fc-5719596cf4c6&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LastUpdatedTime&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2008-10-28T23:04:13Z&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LastUpdatedTime&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PublishDate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2008-10-28T23:04:13Z&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;PublishDate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SelfLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/Entries/MCNMEKOANOEGQ4X4K4MVS3HUYY&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SelfLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Summary&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Amanda.wma&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;EditMediaLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/MediaResources/MCNMEKOANOEGQ4X4K4MVS3HUYY-QLSVIDRQUCZLSAGEUVKWYJIPQA&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;EditMediaLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MediaResource&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Hash&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;guVUDjCgsrkAxKVVbCUPgA==&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Hash&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;d73533c0-271b-4879-b5c8-021b94e874e2&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Id&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;IsUploaded&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;true&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;IsUploaded&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LastUpdatedTime&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2008-10-28T23:04:13.4950863Z&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LastUpdatedTime&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Length&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;4990823&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Length&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MediaType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;audio/x-ms-wma&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MediaType&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Amanda.wma&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PublishDate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2008-10-28T23:04:13.4950863Z&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;PublishDate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MediaResource&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ParentId&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;urn:uuid:00000000-0000-0000-0000-000000000000&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ParentId&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Type&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;File&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Type&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;DataEntry&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;More information on various properties of a data entry is available &lt;a href="http://msdn.microsoft.com/en-us/library/dd136078.aspx"&gt;here&lt;/a&gt;. Media related to the data entry is linked via the &amp;#8220;EditMediaLink&amp;#8221; property and is stored under &lt;b&gt;Media Resources&lt;/b&gt;. &lt;b&gt;Sync Entries&lt;/b&gt; and &lt;b&gt;Media Staging Area&lt;/b&gt; provide information that allows for synchronization of data entries. We will discuss more about synchronization in a separate post. &lt;/p&gt;

&lt;p&gt;Let us assume that the data entry in this context represents a photo. A collection of all such photos can be represented as a &lt;b&gt;Data Feed&lt;/b&gt;. A data feed is a collection of data entries. In most cases a data feed will be a logical collection of similar / related data entries, however, the content and type of data entries present as part of a data feed is whatever you want it to be. Here is an example of a data feed with single data entry &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
    &amp;quot;Entries&amp;quot; : [
        {
            &amp;quot;AuthorProfileLink&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
            &amp;quot;Authors&amp;quot; : [
                {
                    &amp;quot;Name&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
                    &amp;quot;Uri&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
                    &amp;quot;Email&amp;quot; : &amp;quot;brian.perry@live.com&amp;quot;
                }
            ],
            &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
            &amp;quot;Categories&amp;quot; : [
                {
                    &amp;quot;Label&amp;quot; : &amp;quot;DataEntry&amp;quot;,
                    &amp;quot;Name&amp;quot; : &amp;quot;DataEntry&amp;quot;,
                    &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
                }
            ],
            &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:29c29a60-6bc0-6888-72fc-5719596cf4c6&amp;quot;,
            &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1225235053000)/&amp;quot;,
            &amp;quot;PublishDate&amp;quot; : &amp;quot;/Date(1225235053000)/&amp;quot;,
            &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/Entries/MCNMEKOANOEGQ4X4K4MVS3HUYY&amp;quot;,
            &amp;quot;Summary&amp;quot; : &amp;quot; &amp;quot;,
            &amp;quot;Title&amp;quot; : &amp;quot;Amanda.wma&amp;quot;,
            &amp;quot;EditMediaLink&amp;quot; : &amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/MediaResources/MCNMEKOANOEGQ4X4K4MVS3HUYY-QLSVIDRQUCZLSAGEUVKWYJIPQA&amp;quot;,
            &amp;quot;MediaResource&amp;quot; : {
                &amp;quot;Hash&amp;quot; : &amp;quot;guVUDjCgsrkAxKVVbCUPgA==&amp;quot;,
                &amp;quot;Id&amp;quot; : &amp;quot;d73533c0-271b-4879-b5c8-021b94e874e2&amp;quot;,
                &amp;quot;IsUploaded&amp;quot; : true,
                &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1225235053495)/&amp;quot;,
                &amp;quot;Length&amp;quot; : 4990823,
                &amp;quot;MediaType&amp;quot; : &amp;quot;audio/x-ms-wma&amp;quot;,
                &amp;quot;Name&amp;quot; : &amp;quot;Amanda.wma&amp;quot;,
                &amp;quot;PublishDate&amp;quot; : &amp;quot;/Date(1225235053495)/&amp;quot;
            },
            &amp;quot;ParentId&amp;quot; : &amp;quot;urn:uuid:00000000-0000-0000-0000-000000000000&amp;quot;,
            &amp;quot;Type&amp;quot; : &amp;quot;File&amp;quot;
        }
    ],
    &amp;quot;Links&amp;quot; : [
        {
            &amp;quot;RelationshipType&amp;quot; : &amp;quot;LiveFX/MediaResources&amp;quot;,
            &amp;quot;Title&amp;quot; : &amp;quot;LiveFX/MediaResources&amp;quot;,
            &amp;quot;Uri&amp;quot; : &amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/MediaResources&amp;quot;
        }
    ],
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/Entries&amp;quot;,
    &amp;quot;SubscriptionLink&amp;quot; : &amp;quot;Mesh/MeshObjects/4YMLEZWFU7QUFFAJTATIX5DYE4/DataFeeds/V5EGUCYSYL7ULE6IEYZR4P2IOY/Entries/Subscriptions&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;DataEntries&amp;quot;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;More information on the various properties of data feeds can be found &lt;a href="http://msdn.microsoft.com/en-us/library/dd137042.aspx"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Similarly, a collection of data feeds can be represented by a container which we call as a &lt;b&gt;Mesh Object&lt;/b&gt;. Again, in most cases, the data feeds that are clubbed together under a single container (Mesh Object) will be logically related to each other but there is no such binding. Mesh objects are the basic unit of extensibility, data synchronization and sharing in the Live Framework Resource Model. Information on various properties of mesh objects is available &lt;a href="http://msdn.microsoft.com/en-us/library/dd200964.aspx"&gt;here&lt;/a&gt;. All of a user&amp;#8217;s data is represented by a collection of such mesh objects and they can be referenced via the user&amp;#8217;s &lt;b&gt;Mesh&lt;/b&gt;. Each mesh object not only exposes the collection of data feeds which contains user data but also some other important collections &amp;#8211;&lt;/p&gt;

&lt;p&gt;1. &lt;b&gt;Mappings&lt;/b&gt; &amp;#8211; Every mesh object can be synchronized to multiple devices in a user&amp;#8217;s mesh. Information on devices on which a given mesh object is synchronized is available via the mappings feed where each entry provides information on a single device where this mesh object is present. More information on various properties is available &lt;a href="http://msdn.microsoft.com/en-us/library/dd217524.aspx"&gt;here&lt;/a&gt;. JSON representation of Mappings feed with a single entry is as follows &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
    &amp;quot;Entries&amp;quot; : [
        {
            &amp;quot;AuthorProfileLink&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
            &amp;quot;Authors&amp;quot; : [
                {
                    &amp;quot;Name&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
                    &amp;quot;Uri&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
                    &amp;quot;Email&amp;quot; : &amp;quot;brian.perry@live.com&amp;quot;
                }
            ],
            &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
            &amp;quot;Categories&amp;quot; : [
                {
                    &amp;quot;Label&amp;quot; : &amp;quot;Mapping&amp;quot;,
                    &amp;quot;Name&amp;quot; : &amp;quot;Mapping&amp;quot;,
                    &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
                }
            ],
            &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:00000000-0000-0000-0000-000000000000&amp;quot;,
            &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1228413012000)/&amp;quot;,
            &amp;quot;PublishDate&amp;quot; : &amp;quot;/Date(1228413012000)/&amp;quot;,
            &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/WA6OMIZL7IGEFNJCCBFQG47V3U/Mappings/AAAAAAAAAAAAAAAAAAAAAAAAAA&amp;quot;,
            &amp;quot;Title&amp;quot; : &amp;quot;&amp;quot;,
            &amp;quot;GhostingPolicy&amp;quot; : 0,
            &amp;quot;MappingType&amp;quot; : 1,
            &amp;quot;MeshObjectLink&amp;quot; : &amp;quot;Mesh/MeshObjects/WA6OMIZL7IGEFNJCCBFQG47V3U&amp;quot;
        }
    ],
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/WA6OMIZL7IGEFNJCCBFQG47V3U/Mappings&amp;quot;,
    &amp;quot;SubscriptionLink&amp;quot; : &amp;quot;Mesh/MeshObjects/WA6OMIZL7IGEFNJCCBFQG47V3U/Mappings/Subscriptions&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Mappings&amp;quot;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;2. &lt;b&gt;Members&lt;/b&gt; &amp;#8211; Every mesh object can be shared with multiple people in various capacities. E.g., I can share a mesh object that contains all my photos with my spouse (another Windows Live ID user) such that she can edit / delete / add more photos in that mesh object and with my friends such that they can only read them. Every entry in the members feed provide information on every user who has access to the given mesh object and the type of access they have (e.g. RO or RW). More information on various properties is available &lt;a href="http://msdn.microsoft.com/en-us/library/dd157331.aspx"&gt;here&lt;/a&gt;. JSON representation of Members feed with a single entry is as follows &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
    &amp;quot;Entries&amp;quot; : [
        {
            &amp;quot;AuthorProfileLink&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
            &amp;quot;Authors&amp;quot; : [
                {
                    &amp;quot;Name&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
                    &amp;quot;Uri&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
                    &amp;quot;Email&amp;quot; : &amp;quot;brian.perry@live.com&amp;quot;
                }
            ],
            &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
            &amp;quot;Categories&amp;quot; : [
                {
                    &amp;quot;Label&amp;quot; : &amp;quot;Member&amp;quot;,
                    &amp;quot;Name&amp;quot; : &amp;quot;Member&amp;quot;,
                    &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
                }
            ],
            &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:00eb8df1-16ff-4c95-93a7-9ea3199b05b1&amp;quot;,
            &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1227561909000)/&amp;quot;,
            &amp;quot;PublishDate&amp;quot; : &amp;quot;/Date(1227561909000)/&amp;quot;,
            &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/U5CVWTZDBTRE7GKU623MLYZCOA/Members/6GG6WAH7C2KUZE5HT2RRTGYFWE&amp;quot;,
            &amp;quot;Title&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
            &amp;quot;Email&amp;quot; : &amp;quot;brian.perry@live.com&amp;quot;,
            &amp;quot;IsOwner&amp;quot; : true,
            &amp;quot;ProfilesLink&amp;quot; : &amp;quot;cid--4392929366419723837/Profiles&amp;quot;,
            &amp;quot;Role&amp;quot; : 1
        }
    ],
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/U5CVWTZDBTRE7GKU623MLYZCOA/Members&amp;quot;,
    &amp;quot;SubscriptionLink&amp;quot; : &amp;quot;Mesh/MeshObjects/U5CVWTZDBTRE7GKU623MLYZCOA/Members/Subscriptions&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Members&amp;quot;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;3. &lt;b&gt;News&lt;/b&gt; &amp;#8211; Whenever a data entry is added, updated or deleted under a given mesh object, the system automatically generates news events. These are also generated whenever there is an addition / deletion to the members feed or mappings feed for the mesh object. Each such news event forms an entry in the news feed for the given mesh object. More information on various properties is available &lt;a href="http://msdn.microsoft.com/en-us/library/dd199277.aspx"&gt;here&lt;/a&gt;. JSON representation of a news feed with a single entry is as follows &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
    &amp;quot;Entries&amp;quot; : [
        {
            &amp;quot;AuthorProfileLink&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
            &amp;quot;Authors&amp;quot; : [
                {
                    &amp;quot;Name&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
                    &amp;quot;Uri&amp;quot; : &amp;quot;email-brian.perry@live.com/Profiles&amp;quot;,
                    &amp;quot;Email&amp;quot; : &amp;quot;brian.perry@live.com&amp;quot;
                }
            ],
            &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
            &amp;quot;Categories&amp;quot; : [
                {
                    &amp;quot;Label&amp;quot; : &amp;quot;NewsItem&amp;quot;,
                    &amp;quot;Name&amp;quot; : &amp;quot;NewsItem&amp;quot;,
                    &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
                }
            ],
            &amp;quot;Id&amp;quot; : &amp;quot;urn:uuid:96777b22-65d2-0782-e4ec-2f85d7831f26&amp;quot;,
            &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1225297814000)/&amp;quot;,
            &amp;quot;PublishDate&amp;quot; : &amp;quot;/Date(1225297814000)/&amp;quot;,
            &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/S35IOSATGIMU3L5K2Y5HBLSW3M/News/ULXR63FDIIHU3LNMZZNYGW6RRI-EJ5XPFWSMWBAPZHMF6C5PAY7EY&amp;quot;,
            &amp;quot;Title&amp;quot; : &amp;quot;LiveMesh.MemberAdd&amp;quot;,
            &amp;quot;CoalesceCount&amp;quot; : 1,
            &amp;quot;Contexts&amp;quot; : [
                {
                    &amp;quot;Kind&amp;quot; : &amp;quot;Scope&amp;quot;,
                    &amp;quot;Relationship&amp;quot; : &amp;quot;LiveFX/MeshObject&amp;quot;,
                    &amp;quot;TargetLink&amp;quot; : &amp;quot;Mesh/MeshObjects/S35IOSATGIMU3L5K2Y5HBLSW3M&amp;quot;,
                    &amp;quot;Text&amp;quot; : &amp;quot;Documents&amp;quot;,
                    &amp;quot;Type&amp;quot; : &amp;quot;LiveFX/MeshObject&amp;quot;
                }
            ]
        }
    ],
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/MeshObjects/S35IOSATGIMU3L5K2Y5HBLSW3M/News&amp;quot;,
    &amp;quot;SubscriptionLink&amp;quot; : &amp;quot;Mesh/MeshObjects/S35IOSATGIMU3L5K2Y5HBLSW3M/News/Subscriptions&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;NewsFeed&amp;quot;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;4. &lt;b&gt;Subscription&lt;/b&gt; &amp;#8211; Users can subscribe to changes to mesh objects such that they can be notified and can potentially take appropriate actions. We will discuss more about this when we talk about notifications and subscriptions in another post.&lt;/p&gt;

&lt;p&gt;Other important resources exposed via Mesh in addition to Mesh Objects are &lt;/p&gt;

&lt;p&gt;1. &lt;b&gt;Devices&lt;/b&gt; &amp;#8211; Information on all the devices on which all or some of the mesh objects are synchronized is available via the devices feed where each entry in the feed provides information on a single device. More information on the various properties exposed via devices entry is available &lt;a href="http://msdn.microsoft.com/en-us/library/dd136955.aspx"&gt;here&lt;/a&gt;. JSON representation of Devices feed is as follows &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
    &amp;quot;Entries&amp;quot; : [
        {
            &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
            &amp;quot;Categories&amp;quot; : [
                {
                    &amp;quot;Label&amp;quot; : &amp;quot;Device&amp;quot;,
                    &amp;quot;Name&amp;quot; : &amp;quot;Device&amp;quot;,
                    &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
                }
            ],
            &amp;quot;Id&amp;quot; : &amp;quot;d61585ef-1d67-4d48-9b44-e0047ab93adf&amp;quot;,
            &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1226685229000)/&amp;quot;,
            &amp;quot;PublishDate&amp;quot; : &amp;quot;/Date(1226685229000)/&amp;quot;,
            &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/Devices/7O5BXLSH2O7UDDAM7VG5SNBJSM-56CRLVTHDVEE3G2E4ACHVOJ234&amp;quot;,
            &amp;quot;Title&amp;quot; : &amp;quot;MESHDEMO1&amp;quot;,
            &amp;quot;SubscriptionLink&amp;quot; : &amp;quot;Mesh/Devices/7O5BXLSH2O7UDDAM7VG5SNBJSM-56CRLVTHDVEE3G2E4ACHVOJ234/Subscriptions&amp;quot;,
            &amp;quot;Type&amp;quot; : &amp;quot;Computer&amp;quot;
        }
    ],
    &amp;quot;SelfLink&amp;quot; : &amp;quot;Mesh/Devices&amp;quot;,
    &amp;quot;SubscriptionLink&amp;quot; : &amp;quot;Mesh/Devices/Subscriptions&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Devices&amp;quot;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;2. &lt;b&gt;News&lt;/b&gt; &amp;#8211; Collective information on all the news entries for all the mesh objects and global news related to the user is available via the news feed where every entry represents a single news event.&lt;/p&gt;

&lt;p&gt;Mesh and all the resources underneath it can be accessed via the service endpoint. The service endpoint in the cloud is &lt;a href="https://user.window-ctp.net"&gt;https://user.window-ctp.net&lt;/a&gt; and on the client is &lt;a href="http://localhost:2048"&gt;http://localhost:2048&lt;/a&gt;. In addition to Mesh, you can also access &lt;a href="https://profiles.live.com"&gt;Windows Live Profiles&lt;/a&gt; and &lt;a href="http://contacts.live.com"&gt;Windows Live Contacts&lt;/a&gt; via the cloud service endpoint. They are represented as Profile and Contact resource. More information on Contact resource is available &lt;a href="http://msdn.microsoft.com/en-us/library/dd199223.aspx"&gt;here&lt;/a&gt;. JSON representation of a contact is as follows &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
    &amp;quot;Categories&amp;quot; : [
        {
            &amp;quot;Label&amp;quot; : &amp;quot;Contact&amp;quot;,
            &amp;quot;Name&amp;quot; : &amp;quot;Contact&amp;quot;,
            &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
        }
    ],
    &amp;quot;Id&amp;quot; : &amp;quot;8129b749-ebe2-4257-854e-bd2c4eb0094c&amp;quot;,
    &amp;quot;LastUpdatedTime&amp;quot; : &amp;quot;/Date(1225296671853)/&amp;quot;,
    &amp;quot;SelfLink&amp;quot; : &amp;quot;cid--4392929366419723837/Contacts/8129b749-ebe2-4257-854e-bd2c4eb0094c&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
    &amp;quot;Birthday&amp;quot; : &amp;quot;/Date(-62135568000000)/&amp;quot;,
    &amp;quot;Cid&amp;quot; : -1415099226309944575,
    &amp;quot;ContactId&amp;quot; : &amp;quot;8129b749-ebe2-4257-854e-bd2c4eb0094c&amp;quot;,
    &amp;quot;DisplayName&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
    &amp;quot;Emails&amp;quot; : [
        {
            &amp;quot;Primary&amp;quot; : true,
            &amp;quot;Type&amp;quot; : 1,
            &amp;quot;Value&amp;quot; : &amp;quot;brian.perry@live.com&amp;quot;
        }
    ],
    &amp;quot;FamilyName&amp;quot; : &amp;quot;Perry&amp;quot;,
    &amp;quot;FormattedName&amp;quot; : &amp;quot;Brian Perry&amp;quot;,
    &amp;quot;GivenName&amp;quot; : &amp;quot;Brian&amp;quot;,
    &amp;quot;NickName&amp;quot; : &amp;quot;Brian&amp;quot;,
    &amp;quot;PreferredUserName&amp;quot; : &amp;quot;brianperry&amp;quot;,
    &amp;quot;Profession&amp;quot; : &amp;quot;Photographer&amp;quot;,
    &amp;quot;ProfilesLink&amp;quot; : &amp;quot;cid--1415099226309944575/Profiles&amp;quot;,
    &amp;quot;WindowsLiveId&amp;quot; : &amp;quot;brian.perry@live.com&amp;quot;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;There are 5 profiles that are available for every user &amp;#8211; About You Profile, Contact Profile, Work Profile, General Profile and Interests Profile. You can get more information on these profiles &lt;a href="http://msdn.microsoft.com/en-us/library/dd156939.aspx"&gt;here&lt;/a&gt;. JSON representation of About You Profile is as follows &amp;#8211;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;{
    &amp;quot;BaseUri&amp;quot; : &amp;quot;https://user-ctp.windows.net/V0.1/&amp;quot;,
    &amp;quot;Categories&amp;quot; : [
        {
            &amp;quot;Label&amp;quot; : &amp;quot;Profile&amp;quot;,
            &amp;quot;Name&amp;quot; : &amp;quot;Profile&amp;quot;,
            &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
        },
        {
            &amp;quot;Label&amp;quot; : &amp;quot;AboutYouProfile&amp;quot;,
            &amp;quot;Name&amp;quot; : &amp;quot;Profile&amp;quot;,
            &amp;quot;Scheme&amp;quot; : &amp;quot;http://user.windows.net/Resource&amp;quot;
        }
    ],
    &amp;quot;Id&amp;quot; : &amp;quot;480u7Y0U&amp;quot;,
    &amp;quot;SelfLink&amp;quot; : &amp;quot;cid--4392929366419723837/Profiles/480u7Y0U&amp;quot;,
    &amp;quot;Title&amp;quot; : &amp;quot;AboutYouProfile&amp;quot;,
    &amp;quot;ProfileBase&amp;quot; : {
        &amp;quot;__type&amp;quot; : &amp;quot;AboutYouProfile:http://user.windows.net&amp;quot;,
        &amp;quot;Age&amp;quot; : 31,
        &amp;quot;Gender&amp;quot; : 2,
        &amp;quot;Interests&amp;quot; : &amp;quot;Coding\u000aReading books\u000aHiking\u000aXBOX!&amp;quot;,
        &amp;quot;Location&amp;quot; : &amp;quot;Redmond, WA&amp;quot;,
        &amp;quot;MoreAboutMe&amp;quot; : &amp;quot;I like to write code!&amp;quot;,
        &amp;quot;Occupation&amp;quot; : &amp;quot;Engineer&amp;quot;
    },
    &amp;quot;ProfileType&amp;quot; : 2
}&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;To learn how to do basic operations on these resources, see the SDK documentation topics:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd199240.aspx"&gt;Interacting with the Live Operating Environment by Using HTTP&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd199336.aspx"&gt;.NET: Working with Resources&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In upcoming posts we'll talk about Applications, Subscriptions and Notifications, and Synchronization of resources. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;--The Live Framework Team&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9199195" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>What Problems Are We Trying to Solve?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2008/12/02/what-problems-are-we-trying-to-solve.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2008/12/02/what-problems-are-we-trying-to-solve.aspx</id><published>2008-12-03T03:34:00Z</published><updated>2008-12-03T03:34:00Z</updated><content type="html">&lt;P&gt;As we hear from more and more developers who have started using the Live Framework or who are trying to understand it, it’s clear that some of you would like us to expand more on what the Live Framework is, the problems we are trying to solve, and why developers should care about it. So,&amp;nbsp;we have put together &lt;U&gt;&lt;A href="http://dev.live.com/liveframework/livefxwhatwhy.pdf" mce_href="http://dev.live.com/liveframework/livefxwhatwhy.pdf"&gt;this whitepaper&lt;/A&gt;&lt;/U&gt; to help answer some of these questions. All the ideas in this paper will eventually make their way into our core documentation and &lt;A href="http://dev.live.com/liveframework/" mce_href="http://dev.live.com/liveframework/"&gt;Web site&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Your feedback is, as always, welcome.&lt;/P&gt;
&lt;P&gt;--The Live Framework Team&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9167382" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Live Web Cast Coming Dec 8th! Please Join Us.</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2008/12/01/live-web-cast-coming-dec-8th-please-join-us.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2008/12/01/live-web-cast-coming-dec-8th-please-join-us.aspx</id><published>2008-12-02T01:43:00Z</published><updated>2008-12-02T01:43:00Z</updated><content type="html">&lt;P&gt;The Live Framework team would like to invite you to join the first webcast and chat event for the Live Framework. During the session, you will have a chance to hear from the Microsoft engineering team that architected and developed the Live Framework. The session will be held from 8am PST to 10am PST on Dec 8th, 2008. &lt;/P&gt;
&lt;P&gt;The agenda for the session: &lt;/P&gt;
&lt;P&gt;8:00am – 8:30am: Introduction to tne Live Framework, Overview of support resources &lt;/P&gt;
&lt;P&gt;8:30am – 8:45am: Live demonstration of sample application development. &lt;/P&gt;
&lt;P&gt;8:45am-10:00am: Open Q&amp;amp;A.&lt;/P&gt;
&lt;P&gt;If there are any questions in-depth technical/coding questions that you would like us to cover as part of Q&amp;amp;A, you can post them in advance on &lt;B&gt;&lt;U&gt;this&lt;/U&gt;&lt;/B&gt; forum thread. We will try to cover as many as we can. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Joining and viewing online Webcast &lt;/B&gt;&lt;/P&gt;
&lt;P&gt;You can join the online webcast using any standard browser here: &lt;A href="https://www.livemeeting.com/cc/microsoft/join?id=LiveFx_Dec8&amp;amp;role=attend" mce_href="https://www.livemeeting.com/cc/microsoft/join?id=LiveFx_Dec8&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/microsoft/join?id=LiveFx_Dec8&amp;amp;role=attend&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Alternatively, you can dial-in to listen to audio using these numbers and participant pass-code. &lt;/P&gt;
&lt;TABLE style="BORDER-BOTTOM: black 1pt outset; BORDER-LEFT: black 1pt outset; WIDTH: 319.1pt; BORDER-TOP: black 1pt outset; BORDER-RIGHT: black 1pt outset; mso-cellspacing: 0in; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" class=MsoNormalTable border=1 cellSpacing=0 cellPadding=0 width=425 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM: black 1pt inset; BORDER-LEFT: black 1pt inset; PADDING-BOTTOM: 3pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3pt; WIDTH: 107.6pt; PADDING-RIGHT: 3pt; BORDER-TOP: black 1pt inset; BORDER-RIGHT: black 1pt inset; PADDING-TOP: 3pt" vAlign=top width=143&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;Toll Number : &lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: black 1pt inset; BORDER-LEFT: black 1pt inset; PADDING-BOTTOM: 3pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3pt; WIDTH: 211.5pt; PADDING-RIGHT: 3pt; BORDER-TOP: black 1pt inset; BORDER-RIGHT: black 1pt inset; PADDING-TOP: 3pt" width=282&gt;
&lt;TABLE style="WIDTH: 86.24%; mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in; mso-table-lspace: 2.25pt; mso-table-rspace: 2.25pt; mso-table-anchor-vertical: paragraph; mso-table-anchor-horizontal: column; mso-table-left: left" class=MsoNormalTable border=0 cellPadding=0 width="86%" align=left class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;BELGIUM&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+32-3-400-2811 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;DENMARK&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+45-7014-0278 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;FRANCE&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+33-1-70-70-62-75 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;GERMANY&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+49-69-2222-7227 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 4"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;HONG KONG&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+852-2286-5645 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 5"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;IRELAND&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+353-1-247-5443 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 6"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;JAPAN&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+81-3-5539-5167 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 7"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;SWITZERLAND&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+41-44-580-6291 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 8; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 45.36%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="45%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;USA&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 52.08%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="52%"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;+1-203-480-8000 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD style="BORDER-BOTTOM: black 1pt inset; BORDER-LEFT: black 1pt inset; PADDING-BOTTOM: 3pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3pt; WIDTH: 107.6pt; PADDING-RIGHT: 3pt; BORDER-TOP: black 1pt inset; BORDER-RIGHT: black 1pt inset; PADDING-TOP: 3pt" vAlign=top width=143&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;Toll Free / Freephone : &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: black 1pt inset; BORDER-LEFT: black 1pt inset; PADDING-BOTTOM: 3pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3pt; WIDTH: 211.5pt; PADDING-RIGHT: 3pt; BORDER-TOP: black 1pt inset; BORDER-RIGHT: black 1pt inset; PADDING-TOP: 3pt" width=282&gt;
&lt;TABLE style="WIDTH: 100%; mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in; mso-table-lspace: 2.25pt; mso-table-rspace: 2.25pt; mso-table-anchor-vertical: paragraph; mso-table-anchor-horizontal: column; mso-table-left: left" class=MsoNormalTable border=0 cellPadding=0 width="100%" align=left class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 40%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="40%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;AUSTRALIA&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;1-800-202-713 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 40%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="40%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;BRAZIL&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;0800-8911983 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 40%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="40%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;NEW ZEALAND&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;0800-448-997 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; WIDTH: 40%; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt" width="40%" noWrap&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;USA&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM-COLOR: #f0f0f0; PADDING-BOTTOM: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 0.75pt; PADDING-RIGHT: 0.75pt; BORDER-RIGHT-COLOR: #f0f0f0; BORDER-LEFT-COLOR: #f0f0f0; PADDING-TOP: 0.75pt"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;866-500-6738 &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM: black 1pt inset; BORDER-LEFT: black 1pt inset; PADDING-BOTTOM: 3pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3pt; WIDTH: 107.6pt; PADDING-RIGHT: 3pt; BORDER-TOP: black 1pt inset; BORDER-RIGHT: black 1pt inset; PADDING-TOP: 3pt" width=143&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;Participant Passcode: &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: black 1pt inset; BORDER-LEFT: black 1pt inset; PADDING-BOTTOM: 3pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3pt; WIDTH: 211.5pt; PADDING-RIGHT: 3pt; BORDER-TOP: black 1pt inset; BORDER-RIGHT: black 1pt inset; PADDING-TOP: 3pt" width=282&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;1957172&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Thank you very much for your participation. We look forward to hearing from you.&lt;/P&gt;
&lt;P&gt;Live Framework Team &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9161973" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Live Framework CTP Updated</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2008/11/21/live-framework-ctp-updated.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2008/11/21/live-framework-ctp-updated.aspx</id><published>2008-11-21T23:09:30Z</published><updated>2008-11-21T23:09:30Z</updated><content type="html">&lt;p&gt;We are pleased to announce that we deployed an update to the Live Framework CTP. This update contains a number of fixes. Please see below for details. &lt;/p&gt;  &lt;p&gt;Thank you to the developer community for trying out the Live Framework CTP and taking time to submit your feedback. Many fixes made in this update were a result of the issues reported by the community via the &lt;a href="https://connect.microsoft.com/liveframework/Feedback?wa=wsignin1.0"&gt;Live Framework Developer Connection&lt;/a&gt; and the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads/"&gt;Live Framework Forum&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Version numbers for this release&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://developer.mesh-ctp.com/"&gt;Live Framework Developer Sandbox&lt;/a&gt;: 0.9.3519.1&lt;/li&gt;    &lt;li&gt;Live Framework Client: 0.9.3519.1 &lt;/li&gt;    &lt;li&gt;Live Framework SDK: 0.9.3519.1 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Installing the Updated Live Framework Client&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;To install the updated Live Framework Client:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Sign-in to the Live Framework CTP &lt;a href="http://developer.mesh-ctp.com/"&gt;Developer Sandbox&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;Navigate to the &lt;a href="https://developer.mesh-ctp.com/Web/Devices.aspx"&gt;Devices&lt;/a&gt; Tab.&lt;/li&gt;    &lt;li&gt;Click &amp;quot;Add Device.&amp;quot; (Note: To update the Live Framework client, &lt;em&gt;you need to re-add any pre-existing devices in your Mesh&lt;/em&gt;.).&lt;/li&gt;    &lt;li&gt;Choose the correct pperating system for your client from drop down and click &amp;quot;Install.&amp;quot;&lt;/li&gt;    &lt;li&gt;Download the LiveFrameworkClient.msi file to your desktop.&lt;/li&gt;    &lt;li&gt;Run LiveFrameworkClient.msi to install the latest client bits.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Updating Mesh-enabled Web Applications from the &lt;/b&gt;&lt;a href="https://developer.mesh-ctp.com/Web/Apps/ApplicationCatalog.aspx"&gt;&lt;b&gt;Application Catalog&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We have improved the application synchronization experience with this update. To ensure you have the latest updates for your Mesh-enable Web applications synchronized to your client devices, you should do the following (note that the four apps in the Application Catalog have all been updated with this latest release):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Close running instances of the applications on both the Live Desktop and all your devices.&lt;/li&gt;    &lt;li&gt;Launch these applications in the Live Desktop. This will initiate the application synchronization to your devices.&lt;/li&gt;    &lt;li&gt;On the device, wait while the application is synchronized, then launch the application.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For installing Mesh-enabled Web Applications for the first time, please refer to &amp;#8220;&lt;a href="http://msdn.microsoft.com/en-us/library/dd137047.aspx"&gt;Installing and Running a Mesh-enabled Web Application&lt;/a&gt;&amp;#8221; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Fixes&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Some of the fixes in this update are listed below.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Live Framework client has number of fixes related to Mesh-enabled Web Application synchronization and performance.&lt;/li&gt;    &lt;li&gt;The Profile resource is now accessible through Mesh-enabled Web Applications.&lt;/li&gt;    &lt;li&gt;Mesh-enabled Web Applications can now access their Offers on the client.&lt;/li&gt;    &lt;li&gt;Mesh-enabled Web Applications can be successfully updated and synced to devices using Live Framework Tools for Visual Studio.&lt;/li&gt;    &lt;li&gt;ScriptUrl is fixed for the RunAtServer method to refer to &lt;a href="http://user-ctp.windows.net/V0.1/Script"&gt;http://user-ctp.windows.net/V0.1/Script&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Thanks for being one of the first to use Live Framework. We would appreciate any feedback you have. You can submit (and view others&amp;#8217;) feedback and bugs &lt;a href="https://connect.microsoft.com/liveframework/feedback?wa=wsignin1.0"&gt;here&lt;/a&gt; on the Microsoft Connect Web site or ask questions from our public &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads/"&gt;forum&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Thank you,   &lt;br /&gt;The Live Framework team &lt;/p&gt;  &lt;hr align="center" size="1" width="100%" noshade="noshade" /&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/liveframework"&gt;Live Framework Team Blog&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9132228" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry><entry><title>Hello from the Live Framework Team</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/liveframework/archive/2008/11/13/hello-from-the-live-framework-team.aspx" /><id>http://blogs.msdn.com/liveframework/archive/2008/11/13/hello-from-the-live-framework-team.aspx</id><published>2008-11-14T02:01:00Z</published><updated>2008-11-14T02:01:00Z</updated><content type="html">&lt;P&gt;We're proud of the recent Live Framework CTP release, and we are excited to share our thoughts, tips, and insights with you.&amp;nbsp; In this initial post to our new team blog, we want to provide you with some key links and info and let you know some of the subjects we’ll be addressing in the near future.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;What is the Live Framework?&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The Live Framework is the uniform way for programming Live Services from a variety of platforms, programming languages, applications and devices.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;How do I find out more about the Live Framework?&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Besides keeping an eye on this blog, you should start with the Live Framework home at &lt;A href="http://dev.live.com/liveframework" mce_href="http://dev.live.com/liveframework"&gt;http://dev.live.com/liveframework&lt;/A&gt; and visit the &lt;A href="http://msdn.microsoft.com/en-us/library/dd136066.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd136066.aspx"&gt;SDK docs on MSDN&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Also, see &lt;A href="http://dev.live.com/blogs/devlive/archive/2008/10/28/423.aspx" mce_href="http://dev.live.com/blogs/devlive/archive/2008/10/28/423.aspx"&gt;this post&lt;/A&gt; from David Treadwell, introducing the Live Framework, &lt;A href="http://channel9.msdn.com/shows/Going+Deep/Dharma-Shukla-Inside-Live-Framework/" mce_href="http://channel9.msdn.com/shows/Going+Deep/Dharma-Shukla-Inside-Live-Framework/"&gt;this Channel 9 video&lt;/A&gt; going deep on how the framework is architected, or &lt;A href="http://dev.live.com/blogs/devlive/archive/2008/10/24/416.aspx" mce_href="http://dev.live.com/blogs/devlive/archive/2008/10/24/416.aspx"&gt;these PDC sessions&lt;/A&gt; drilling into different aspects of new technology.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;How do I join the Community Technical Preview (CTP)?&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Space is currently limited, but we are working on expanding the number of devs in the program. You can request access through our &lt;A href="http://go.microsoft.com/fwlink/?LinkId=130226" mce_href="http://go.microsoft.com/fwlink/?LinkId=130226"&gt;Microsoft Connect&lt;/A&gt; site. As we are in still in early development of the Live Framework, the CTP environment is isolated from the main end-user environment of &lt;A href="http://www.mesh.com/" mce_href="http://www.mesh.com"&gt;www.mesh.com&lt;/A&gt;. Consider this a sandbox for you to test out the technology and provide us feedback in our engineering efforts. &lt;/P&gt;
&lt;P&gt;&lt;B&gt;So, what are you going to do here, on this blog?&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Over the next couple of weeks, members of the Live Framework team will be digging into various aspects of the Live Framework, providing background on the architecture, offering tips, tricks and code, and letting you know how our ongoing engineering efforts are progressing.&lt;/P&gt;
&lt;P&gt;Here is just a sample of some of the topics we’ll be discussing in the coming weeks and months:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Our motivation in developing the Live Framework&lt;/LI&gt;
&lt;LI&gt;Principles guiding our design&lt;/LI&gt;
&lt;LI&gt;Using the addressing model to access resources&lt;/LI&gt;
&lt;LI&gt;Using resource scripts&lt;/LI&gt;
&lt;LI&gt;Querying across Live Framework resources&lt;/LI&gt;
&lt;LI&gt;Building custom types and objects using the extensibility model&lt;/LI&gt;
&lt;LI&gt;Synchronizing data in Live Framework&lt;/LI&gt;
&lt;LI&gt;The Live Framework application model&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Please use the comments to let us know what you think and what you’d like to see discussed here. We’re looking forward to sharing with, and hearing from, you.&lt;/P&gt;
&lt;P&gt;Technical issues or questions? See our &lt;A href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads" mce_href="http://social.msdn.microsoft.com/Forums/en-US/liveframework/threads"&gt;forum&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;The Live Framework Team&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9067800" width="1" height="1"&gt;</content><author><name>kevinle</name><uri>http://blogs.msdn.com/members/kevinle.aspx</uri></author></entry></feed>