<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9 - Entries tagged with Windows</title>
    <atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Tags/windows/RSS"></atom:link>
    <itunes:summary></itunes:summary>
    <itunes:author>Microsoft</itunes:author>
    <itunes:subtitle></itunes:subtitle>
    <image>
      <url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
      <title>Channel 9 - Entries tagged with Windows</title>
      <link>http://channel9.msdn.com/Tags/windows</link>
    </image>
    <itunes:image href=""></itunes:image>
    <itunes:category text="Technology"></itunes:category>
    <description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
    <link>http://channel9.msdn.com/Tags/windows</link>
    <language>en</language>
    <pubDate>Sat, 18 May 2013 15:30:59 GMT</pubDate>
    <lastBuildDate>Sat, 18 May 2013 15:30:59 GMT</lastBuildDate>
    <generator>Rev9</generator>
    <c9:totalResults>216</c9:totalResults>
    <c9:pageCount>9</c9:pageCount>
    <c9:pageSize>25</c9:pageSize>
  <item>
      <title>Edge Show 62 - Hyper-V Server 2012 Cluster Deployment Using Free Tools </title>
      <description><![CDATA[<p>At <a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=06m25s">[06:25]</a> Symon Perriman&nbsp;and Rick Claus talk through an end-to-end deploy of a Hyper-V cluster using entirely free tools (without any evaluation bits—you get to keep everything!). First Symon introduces the free tools, which include Hyper-V Server 2012 (<a href="http://microsoft.com/hvs">http://microsoft.com/hvs</a>), Microsoft iSCSI Software Target 3.3 (<a href="http://aka.ms/iSCSITarget">http://aka.ms/iSCSITarget</a>), Remote Desktop Connection Manager (RDCMan: <a href="http://aka.ms/RDCman">http://aka.ms/RDCman</a>), and Remote Server Administration Tools (RSAT: <a href="http://aka.ms/RSAT">http://aka.ms/RSAT</a>).</p><p>Next, at <a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=11m55s">[11:55]</a> the team walks through an installation of Hyper-V Server 2012 using Windows 8 Client Hyper-V, taking advantage of the lightweight installation package and small storage footprint. Symon then uses RDCMan to manage a new Hyper-V Server 2012 host and discusses some password management features. Then, Rick talks about the GUIless configuration options used to join the Hyper-V Server to the domain, and also discusses different GUI-based remote management options.</p><p>Symon then <a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=16m20s">[16:20]</a> installs the iSCSI Software Target, creates an iSCSI target and virtual disks, and connects both hosts to the target through their iSCSI initiators. Next, the team uses PowerShell to initialize and format the newly created iSCSI disks. The team then <a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=28m25s">[28:25]</a> switches to using RSAT for remote server management of the Hyper-V hosts from a Windows 8 laptop. After connecting to the hosts, they install the Failover Clustering feature and being to build the cluster. After validating the Hyper-V hosts and iSCSI storage, the team ends the demo by creating a Failover Clustering.</p><p><strong>News:</strong></p><ul><li><a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=0m20s">[00:20]</a> Join the System Center&nbsp;2012 Live Q&amp;A event on May 21st: <a href="http://aka.ms/AzureJS">http://aka.ms/Earn-SysCtr</a> (this link will redirect you to the recording approximately one week after the&nbsp;event) </li><li><a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=1m10s">[01:10]</a> Register for TechEd North America (<a href="http://northamerica.msteched.com">http://northamerica.msteched.com</a>)&nbsp;and TechEd Europe (<a href="http://europe.msteched.com">http://europe.msteched.com</a>) before they sell out! </li><li><a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=1m45s">[01:45]</a> 5 new System Center 2012 SP1 virtual labs are now available from TechNet: <a href="http://aka.ms/SCLabs">http://aka.ms/SCLabs</a> </li><li><a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=2m25s">[02:25]</a> Check out the exciting&nbsp;news about the upcoming Windows 8.1 from the Windows blog: <a href="http://blogs.windows.com/windows/b/bloggingwindows/archive/2013/05/14/windows-keeps-getting-better.aspx">http://blogs.windows.com/windows/b/bloggingwindows/archive/2013/05/14/windows-keeps-getting-better.aspx</a> </li><li><a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=3m15s">[03:15]</a> A new System Center 2012&nbsp;Operations Manager (SCOM) Management Pack has been released to monitor&nbsp;Amazon Web Services (AWS): <a href="https://aws.amazon.com/windows/system-center/">https://aws.amazon.com/windows/system-center/</a> &nbsp;&nbsp;&nbsp;&nbsp; </li><li><a href="http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools#time=4m15s">[04:15]</a> Learn more about creating a OEM Appliance OOBE for simplified Failover Clustering deployments: <a href="http://blogs.technet.com/b/filecab/archive/2013/05/08/oem-appliance-oobe-update-set-up-a-4-node-cluster-in-30-minutes.aspx">http://blogs.technet.com/b/filecab/archive/2013/05/08/oem-appliance-oobe-update-set-up-a-4-node-cluster-in-30-minutes.aspx</a> </li></ul><p><strong>Connect with the Edge Team: </strong><a href="https://www.facebook.com/group.php?gid=5850797374">Facebook</a> – <a href="https://twitter.com/tnedge">Twitter</a>&nbsp;- <a href="mailto:edge@microsoft.com">Email</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:5ccc29f4f7564d5baf2fa1bf011794d4">]]></description>
      <comments>http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools</comments>
      <itunes:summary>At [06:25] Symon Perriman&amp;nbsp;and Rick Claus talk through an end-to-end deploy of a Hyper-V cluster using entirely free tools (without any evaluation bits—you get to keep everything!). First Symon introduces the free tools, which include Hyper-V Server 2012 (http://microsoft.com/hvs), Microsoft iSCSI Software Target 3.3 (http://aka.ms/iSCSITarget), Remote Desktop Connection Manager (RDCMan: http://aka.ms/RDCman), and Remote Server Administration Tools (RSAT: http://aka.ms/RSAT). Next, at [11:55] the team walks through an installation of Hyper-V Server 2012 using Windows 8 Client Hyper-V, taking advantage of the lightweight installation package and small storage footprint. Symon then uses RDCMan to manage a new Hyper-V Server 2012 host and discusses some password management features. Then, Rick talks about the GUIless configuration options used to join the Hyper-V Server to the domain, and also discusses different GUI-based remote management options. Symon then [16:20] installs the iSCSI Software Target, creates an iSCSI target and virtual disks, and connects both hosts to the target through their iSCSI initiators. Next, the team uses PowerShell to initialize and format the newly created iSCSI disks. The team then [28:25] switches to using RSAT for remote server management of the Hyper-V hosts from a Windows 8 laptop. After connecting to the hosts, they install the Failover Clustering feature and being to build the cluster. After validating the Hyper-V hosts and iSCSI storage, the team ends the demo by creating a Failover Clustering. News: [00:20] Join the System Center&amp;nbsp;2012 Live Q&amp;amp;A event on May 21st: http://aka.ms/Earn-SysCtr (this link will redirect you to the recording approximately one week after the&amp;nbsp;event) [01:10] Register for TechEd North America (http://northamerica.msteched.com)&amp;nbsp;and TechEd Europe (http://europe.msteched.com) before they sell out! [01:45] 5 new System Center 2012 SP1 virtual labs are now available from TechNet: http://aka.</itunes:summary>
      <itunes:duration>2122</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools</link>
      <pubDate>Fri, 17 May 2013 16:10:41 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF_512.jpg" height="288" width="512"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF_960.jpg" height="540" width="960"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF.mp3" expression="full" duration="2122" fileSize="33955884" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF.mp4" expression="full" duration="2122" fileSize="205743474" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF.webm" expression="full" duration="2122" fileSize="117570397" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF.wma" expression="full" duration="2122" fileSize="17166883" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF.wmv" expression="full" duration="2122" fileSize="116699537" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF_high.mp4" expression="full" duration="2122" fileSize="449156508" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF_mid.mp4" expression="full" duration="2122" fileSize="313798697" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF_Source.wmv" expression="full" duration="2122" fileSize="433949795" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF.ism/manifest" expression="full" duration="2122" fileSize="6406" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/493c/992fe9e4-1c40-4125-8fa6-e08c74ba493c/EdgeShow62HyperVServer2012ClusterDeploymentusingF.wmv" length="116699537" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Symon Perriman</dc:creator>
      <itunes:author>Symon Perriman</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Edge/Edge-Show-62-Hyper-V-Server-2012-Cluster-Deployment-Using-Free-Tools/RSS</wfw:commentRss>
      <category>Amazon</category>
      <category>Cluster</category>
      <category>HyperV</category>
      <category>Hyper-V</category>
      <category>OEM</category>
      <category>PowerShell</category>
      <category>Storage</category>
      <category>System Center Operations Manager</category>
      <category>Tech.Ed</category>
      <category>TechNet</category>
      <category>Windows</category>
      <category>Windows Server</category>
      <category>Remote Desktop</category>
      <category>TechEd Europe</category>
      <category>System Center 2012</category>
      <category>Windows Server 2012</category>
      <category>Failover Clustering</category>
    </item>
  <item>
      <title>MissionControl - A Flexible API for Remote Device Control</title>
      <description><![CDATA[<p>In a race to optimize everything, developers often go to extremes to build software that performs routine tasks. MissionControl is a system that allows users to program a control center that stores interfaces with attached hardware sensors, allowing the users to control any other devices that can be activated via the underlying protocol. For demo purposes, the MissionControl build at this point is compatible with the Phidgets IR hybrid sensor.</p><p>The system has two core components:</p><ul><li>A server application, which is a Win32 console application that handles incoming queries and returns data to the connected clients. This application runs on the desktop machine with the connected sensor. </li><li>The Windows Phone application that sends requests to the target server and can trigger a variety of pre-programmed commands. </li></ul><h1>The Basics</h1><h3>Hardware and Communication Infrastructure</h3><p>One of the most important parts of the project is the signal capture and replication hardware. For the purposes of this project, I decided to use a dual-mode <a href="http://www.phidgets.com/products.php?product_id=1055_0">Phidgets IR sensor</a>. It supports both IR code capture and subsequent replication. From a user’s perspective, this device also eliminates a substantial code-learning overhead as well as the potential error rate. Instead of searching for a device-specific hexadecimal sequence that later has to be transformed in a working IR code, the user simply has to point his remote control at the sensor and press the button that he wants accessible from a mobile device. Given that the capturing software is running on the target machine, once the sensor detects that a code can be repeated within an acceptable precision range, it will be automatically captured and stored, with all required transformations worked out in the backend using the free Phidgets SDK.</p><h3><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image0026.jpg"><img title="clip_image002" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image002_thumb3.jpg" alt="clip_image002" width="368" height="246" border="0"></a></h3><p>Even though I can, I don’t have to handle the binary code content received through the sensor—the Phidgets .NET libraries carry built-in types that contain all the processed metadata that I will discuss later in this article.</p><p>This sensor is connected through a USB port to a machine that acts as a communication gateway. This server should have port 6169 open for inbound connections.</p><p><strong>NOTE:</strong> <em>The port number can be changed, but you have to keep it consistent between your server and client applications.</em></p><p>The communication between the phone and the computer running the client is performed via a TCP channel—<a href="http://en.wikipedia.org/wiki/Internet_socket">sockets</a> are used to perform the initial connections and serialized data transfer. You can see the generalized data flow between the devices that are involved in the procedure in the graphic below:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image0046.jpg"><img title="clip_image004" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image004_thumb3.jpg" alt="clip_image004" width="520" height="289" border="0"></a></p><p>The server (desktop client) handles the local storage and release of all incoming IR codes. The mobile client has to know the location of the server—once specified and confirmed, it can send one of the pre-defined commands to it and either query the server for existing command groups (sets) or invoke one of the stored IR codes. When I pass data between devices, I use JSON for the serializable components. The data is also processed before being sent in order to speed-up the process—for example, on the server side the sets are serialized together with the associated codes. Like this:</p><p><pre class="brush: js">
[
{
    &quot;Name&quot;:&quot;batman&quot;,
    &quot;IsList&quot;:false,
    &quot;Commands&quot;:[
    {
        &quot;Name&quot;:&quot;test command&quot;,
        &quot;Code&quot;:{
            &quot;Mask&quot;:{
                &quot;BitSize&quot;:12,
                &quot;CodeData&quot;:&quot;AAA=&quot;
            },
            &quot;BitSize&quot;:12,
            &quot;Encoding&quot;:2,
            &quot;CarrierFrequency&quot;:38000,
            &quot;DutyCycle&quot;:50,
            &quot;Gap&quot;:44761,
            &quot;Header&quot;:[
            2374,
            606
            ],
            &quot;CodeData&quot;:&quot;DJA=&quot;,
            &quot;MinRepeat&quot;:5,
            &quot;One&quot;:[
            1189,
            606
            ],
            &quot;Repeat&quot;:null,
            &quot;Trail&quot;:0,
            &quot;Zero&quot;:[
            582,
            606
            ]
        }
    },
    {
        &quot;Name&quot;:&quot;turn off&quot;,
        &quot;Code&quot;:{
            &quot;Mask&quot;:{
                &quot;BitSize&quot;:12,
                &quot;CodeData&quot;:&quot;AAA=&quot;
            },
            &quot;BitSize&quot;:12,
            &quot;Encoding&quot;:2,
            &quot;CarrierFrequency&quot;:38000,
            &quot;DutyCycle&quot;:50,
            &quot;Gap&quot;:44770,
            &quot;Header&quot;:[
            2360,
            613
            ],
            &quot;CodeData&quot;:&quot;DJA=&quot;,
            &quot;MinRepeat&quot;:5,
            &quot;One&quot;:[
            1169,
            613
            ],
            &quot;Repeat&quot;:null,
            &quot;Trail&quot;:0,
            &quot;Zero&quot;:[
            585,
            613
            ]
        }
    }
    ]
}
]
</pre></p><p>The inherent problem with the JSON data above is the fact that the phone client does not need the information related to the code binary sequence and all the metadata that goes with it. So it is effectively stripped down and reduced to the names of the sets (when a list of sets is requested) and commands (when a list of commands is requested).</p><h3>The Data Model</h3><p>As you saw from the description above, the server organizes individual infrared codes in sets. A single set is a bundle of codes that may or may not be related to each other—ultimately, this is the user’s decision. A good example of using sets is organizing IR commands by rooms, devices or code types. Each set has a unique name on the server, therefore eliminating the possibility of a request conflict.</p><p>Each set stores individual commands built around the <strong>Command</strong> model:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.API.Models 
{ 
    public class Command 
    { 
        public Command() 
        { 
        } 
    
    public string Name { get; set; }     
    public SerializableIRCode Code { get; set; } 
    } 
}
</pre></p><p>Despite the obvious <strong>Name</strong> property, you can see that I am using a <strong>SerializableIRCode</strong> instance that is specific to each model. Before going any further, I need to mention that the Phidgets SDK offers the <strong>IRLearnedCode</strong> model to store code contents. I could have used it instead, but there is an issue that prevents me from doing that—there is no public constructor defined for <strong>IRLearnedCode</strong>, therefore there is no way to serialize it, either with the built-in .NET serialization capabilities or JSON.NET, which I am using in the context of the project.</p><p>Instead, I have this:</p><p><pre class="brush: csharp">
using Phidgets; 
namespace Coding4Fun.MissionControl.API.Models 
{     
    public class SerializableIRCode     
    {         
        public SerializableIRCode()         
        { 
            
        } 
        
    IRLearnedCode code;         
    public ToggleMask Mask { get; set; } 
    public int BitSize { get; set; } 
    public Phidgets.IRCodeInfo.IREncoding Encoding { get; set; } 
    public int CarrierFrequency { get; set; } 
    public int DutyCycle { get; set; } 
    public int Gap { get; set; } 
    public int[] Header { get; set; } 
    public byte[] CodeData { get; set; } 
    public int MinRepeat { get; set; } 
    public int[] One { get; set; } 
    public int[] Repeat { get; set; } 
    public int Trail { get; set; } 
    public int[] Zero { get; set; } 
    }     
}
</pre></p><p>It is an almost identical 1:1 copy of the original class, storing both the layout of the IR code and additional information related to its replication mechanism. You can learn more about each property listed in the model above by reading the <a href="http://www.phidgets.com/docs/IR_Remote_Control_Primer">official document on the topic</a>.</p><p><strong>ToggleMask</strong>, the identity bit carrier that helps marking the code as repeated or not, is also implemented through a built-in Phidgets SDK model, and it has the same problem as <strong>IRLearnedCode</strong>. I implemented this model to replace it in the serializable code:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.API.Models 
{ 
    public class ToggleMask 
    { 
        public ToggleMask() 
        { 
            
        } 

    public int BitSize { get; set; }         
    public byte[] CodeData { get; set; } 
    } 
}
</pre></p><p>I also needed an easy way to store all sets at once and carry all associated codes in a single instance retrieved from the storage. Here is the <strong>Set</strong> class:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.API.Models 
{     
    public class Set 
    { 
        public Set() 
        { 
            Commands = new List&lt;Command&gt;(); 
        } 
        
    public string Name { get; set; } 
    public bool IsList { get; set; } 
    public List&lt;Command&gt; Commands { get; set; } 
    } 
}
</pre></p><p>Notice that there is an <strong>IsList</strong> flag that allows me to specify how to display this specific list on the connecting device. This adds some level of flexibility for situations where the user wants to build a virtual remote for closely-related keys, such as digits. With that in mind, displaying those as a list might be inconvenient, wasting visual space on the client. But if the flag is set to false, the list can be displayed as a pad.</p><p>Also, when the server performs the data exchange, it provides a single “envelope” that allows the connecting device to easily understand what the server is trying to do:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.API.Models 
{     
    public class ServerResponse     
    {     
    public string Identifier { get; set; }     
    public string Marker { get; set; }     
    public string Content { get; set; }     
    } 
}
</pre></p><p>The <strong>Identifier</strong> property carries the server IP address. That way, when a device receives a response, it is able to either accept it, because it knows that a response is requested from a target location, or discard it because the user is no longer using the specific server.</p><p><strong>Marker</strong> carries the command type of the sent command, therefore giving the Windows Phone application a hint as to what to do with the data. The server can send the following commands:</p><ul><li><em>SET_LIST</em> – returns the list of sets that are currently available on the server. </li><li><em>SET_COMMANDS<strong>:</strong>SET_NAME<strong>:</strong>IS_LIST</em> – returns the list of commands that are associated with a given set that is currently stored on the server. </li><li><em>NOTIFICATION</em> – send a simple notification to the client; no further action is required. </li></ul><p>Last but not least, <strong>Content</strong> is used to push the necessary data that is associated with the given <strong>Marker</strong>. It can be either a JSON-based string that lists the sets or commands, or a plain-text message that is used as an alert for the end-user.</p><h1>Server Architecture</h1><p>The server is the only component of this entire system that does all the heavy lifting. It learns commands, stores them and then generates new IR signal requests, as controlled from any of the connected clients. Let’s take a closer look at what happens behind the scenes—to start, I am going to document the network infrastructure.</p><h3>The Network Layer</h3><p>In order to be a reliable system, the server needs to be always ready to accept an incoming connection. For that purpose, it is possible to use the <a href="http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx">TcpListener</a> class—an “always on” receiver that can handle incoming TCP connections. I integrated it in my <strong>CoreStarter</strong> class that is used to start the listener when the application is launched:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.API 
{ 
    public class CoreStarter 
    { 
        static TcpListener listener; 
        
        public static void LaunchSocket()     
        {     
            Console.WriteLine(&quot;Starting socket server on port {0}...&quot;, Constants.DEFAULT_PORT); 
            listener = new TcpListener(NetworkHelper.GetLocalIPAddress(), Constants.DEFAULT_PORT); 
            listener.Start(); 
            
            for (int i = 0; i &lt; Constants.MAX_CONCURRENT_CLIENTS; i&#43;&#43;) 
            {     
                Thread socketThread = new Thread(new ThreadStart(ListenForData));     
                socketThread.Start(); 
            } 
        } 
        
        private static void ListenForData() 
        { 
            Console.WriteLine(&quot;Listener thread started.&quot;); 

            while (true) 
            { 
                Socket acceptedSocket = listener.AcceptSocket(); 
                using (MemoryStream coreStream = new MemoryStream()) 
                {     
                    try 
                    { 
                        Console.WriteLine(&quot;Incoming connection: {0}&quot;, acceptedSocket.RemoteEndPoint); 
                        
                        using (Stream sourceStream = new NetworkStream(acceptedSocket)) 
                        {     
                            sourceStream.ReadTimeout = Constants.SOCKET_READ_TIMEOUT; 
                            
                            byte[] buffer = new byte[Constants.DEFAULT_BUFFER_SIZE]; 
                            int i; 
                
                            while ((i = sourceStream.Read(buffer, 0, buffer.Length)) != 0) 
                            { 
                                coreStream.Write(buffer, 0, i); 
                            } 
                        } 
                    } 
                    catch 
                    { 
                        string data = Encoding.ASCII.GetString(coreStream.ToArray()); 
        
                        CommandHelper.InterpretCommand(data, acceptedSocket.RemoteEndPoint.ToString()); 
                    } 
                } 
            } 
        } 
    } 
}
</pre></p><p>When <strong>LaunchSocket</strong> is called, the listener is activated on the current machine. As I mentioned above, the port number can be arbitrarily assigned, but has to be consistent between connecting apps in order for the TCP links to be established. Because I expect that more than one device will be connecting to the service at a time, the listener is set as active across a constant number of threads.</p><p><strong>NOTE:</strong> By default, a there is a maximum limit of 5 simultaneous clients. Although this number can be adjusted, be aware of the requirements of each environment in which a limited number of potential devices can connect. Even though the performance footprint of each thread is minimal, it can have a negative effect if used in unnecessarily large instances.</p><p><strong>ListenForData</strong> is used to read the incoming stream. When an inbound connection is accepted, the data is read with the help of a fixed content buffer. Then a read timeout is specified to prevent situations where the stream was completely read but the application still waits to pull non-existent data. Once the timeout milestone is hit, an exception is thrown, which marks the end of the stream—at this point, the plain text data that was received (remember that both the server and client exchange text data only) is passed to the command interpreter—<strong>CommandHelper</strong>, with a reference to the source of the command.</p><p>The commands from the device are passed as serialized key-value pairs (<a href="http://msdn.microsoft.com/en-us/library/5tbh8a42.aspx">KeyValuePair&lt;T, T&gt;</a>), the key being the command with any possible suffixes, and the value being the contents of the command itself that helps the server identify the specific item in the local storage.</p><p><strong>InterpretCommand</strong>,in this case, does three things sequentially:</p><ol><li>Deserialize the incoming string and create a <strong>KeyValuePair&lt;string,string&gt;</strong> instance. </li><li>Process the command and check whether it is recognizable. </li><li>Send a response to the client, if deemed necessary by the command type. </li></ol><p>The serialization and deserialization is done via <a href="http://james.newtonking.com/projects/json-net.aspx">JSON.NET</a>. You can install this package in your console managed Win32 project and the Windows Phone application project via NuGet:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image0056.gif"><img title="clip_image005" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image005_thumb3.gif" alt="clip_image005" width="553" height="65" border="0"></a></p><p>The deserialization step is as simple as one line of C# code:</p><p><pre class="brush: csharp">
KeyValuePair&lt;string, string&gt; result = JsonConvert.DeserializeObject&lt;KeyValuePair&lt;string, string&gt;&gt;(rawCommand.Remove(0, rawCommand.IndexOf('{')));
</pre></p><p>The string is sanitized to ensure that only JSON content is being passed to the serializer.</p><p>Because of a relatively limited command set, I can put together the entire interpretation stack like this:</p><p><pre class="brush: csharp">
// Get the initial list of sets on the target server
if (result.Key == Constants.COMMAND_INIT)
{
    SendSets(sourceLocation);
}
// Create a new set on the target server
else if (result.Key.Contains(Constants.COMMAND_CREATE_SET))
{
    CreateSet(result, sourceLocation);
    SendSets(sourceLocation);
}
// Get the commands that are associated with a given set.
else if (result.Key == Constants.COMMAND_GET_COMMANDS)
{
    SendCommands(result.Value, sourceLocation);
}
// The client requested the server to learn a new command.
else if (result.Key.Contains(Constants.COMMAND_LEARN_COMMAND))
{
    LearnCommand(result, sourceLocation);
}
// The client requested one of the commands to be executed on the 
// target server.
else if (result.Key.Contains(Constants.COMMAND_EXECUTE))
{
    ExecuteCommand(result);
}
// The client has requested a set to be deleted from the target server.
else if (result.Key == Constants.COMMAND_DELETE_SET)
{
    DeleteSet(result.Value);
    SendSets(sourceLocation);
}
// The client has requested a set to be deleted from the target server.
else if (result.Key.Contains(Constants.COMMAND_DELETE_COMMAND))
{
    DeleteCommand(result);
    SendCommands(result.Key.Split(new char[] { ':' })[1], sourceLocation);
}
</pre></p><p>All commands are constants, declared in the local helper class:</p><p><pre class="brush: csharp">
public const string COMMAND_INIT = &quot;INIT&quot;; 

public const string COMMAND_CREATE_SET = &quot;CREATE_SET&quot;; 

public const string COMMAND_GET_COMMANDS = &quot;GET_COMMANDS&quot;; 

public const string COMMAND_LEARN_COMMAND = &quot;LEARN_COMMAND&quot;; 

public const string COMMAND_EXECUTE = &quot;EXECUTE&quot;; 

public const string COMMAND_DELETE_SET = &quot;DELETE_SET&quot;;
public const string COMMAND_DELETE_COMMAND = &quot;DELETE_COMMAND&quot;;
</pre></p><p>Notice that these are not the commands that the server sends back, but rather the commands it receives from connecting Windows Phone devices.</p><p>Let’s now take a look at the breakdown for each command.</p><p><strong>SendSets:</strong></p><p><pre class="brush: csharp">
/// &lt;summary&gt; 
/// Send the list of sets to the client that requested those. 
/// &lt;/summary&gt; 
/// &lt;param name=&quot;sourceLocation&quot;&gt;The location of the requesting client.&lt;/param&gt; 
private static void SendSets(string sourceLocation) 
{ 
    Console.WriteLine(&quot;Received an initial set query from {0}&quot;, sourceLocation);     
    ServerResponse response = new ServerResponse(); 
    response.Marker = &quot;SET_LIST&quot;; 
    response.Content = JsonConvert.SerializeObject(StorageHelper.GetRawSetNames()); 
    response.Identifier = NetworkHelper.GetLocalIPAddress().ToString(); 
    NetworkHelper.SendData(sourceLocation, JsonConvert.SerializeObject(response)); 
    Console.WriteLine(&quot;Sent the set list to {0}&quot;, sourceLocation);     
}
</pre></p><p>When this command is received, the server does not have to do much processing. It is only invoked when the client establishes the initiating link and needs to know what possible sets it can get from the target machine. The request is logged in the console and a server response is prepared that contains a serialized list of set names, which is later serialized as well and sent back to the source machine location.</p><p><strong>StorageHelper</strong> and <strong>NetworkHelper</strong> will be documented later in this article.</p><p><strong>CreateSet:</strong></p><p><pre class="brush: csharp">
/// &lt;summary&gt; 
/// Create a new set and store it on the local server. 
/// &lt;/summary&gt; 
/// &lt;param name=&quot;result&quot;&gt;The original deserialized command.&lt;/param&gt; 
/// &lt;param name=&quot;sourceLocation&quot;&gt;The location of the requesting client.&lt;/param&gt; 
private static void CreateSet(KeyValuePair&lt;string,string&gt; result, string sourceLocation) 
{ 
    bool isSuccessful = false; 
    string[] data = result.Key.Split(new char[] { ':' }); 
    
    Console.WriteLine(&quot;There is an attempt to create the {0} set from {1}.&quot;, result.Value, sourceLocation); 
    
    if (data[1].ToLower() == &quot;list&quot;) 
        isSuccessful = StorageHelper.AddSet(result.Value); 
    else 
        isSuccessful = StorageHelper.AddSet(result.Value, false); 
    
    if (isSuccessful) 
        Console.WriteLine(&quot;The {0} set was successfully created.&quot;, result.Value); 
    else 
        Console.WriteLine(&quot;Something happened and the {0} set was not created.&quot;, result.Value);     
}
</pre></p><p>When a mobile device attempts to create a new set on the server, it sends a command in the following format:</p><p><strong>CREATE_SET</strong>:<strong>list/pad</strong>, <strong>SET_NAME</strong></p><p>CreateSet will get the type of the set that was created, will check whether a set with the same name already exists and will either create it or ignore the command altogether. No notification is sent to the connecting device, but either the failure or the success of the command is registered in the local console.</p><p><strong>SendCommands:</strong></p><p><pre class="brush: csharp">
/// &lt;summary&gt;
/// Send a list of commands that are associated with the pushed set.
/// &lt;/summary&gt;
/// &lt;param name=&quot;setName&quot;&gt;The original deserialized command.&lt;/param&gt;
/// &lt;param name=&quot;sourceLocation&quot;&gt;The location of the requesting client.&lt;/param&gt;
private static void SendCommands(string setName, string sourceLocation)
{
    Console.WriteLine(&quot;There was a request to get the commands for the {0} set from {1}.&quot;, setName, sourceLocation);
    
    bool isList = StorageHelper.IsSetAList(setName);
    
    ServerResponse response = new ServerResponse();
    response.Marker = string.Format(&quot;SET_COMMANDS:{0}:{1}&quot;, setName, isList);
    response.Identifier = NetworkHelper.GetLocalIPAddress().ToString();
    response.Content = JsonConvert.SerializeObject(StorageHelper.GetRawCommandNames(setName));
    
    NetworkHelper.SendData(sourceLocation, JsonConvert.SerializeObject(response));
    
    Console.WriteLine(&quot;Command list for the {0} set were sent to {1}.&quot;, setName, sourceLocation);
}
</pre></p><p>Commands are sent in the same manner as sets—once the set is recognized, the names of the associated commands are retrieved and serialized inside a <strong>ServerResponse</strong> instance and then pushed back to the requesting device.</p><p><strong>LearnCommand:</strong></p><p><pre class="brush: csharp">
/// &lt;summary&gt; 
/// Learn a new command and store it on the target server. 
/// &lt;/summary&gt; 
/// &lt;param name=&quot;result&quot;&gt;The original deserialized command.&lt;/param&gt; 
/// &lt;param name=&quot;sourceLocation&quot;&gt;The location of the requesting client.&lt;/param&gt; 
private static void LearnCommand(KeyValuePair&lt;string,string&gt; result, string sourceLocation) 
{     
    Console.WriteLine(&quot;[!] Server in COMMAND LEARNING MODE! Point the remote towards the sensor and send a command.&quot;); 
    
    string[] data = result.Key.Split(new char[] { ':' });     
    var set = StorageHelper.GetSingleSet(StorageHelper.GetSets(), data[1]); 
    
    if (set != null)     
    {     
        if ((from c in set.Commands where c.Name == result.Value select c).FirstOrDefault() != null) 
        {     
            Console.WriteLine(&quot;Cannot learn command {0} for the following set: {1}. Command already exists.&quot;, data[1], result.Value); 
            
            ServerResponse response = new ServerResponse();     
            response.Marker = &quot;NOTIFICATION&quot;;     
            response.Identifier = NetworkHelper.GetLocalIPAddress().ToString(); 
            response.Content = &quot;We could not save the following command - &quot; &#43; result.Value &#43; &quot;. It already exists in the set.&quot;; 
            
            NetworkHelper.SendData(sourceLocation, JsonConvert.SerializeObject(response));     
        } 
        else 
        { 
            if (sensor == null) 
                sensor = new IR(); 
            
            sensor.open(-1); 

            sensor.waitForAttachment(); 
    
            sensor.Learn &#43;= (sender, args) =&gt; 
            { 
                Console.WriteLine(&quot;[!] Server learned the command and is no longer in COMMAND LEARNING MODE.&quot;); 
                IRLearnedCode code = args.LearnedCode; 
                code.CodeInfo.MinRepeat = 5; 
            
                Command command = new Command(); 
                command.Name = result.Value; 
                command.Code = IRCodeWorker.GetSerializableIRCode(code); 
                
                StorageHelper.AddCommand(command, set.Name); 
                
                ServerResponse response = new ServerResponse(); 
                response.Marker = &quot;NOTIFICATION&quot;; 
                response.Identifier = NetworkHelper.GetLocalIPAddress().ToString(); 
                response.Content = &quot;The following command has been stored: &quot; &#43; result.Value; 
                
                NetworkHelper.SendData(sourceLocation, JsonConvert.SerializeObject(response)); 
            }; 
        } 
    } 
}
</pre></p><p>Once a request was received that the server needs to learn a new command, an initial verification is done to make sure that the requested command name and set are not already taken. If neither the command nor the set exist, both will be created.</p><p>After the basic setup is complete, the IR sensor is activated and will be waiting for the command to be learned. The way it works is quite simple – the sensor will remain in learning mode until the point where it recognizes a command without error, being 100% sure that it can be reproduced internally. You will need to point your remote towards the sensor and hold the button you want captured for one or two seconds in order for the command to be learned.</p><p><strong>NOTE:</strong> To ensure that a proper transmission is done, I manually set the minimal repeat value to 5. This is the number of times the sensor will fire the same code towards the target. That is the optimal value for a target device to receive the code if the remote is pointed directly at it without necessarily triggering the same command twice or more.</p><p>After the command is learned, the code is processed and transformed into a serializable instance. The connecting client is then notified about whether the command was learned.</p><p><strong>ExecuteCommand:</strong></p><p><pre class="brush: csharp">
/// &lt;summary&gt; 
/// Execute one of the commands currently stored on the local server. 
/// &lt;/summary&gt; 
/// &lt;param name=&quot;result&quot;&gt;The original deserialized command.&lt;/param&gt; 
private static void ExecuteCommand(KeyValuePair&lt;string,string&gt; result) 
{ 
    string[] data = result.Key.Split(new char[] { ':' }); 

    var set = StorageHelper.GetSingleSet(StorageHelper.GetSets(), data[1]); 
    
    if (set != null) 
    {     
        var command = StorageHelper.GetSingleCommand(StorageHelper.GetCommands(set.Name), result.Value); 

        IRLearnedCode code = IRCodeWorker.GetLearnedCode(command.Code); 
        
        if (sensor == null) 
            sensor = new IR(); 

        sensor.open(-1); 
        sensor.waitForAttachment(); 
        sensor.transmit(code.Code, code.CodeInfo); 
        sensor.close(); 
    } 
}
</pre></p><p>Command execution relies on the hardware sensor. The phone sends a command execution request in the following format:</p><p><strong>EXECUTE</strong>:<strong>SET_NAME</strong>, <strong>COMMAND_NAME</strong></p><p>Once the command is parsed out and found in the local storage, the IR code is transformed back to a model that is recognizable by the Phidgets SDK and transmitted towards the location where the sensor is pointed at the time of the execution.</p><p><strong>DeleteSet:</strong></p><p><pre class="brush: csharp">
/// &lt;summary&gt; 
/// Delete a single set and all the associated commands 
/// &lt;/summary&gt; 
/// &lt;param name=&quot;target&quot;&gt;The name of the set.&lt;/param&gt; 
private static void DeleteSet(string target) 
{ 
    var sets = StorageHelper.GetSets(); 
    var targetSet = StorageHelper.GetSingleSet(sets, target); 
    
    if (targetSet != null) 
    { 
        StorageHelper.RemoveSet(sets, targetSet); 
    } 
}
</pre></p><p>When deleting a set, only the name of the set should be specified. The user will get a warning on the client side that requires a confirmation of the deletion. The server will blindly execute the command.</p><p><strong>DeleteCommand:</strong></p><p><pre class="brush: csharp">
private static void DeleteCommand(KeyValuePair&lt;string, string&gt; result)
{
    var sets = StorageHelper.GetSets();
    string setName = result.Key.Split(new char[] {':'})[1];
    var targetSet = StorageHelper.GetSingleSet(sets, setName);
    var command = (from c in targetSet.Commands where c.Name == result.Value select c).FirstOrDefault();
    
    if (command != null)
    {
        targetSet.Commands.Remove(command);
        StorageHelper.SerializeSets(sets);
    }
}
</pre></p><p>Not only can the user remove entire sets, but he can also target specific commands from a given set. Once a <strong>DELETE_COMMAND</strong> directive is recognized, the set name is parsed out from the original string, that follows the <strong>DELETE_COMMAND:SET_NAME, COMMAND_NAME</strong> format, and a simple LINQ query extracts the command instance, removes it and stores the set content on the local hard drive.</p><p>Notice that for some commands, particularly for set creation, deletion and command deletion, the server will return a list of the remaining items. The contents will be automatically updated on the devices, which will be waiting for that response. This measure was deliberately introduced to minimize the chances of a user triggering a command that was already deleted or trying to query a previously removed set.</p><h3>Transforming Codes</h3><p>You might have noticed that I am using <strong>IRCodeWorker.GetSerializableCodeType</strong> to transform a Phidgets SDK native IR code model into a serializable one. This is a helper function that performs a field copy of the existing object. Because of the differences in the model structure, it has to be done manually:</p><p><pre class="brush: csharp">
public static SerializableIRCode GetSerializableIRCode(IRLearnedCode code) 
{ 
    SerializableIRCode sCode = new SerializableIRCode();     
    sCode.BitSize = code.Code.BitCount;     
    sCode.Encoding = code.CodeInfo.Encoding;     
    sCode.CarrierFrequency = code.CodeInfo.CarrierFrequency;     
    sCode.CodeData = code.Code.Data;     
    sCode.DutyCycle = code.CodeInfo.DutyCycle;     
    sCode.Gap = code.CodeInfo.Gap;     
    sCode.Header = code.CodeInfo.Header;     
    sCode.MinRepeat = 5;     
    sCode.One = code.CodeInfo.One;     
    sCode.Repeat = code.CodeInfo.Repeat;     
    sCode.Trail = code.CodeInfo.Trail;     
    sCode.Zero = code.CodeInfo.Zero;     
    sCode.Mask = new ToggleMask()     
    {         
        BitSize = code.CodeInfo.ToggleMask.BitCount,         
        CodeData = code.CodeInfo.ToggleMask.Data         
    }; 
    
    return sCode;     
}
</pre></p><p>The reverse process is easier because I can pass each of the existing properties to the <strong>IRCodeInfo</strong> constructor. The only difference is the fact that I need to use Reflection to create an instance of <strong>IRLearnedCode</strong> because there is no public constructor defined and a dynamic object has to be created:</p><p><pre class="brush: csharp">
internal static IRLearnedCode GetLearnedCode(SerializableIRCode serializableIRCode) 
{ 
    IRCode code = new IRCode(serializableIRCode.CodeData, serializableIRCode.BitSize);     
    IRCodeInfo info = new IRCodeInfo(serializableIRCode.Encoding, serializableIRCode.BitSize, serializableIRCode.Header,     
    serializableIRCode.Zero, serializableIRCode.One, serializableIRCode.Trail, serializableIRCode.Gap, serializableIRCode.Repeat, 
serializableIRCode.MinRepeat, serializableIRCode.Mask.CodeData, IRCodeInfo.IRCodeLength.Constant,
serializableIRCode.CarrierFrequency, serializableIRCode.DutyCycle); 
    
    object[] parameters = new object[] { code, info }; 
    
    BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance; 
    object instantType = Activator.CreateInstance(typeof(IRLearnedCode), flags, null, parameters, null); 

    return (IRLearnedCode)instantType; 
}
</pre></p><h3>Command and Set Management</h3><p>Looking back at the code that I put together for the command interpreter, there is one class that does all local content manipulation—<strong>StorageHelper</strong>. This is a simple class that performs LINQ queries on set as well as command collections, and makes sure that all the changes are preserved in the <strong>sets.xml</strong> file in the application folder that is used as the only storage place for all the content that is being manipulated by the server.</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.API.Helpers 
{ 
    public class StorageHelper 
    { 
        
        /// &lt;summary&gt; 
        /// Lists all available sets that are currently stored on the server.         
        /// &lt;/summary&gt; 
        /// &lt;returns&gt;List of sets on the machine.&lt;/returns&gt;         
        internal static List&lt;Set&gt; GetSets()         
        {             
            List&lt;Set&gt; sets = null; 
            
            string rawContent = GetRawSets();             
            sets = JsonConvert.DeserializeObject&lt;List&lt;Set&gt;&gt;(rawContent); 
            
            return sets;             
        } 
        
        /// &lt;summary&gt;         
        /// Returns the list of commands that are associated with the given set.         
        /// &lt;/summary&gt;         
        /// &lt;param name=&quot;setName&quot;&gt;The name of the target set.&lt;/param&gt;         
        /// &lt;returns&gt;List of commands associated with the given set.&lt;/returns&gt;         
        internal static List&lt;Command&gt; GetCommands(string setName)         
        {             
            List&lt;Command&gt; commandList = null; 
            
            var sets = GetSets(); 
            
            Set singleSet = null;             
            if (sets != null)             
                singleSet = (from c in sets where c.Name == setName select c).FirstOrDefault(); 
            
            if (singleSet != null)         
            {         
                commandList = singleSet.Commands;     
            } 
            
            return commandList; 
        } 
        
        /// &lt;summary&gt;     
        /// Gets the list of names for the commands in the requested set. 
        /// &lt;/summary&gt; 
        /// &lt;param name=&quot;setName&quot;&gt;The name of the target set.&lt;/param&gt; 
        /// &lt;returns&gt;List of commands associated with the given set.&lt;/returns&gt; 
        internal static List&lt;string&gt; GetRawCommandNames(string setName) 
        { 
            List&lt;Command&gt; commandList = GetCommands(setName); 
            
            List&lt;string&gt; stringSet = null; 
            
            if (commandList != null) 
            {     
                stringSet = commandList.Select(x =&gt; x.Name).ToList();     
            } 
            
            return stringSet;     
        } 
        
        /// &lt;summary&gt; 
        /// Get the list of names for all sets on the local server. 
        /// &lt;/summary&gt; 
        /// &lt;returns&gt;List of sets on the machine.&lt;/returns&gt; 
        internal static List&lt;string&gt; GetRawSetNames() 
        {     
            List&lt;Set&gt; sets = GetSets(); 
            
            List&lt;string&gt; stringSet = null; 
    
            if (sets != null) 
            {     
                stringSet = sets.Select(x =&gt; x.Name).ToList();     
            } 
            
            return stringSet; 
        } 
        
        /// &lt;summary&gt; 
        /// Get the raw string contents of sets.xml. Should only be used in the 
        /// context of this class. 
        /// &lt;/summary&gt; 
        /// &lt;returns&gt;JSON string representing stored sets and commands.&lt;/returns&gt; 
        internal static string GetRawSets() 
        { 
            string sets = string.Empty; 
            
            if (File.Exists(&quot;sets&quot;)) 
            { 
                using (StreamReader reader = new StreamReader(File.OpenRead(&quot;sets&quot;))) 
                { 
                    sets = reader.ReadToEnd(); 
                } 
            } 
            else 
            { 
                FileStream stream = File.Create(&quot;sets.xml&quot;); 
                
                stream.Close();     
            } 
            
            return sets; 
        } 
        
        /// &lt;summary&gt; 
        /// Check whether a set is marked with a IsList flag. 
        /// &lt;/summary&gt; 
        /// &lt;param name=&quot;setName&quot;&gt;The name of the target set.&lt;/param&gt; 
        /// &lt;returns&gt;TRUE - set is a list. FALSE - set is not a list.&lt;/returns&gt; 
        internal static bool IsSetAList(string setName) 
        { 
            bool isList = true; 
            var sets = GetSets(); 
            Set set = null; 

            if (sets != null) 
                set = (from c in sets where c.Name == setName select c).FirstOrDefault(); 
            
            if (set != null) 
                isList = set.IsList; 
            
            return isList;     
        } 
        
        /// &lt;summary&gt; 
        /// Serialize the set collection to sets.xml 
        /// &lt;/summary&gt; 
        /// &lt;param name=&quot;sets&quot;&gt;Collection to be serialized.&lt;/param&gt; 
        /// &lt;returns&gt;true if sets are serialized.&lt;/returns&gt; 
        private static bool SerializeSets(List&lt;Set&gt; sets) 
        { 
            try 
            { 
                using (StreamWriter writer = new StreamWriter(&quot;sets.xml&quot;, false)) 
                {     
                    string data = JsonConvert.SerializeObject(sets); 
            
                    writer.Write(data); 
                } 
                
                return true; 
            } 
            catch 
            {     
                return false;     
            } 
        } 
        
        /// &lt;summary&gt; 
        /// Add a new set to the existing global set collection. 
        /// &lt;/summary&gt; 
        /// &lt;param name=&quot;name&quot;&gt;Set name.&lt;/param&gt; 
        /// &lt;returns&gt;true if successfully added set.&lt;/returns&gt; 
        internal static bool AddSet(string name, bool isList = true) 
        { 
            var sets = GetSets(); 

            if (sets == null) 
                sets = new List&lt;Set&gt;(); 
            
            var singleSet = GetSingleSet(sets, name); 

            if (singleSet == null) 
                sets.Add(new Set { Name = name, IsList = isList }); 
            
            if (SerializeSets(sets)) 
                return true; 
            else 
                return false; 
        } 
        
        /// &lt;summary&gt; 
        /// Retrieves a single set from a collection that has a specific name. 
        /// &lt;/summary&gt; 
        /// &lt;param name=&quot;sets&quot;&gt;The source collection from which to extract the set.&lt;/param&gt; 
        /// &lt;param name=&quot;name&quot;&gt;The name of the set to get.&lt;/param&gt; 
        /// &lt;returns&gt;An instance of the found set, if any.&lt;/returns&gt; 
        internal static Set GetSingleSet(List&lt;Set&gt; sets, string name) 
        { 
            if (sets != null) 
                return (from c in sets where c.Name == name select c).FirstOrDefault(); 
            else 
                return null; 
        } 
        
        /// &lt;summary&gt; 
        /// Add a IR command to an existing set. If the set is not found, it will be created. 
        /// &lt;/summary&gt; 
        /// &lt;param name=&quot;command&quot;&gt;The command instance to be added.&lt;/param&gt; 
        /// &lt;param name=&quot;targetSet&quot;&gt;The name of the target set.&lt;/param&gt; 
        /// &lt;returns&gt;true if the command was successfully added.&lt;/returns&gt; 
        internal static bool AddCommand(Command command, string targetSet) 
        { 
            var sets = GetSets(); 
            
            if (sets == null) 
                sets = new List&lt;Set&gt;(); 
            
            var singleSet = GetSingleSet(sets, targetSet); 
            
            if (singleSet == null) 
                singleSet = new Set { Name = targetSet }; 
            
            var singleCommand = (from c in singleSet.Commands where c.Name == command.Name select c).FirstOrDefault(); 
            
            if (singleCommand == null) 
            { 
                singleSet.Commands.Add(command); 
                
                if (SerializeSets(sets)) 
                    return true; 
                else 
                    return false; 
            } 
            else 
                return false; 
        } 
        
        /// &lt;summary&gt; 
        /// Retrieve a single command instance from one of the sets on the local server. 
        /// &lt;/summary&gt; 
        /// &lt;param name=&quot;commands&quot;&gt;Original list of commands.&lt;/param&gt; 
        /// &lt;param name=&quot;name&quot;&gt;Name of the command to be retrieved.&lt;/param&gt; 
        /// &lt;returns&gt;An instance of the command, if found. NULL if not.&lt;/returns&gt; 
        internal static Command GetSingleCommand(List&lt;Command&gt; commands, string name) 
        { 
            if (commands != null) 
                return (from c in commands where c.Name == name select c).FirstOrDefault(); 
            else 
                return null; 
        } 
        
        /// &lt;summary&gt; 
        /// Remove a set from a local machine. 
        /// &lt;/summary&gt; 
        /// &lt;param name=&quot;sets&quot;&gt;Original list of sets.&lt;/param&gt; 
        /// &lt;param name=&quot;targetSet&quot;&gt;Name of the set to remove.&lt;/param&gt; 
        internal static void RemoveSet(List&lt;Set&gt; sets, Set targetSet) 
        { 
            sets.Remove(targetSet); 
            
            SerializeSets(sets); 
        } 
    } 
}
</pre></p><h2>Sending Data Back to the Client</h2><p><strong>SendData</strong> in the <strong>NetworkHelper</strong> class handles all outbound connections. Here is its structure:</p><p><pre class="brush: csharp">
/// &lt;summary&gt; 
/// Send data to the target network machine. 
/// &lt;/summary&gt; 
/// &lt;param name=&quot;destination&quot;&gt;The target machine IP.&lt;/param&gt; 
/// &lt;param name=&quot;data&quot;&gt;Data to be sent, in string format.&lt;/param&gt; 
/// &lt;param name=&quot;sanitizeIp&quot;&gt;Determines whether to remove the port from the given IP string.&lt;/param&gt; 
public static void SendData(string destination, string data, bool sanitizeIp = true) 
{ 
    using (Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) 
    {     
        string completeIp = string.Empty; 
        
        if (sanitizeIp)     
            completeIp = destination.Remove(destination.IndexOf(&quot;:&quot;), destination.Length - destination.IndexOf(&quot;:&quot;)); 
        
        client.Connect(completeIp, 6169); 
        client.Send(Encoding.UTF8.GetBytes(data));     
    }     
}
</pre></p><p>A new stream socket is created in order to connect to the target machine over the TCP pipe. If IP sanitization is enabled, the port is stripped from the address in order to pass a valid IP. A <strong>Socket</strong> instance cannot directly handle IPs of the format:</p><p><strong><em>255.255.255.0:PORT_NUMBER</em></strong></p><p>Later, in a synchronous manner, a connection is established and the data is sent.</p><p>At this point, you can see that the barebones service offers a flexible way to manage content. It can be accessed by any application type as long as the server can be accessed and the application can send commands in the pre-defined format and the content requested is actually located on the target server. This allows for high levels of extensibility and interoperability, as the server usage is not limited to a single platform. If I decide to create a Windows Store application that would allow me to control my TV, I simply need to add socket connection layer that will send plain strings to the machine where the IR sensor is connected.</p><p>Similarly, if some functionality needs to be added, it is possible to do so without ever touching the client applications. A modification in the endpoint will be reflected with no direct effect on all connection applications as long as all handled returned and requested values are preserved. The only additional requirement is that if the client applications want to take advantage of newly introduced capabilities, they need to have an updated command transmission layer for the new command types.</p><p>In <strong>Program.cs</strong>, I simply need to start the server through the <strong>CoreStarter</strong> class:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.API 
{ 
    class Program     
    {         
        static void Main(string[] args)         
        {             
            Console.WriteLine(&quot;Coding4Fun MissionControl Server&quot;);             
            CoreStarter.LaunchSocket();             
        }         
    }     
}
</pre></p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image0076.jpg"><img title="clip_image007" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image007_thumb3.jpg" alt="clip_image007" width="527" height="267" border="0"></a></p><h1>Mobile client overview</h1><p>The mobile client does not have the capability to send commands directly to the IR sensor. Instead, it connects to a remote machine that has the IR sensor plugged in and attempts to invoke a command from the list returned by the service. A single mobile client can support control over multiple servers.</p><p><strong>NOTE:</strong> Make sure that at the time of working with the Windows Phone client, the server is actually running on your local machine. To make it easier to test, also open port 6169 for incoming connections in Windows Firewall.</p><p>When building a Windows Phone application, make sure you have the <a href="http://developer.windowsphone.com/en-us/downloadsdk">proper version of the SDK installed</a>, as well as a <a href="http://en.wikipedia.org/wiki/Second_Level_Address_Translation">SLAT-compatible</a> machine if you plan on testing the application in the emulator.</p><h2>Networking Infrastructure</h2><p>The Windows Phone application also relies on a network infrastructure somewhat similar to that of the server. There is a TCP listener that is created when the application is started:</p><p><pre class="brush: csharp">
// Code to execute when the application is launching (eg, from Start) 
// This code will not execute when the application is reactivated 
private void Application_Launching(object sender, LaunchingEventArgs e) 
{ 
    ServiceSerializer.DeserializeServices(); 
    
    listener.OnClientConnected &#43;= listener_OnClientConnected; 
    listener.Start(6169); 
}
</pre></p><p>Here, listener is an instance of <strong>TcpSocketListener</strong>—a custom class designed to handle incoming network connections:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.WP.Network 
{ 
    public class TcpSocketListener : SocketConnectorBase     
    {     
        StreamSocketListener coreSocket; 
        
        public async void Start(int port)     
        {     
            coreSocket = new StreamSocketListener();         
            coreSocket.ConnectionReceived &#43;= coreSocket_ConnectionReceived; 
            
            try     
            {         
                await coreSocket.BindServiceNameAsync(port.ToString());         
            }     
            catch (Exception ex) 
            {     
                Debug.WriteLine(ex.Message); 
                
                coreSocket.Dispose();     
                coreSocket = null; 
                OnConnectionCompleted(new ConnectionEventArgs { IsSuccessful = false, DeviceID = string.Empty }); 
            } 
        } 
        
        async void coreSocket_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args) 
        { 
            Debug.WriteLine(&quot;Connection received!&quot;); 
            
            DataReader reader = new DataReader(args.Socket.InputStream); 
            
            try 
            { 
                while (true) 
                { 
                    StringBuilder builder = new StringBuilder(); 
        
                    uint actualLength = 1; 

                    while (actualLength &gt; 0) 
                    {     
                        actualLength = await reader.LoadAsync(256); 
                        builder.Append(reader.ReadString(actualLength)); 
                    } 
                    
                    OnConnectionCompleted(new ConnectionEventArgs 
                    { 
                        Socket = args.Socket, 
                        IsSuccessful = true, 
                        DeviceID = args.Socket.Information.RemoteHostName.DisplayName, 
                        Token = builder.ToString() 
                    }); 
                    break; 
                } 
            } 
            catch (Exception exception) 
            { 
                Debug.WriteLine(exception.Message); 
                
                OnConnectionCompleted(new ConnectionEventArgs { IsSuccessful = false }); 
            } 
        } 
    } 
}
</pre></p><p>A <strong>StreamSocketListener</strong> is used for the connection core. When a connection is received, a continuous loop reads the entire contents of the incoming stream. <strong>OnConnectionCompleted</strong> is declared in the base class—<strong>SocketConnectorBase</strong>.</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.WP.Network 
{ 
    public class SocketConnectorBase 
    { 
        public event EventHandler&lt;ConnectionEventArgs&gt; OnClientConnected; 
        public virtual void OnConnectionCompleted(ConnectionEventArgs connectionArgs) 
        { 
            if (OnClientConnected != null) 
            { 
                OnClientConnected(this, connectionArgs); 
            } 
        } 
        
        public event EventHandler&lt;bool&gt; OnSendCompletedEvent; 
        public virtual void OnSendCompleted(bool succeeded) 
        { 
            if (OnSendCompletedEvent != null) 
            { 
                OnSendCompletedEvent(this, succeeded); 
            } 
        } 
    } 
    
    public class ConnectionEventArgs : EventArgs 
    { 
        public StreamSocket Socket { get; set; }     
        public string DeviceID { get; set; }     
        public string Token { get; set; }     
        public bool IsSuccessful { get; set; }     
    } 
}
</pre></p><p><strong>ConnectionEventArgs</strong> here is used to identify the content that is passed to the client. <strong>DeviceID</strong> gives access to the source IP, <strong>IsSuccessful</strong> tells the developer whether the established connection is active and the <strong>Token</strong> carries the raw string if any was received.</p><p>Sending data is simplified to the maximum with the help of the <strong>SocketClient</strong> class, which relies on a <a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.networking.sockets.streamsocket.aspx">StreamSocket</a> instance that handles outbound connections and writing to the output stream:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.WP.Network 
{ 
    public class SocketClient : SocketConnectorBase 
    {     
        StreamSocket _socket; 
        
        public SocketClient() 
        {     
            _socket = new StreamSocket();     
        } 
        
        public SocketClient(StreamSocket socket) 
        {     
            _socket = socket;     
        } 
        
        public async void Connect(string hostName, int portNumber) 
        { 
            try 
            { 
                await _socket.ConnectAsync(new HostName(hostName), portNumber.ToString(), SocketProtectionLevel.PlainSocket); 
            
                OnConnectionCompleted(new ConnectionEventArgs { IsSuccessful = true }); 
            } 
            catch (Exception ex) 
            {     
                Debug.WriteLine(ex.Message); 
                
                OnConnectionCompleted(new ConnectionEventArgs { IsSuccessful = false });     
            } 
        } 
        
        public async void Send(string dataToSend) 
        { 
            try 
            {     
                using (DataWriter writer = new DataWriter(_socket.OutputStream)) 
                { 
                    // Write the length of the binary data that is being 
                    // sent to the client. 
                    writer.WriteUInt32((UInt32)dataToSend.Length); 
                    
                    writer.WriteString(dataToSend); 
        
                    // Send the actual data. 
                    await writer.StoreAsync(); 
                    
                    writer.DetachStream(); 
                    
                    OnSendCompleted(true); 
                } 
            } 
            catch 
            { 
                _socket.Dispose();     
                _socket = null;     
                OnSendCompleted(false);     
            }     
        }     
    }     
}
</pre></p><p>As with the listener class, <strong>SocketClient</strong> supports <strong>OnConnectionCompleted</strong> to notify the application that the connection attempt completed.</p><p>Back in <strong>App.xaml.cs</strong>, the data from the incoming connection captured by the <strong>TcpSocketListener</strong> instance is passed to the <strong>ResponseHelper</strong> class:</p><p><pre class="brush: csharp">
void listener_OnClientConnected(object sender, ConnectionEventArgs e) 
{ 
    ResponseHelper.HandleIncomingResponse(e.Token); 
}
</pre></p><p>This class reads the possible three commands sent by the server and interprets them, creating internal collections from the raw data if the current server IP matches the one obtained in the <strong>ServerResponse</strong> (the same model in the desktop application):</p><p><pre class="brush: csharp">
using Coding4Fun.MissionControl.WP.Models;
using Coding4Fun.MissionControl.WP.ViewModels;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Windows;

namespace Coding4Fun.MissionControl.WP.Misc
{
        public class ResponseHelper
        {
                public static void HandleIncomingResponse(string rawResponse)
                {
                        if (rawResponse != null)
                        {
                                ServerResponse response = JsonConvert.DeserializeObject&lt;ServerResponse&gt;(rawResponse);
                
                                if (response.Marker == Constants.COMMAND_SERVER_NOTIFICATION)
                                {
                                        Deployment.Current.Dispatcher.BeginInvoke(() =&gt;
                                        {
                                                MessageBox.Show(response.Content, &quot;Server Response&quot;, MessageBoxButton.OK);
                                        });
                                }
                                else
                                {
                                        if (CommonViewModel.Instance.IsWaiting)
                                        {
                                                if (response.Identifier == CommonViewModel.Instance.CurrentServer.Location)
                                                {
                                                        // returns the list of sets that are associated with the current server.
                                                        if (response.Marker == Constants.COMMAND_SERVER_SET_LIST)
                                                        {
                                
                                                                List&lt;string&gt; items = JsonConvert.DeserializeObject&lt;List&lt;string&gt;&gt;(response.Content);
                                
                                                                if (items != null)
                                                                {
                                                                        List&lt;Group&lt;string&gt;&gt; groupedItems = Group&lt;string&gt;.CreateGroups(items,
                                                                        CultureInfo.CurrentCulture, (string s) =&gt; { return s[0].ToString(); }, true);
                                                                        SetsPageViewModel.Instance.Sets = groupedItems;
                                                                }
                                                                else
                                                                {
                                                                        SetsPageViewModel.Instance.Sets = new List&lt;Group&lt;string&gt;&gt;();
                                                                }
                                
                                                                Deployment.Current.Dispatcher.BeginInvoke(() =&gt;
                                                                    {
                                                                            CommonViewModel.Instance.IsWaiting = false;
                                    
                                                                            if (!App.RootFrame.CurrentSource.ToString().Contains(&quot;SetsPage&quot;))
                                                                            {
                                                                                    App.RootFrame.Navigate(new Uri(&quot;/Views/SetsPage.xaml&quot;, UriKind.Relative));
                                                                            }
                                                                    });
                                
                                                        }
                                                        // returns the list of commands associated with a given set.
                                                        else if (response.Marker.Contains(Constants.COMMAND_SERVER_SET_COMMANDS))
                                                        {
                                                            string[] data = response.Marker.Split(new char[] { ':' });
                                                                if (data[1] == CommonViewModel.Instance.CurrentSet)
                                                                {
                                                                        bool isList = false;
                                                                        bool.TryParse(data[2].ToLower(), out isList);
                                    
                                                                        if (isList)
                                                                        {
                                                                                CommonViewModel.Instance.CurrentSetType = &quot;list&quot;;
                                                                        }
                                                                        else
                                                                        {
                                                                                CommonViewModel.Instance.CurrentSetType = &quot;pad&quot;;
                                                                        }
                                    
                                                                        CommandsPageViewModel.Instance.Commands = new System.Collections.ObjectModel.ObservableCollection&lt;string&gt;(JsonConvert.DeserializeObject&lt;List&lt;string&gt;&gt;(response.Content));
                                    
                                                                        Deployment.Current.Dispatcher.BeginInvoke(() =&gt;
                                                                            {
                                                                                    CommonViewModel.Instance.IsWaiting = false;
                                                                                    App.RootFrame.Navigate(new Uri(&quot;/Views/CommandsPage.xaml&quot;, UriKind.Relative));
                                                                            });
                                                                }
                                                        }
                                                }
                                        }
                                }
                        }
                }
        }
}
</pre></p><p>If the response comes from a server that is different than the one that is currently active, the data is discarded as the user no longer needs it. Also, for specific commands, the mobile application will be on standby, waiting for a response (unless the user decides to cancel the request) – the <strong>IsWaiting</strong> flag is an application-wide indicator that a pending server action is in the queue.</p><p>Same as with the server, the commands in the Windows Phone application are represented through pre-defined constants:</p><p><pre class="brush: csharp">
public const string COMMAND_SERVER_SET_LIST = &quot;SET_LIST&quot;; 

public const string COMMAND_SERVER_SET_COMMANDS = &quot;SET_COMMANDS&quot;; 

public const string COMMAND_SERVER_NOTIFICATION = &quot;NOTIFICATION&quot;;
</pre></p><p>Let’s now take a closer look at how it is handled internally to build the visual layer.</p><h4>Handling the Data</h4><p>The first thing users will see when the application is launched is the list of registered servers:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0003%5B4%5D.png"><img title="wp_ss_20130507_0003" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0003_thumb%5B2%5D.png" alt="wp_ss_20130507_0003" width="288" height="480" border="0"></a></p><p>This is <strong>ServiceListPage.xaml</strong>. The list of servers that were added is retrieved from the isolated storage on application startup, with the help of the standard serialization routine implemented in the <a href="https://coding4fun.codeplex.com/">Coding4Fun Toolkit</a>—specifically, its storage subset (you can get it <a href="http://nuget.org/packages/Coding4Fun.Toolkit.Storage/">via NuGet</a>):</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image0116.jpg"><img title="clip_image011" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/clip_image011_thumb3.jpg" alt="clip_image011" width="535" height="61" border="0"></a></p><p>The one-liner that initializes the internal server collection is as follows:</p><p><pre class="brush: csharp">
MainPageViewModel.Instance.Servers = Serialize.Open&lt;ObservableCollection&lt;Server&gt;&gt;(Constants.SERVERS_FILE);
</pre></p><p>&nbsp;</p><p>Here, the <strong>SERVERS_FILE</strong> constant is equal to <strong>servers.xml</strong>. It is a good idea to use constants for file names in order to be able to later modify the location through a single change instead of digging through the many source files in a solution to find references to the old location.</p><p>The user can define an unlimited number of servers, as long as he can access those. There is no restriction on the location of the server itself—it can work with the desktop in your room just as well as with a PC on the other end of the world (yes, this was tested).</p><p>When adding a new server, the user is redirected to <strong>AddServicePage.xaml</strong>, where he can fill in connection details, as well as the location of an image that would help him identify that specific item in the general list:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130423_0005%5B4%5D.png"><img title="wp_ss_20130423_0005" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130423_0005_thumb%5B2%5D.png" alt="wp_ss_20130423_0005" width="288" height="480" border="0"></a></p><p>Once data entry is complete, it is validated internally to make sure that the server is not already registered with the same name and location. If the validation step passes, the server is added to the list of local access points and the user is returned back to the server selection page:</p><p><pre class="brush: csharp">
private void AttemptAddService()
{
        if (!string.IsNullOrWhiteSpace(txtName.Text) &amp;&amp; !string.IsNullOrWhiteSpace(txtLocation.Text))
        {
                Server server = new Server
                    {
                            Name = txtName.Text,
                            Location = txtLocation.Text,
                            ImageURL = !string.IsNullOrWhiteSpace(txtAvatar.Text) ? txtAvatar.Text : string.Empty
                    };
        
                if (!CollectionHelper.CheckServerExists(server))
                {
                        MainPageViewModel.Instance.Servers.Add(server);
            
                        Serialize.Save(Constants.SERVERS_FILE, MainPageViewModel.Instance.Servers);
                        NavigationService.GoBack();
                }
                else
                {
                        Alert.Send(&quot;The service with this name or location is already registered.&quot;);
                }
        }
        else
        {
                Alert.Send(&quot;The service needs a name and a location.&quot;);
        }
}
</pre></p><p>When a server selection is made by the user, it is necessary to show <strong>SetsPage.xaml</strong>. However, it is necessary to also check whether the server is active or not prior to the actual navigation. With the help of internal bindings, I am doing it through a <strong>RelayCommand</strong>:</p><p><pre class="brush: csharp">
public RelayCommand SelectServerCommand { get; private set; }
private async void SelectServer(object server)
{
        CommonViewModel.Instance.IsWaiting = true;
        CommonViewModel.Instance.CurrentServer = (Server)server;
    
        bool result = await CommonViewModel.Instance.CommandClient.SendCommand(CommonViewModel.Instance.CurrentServer.Location, 
        Constants.COMMAND_SERVER_HELLO, string.Empty);
        if (!result)
        {
                Alert.Send(Constants.MESSAGE_SERVER_CONNECT_FAIL);
                CommonViewModel.Instance.CurrentServer = null;
        
                CommonViewModel.Instance.IsWaiting = false;
        }
}
</pre></p><p>&nbsp;</p><p><strong>COMMAND_SERVER_HELLO</strong> represents the initial handshake command that I mentioned earlier—it requests the list of sets on the target server. To streamline command processing, <strong>CommandClient</strong> is used and wraps around the <strong>SocketClient</strong> class, giving me the possibility to call <strong>SendCommand</strong> with the command metadata without having to explicitly handle socket interactions in my views:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.WP.Network 
{     
    public class CommandClient     
    {     
        private SocketClient client; 
        
        public Task&lt;bool&gt; SendCommand(string key, string value, Action&lt;bool&gt; onCompleted = null) 
        {     
            var taskCompletionSource = new TaskCompletionSource&lt;bool&gt;(); 
            
            client = new SocketClient();     
            client.OnClientConnected &#43;= (s, args) =&gt;     
            {     
                if (args.IsSuccessful)     
                {     
                    string data = JsonConvert.SerializeObject(new KeyValuePair&lt;string, string&gt;(key, value));     
                    client.Send(data);     
                } 
            
                taskCompletionSource.SetResult(args.IsSuccessful); 
                client = null; 
            }; 
            
            client.Connect(Binder.Instance.CurrentService.Location, 6169); 
            return taskCompletionSource.Task;     
        } 
    } 
}
</pre></p><p>From here on, <strong>ResponseHelper</strong> is once again involved, grouping all the data alphabetically—remember this call:</p><p><pre class="brush: csharp">
// returns the list of sets that are associated with the current server. 
if (response.Marker == Constants.COMMAND_SERVER_SET_LIST) 
{     
    List&lt;string&gt; items = JsonConvert.DeserializeObject&lt;List&lt;string&gt;&gt;(response.Content);     
    if (items != null) 
    {     
        List&lt;Group&lt;string&gt;&gt; groupedItems = Group&lt;string&gt;.CreateGroups(items,     
    CultureInfo.CurrentCulture, (string s) =&gt; { return s[0].ToString(); }, true);     
        Binder.Instance.Sets = groupedItems;     
    } 
    else 
    {     
        Binder.Instance.Sets = new List&lt;Group&lt;string&gt;&gt;();     
    } 
}
</pre></p><p>&nbsp;</p><p>The grouped collection is later bound to a <a href="http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj244365(v=vs.105).aspx">LongListSelector</a> instance:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0001%5B4%5D.png"><img title="wp_ss_20130507_0001" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0001_thumb%5B2%5D.png" alt="wp_ss_20130507_0001" width="288" height="480" border="0"></a></p><p>For each handshake call to the server, the set collection will be re-initialized, in case the server was updated by another device while the user was not taking any actions.</p><p>Adding a set takes the user to <strong>AddSetPage.xaml</strong>, where the user input is once again validated and the appropriate command sent to the currently selected server:</p><p><pre class="brush: csharp">
private async void AttemptAddSet()
{
        if (!string.IsNullOrWhiteSpace(txtName.Text))
        {
                this.Focus();
        
                bool commandSent = await CommonViewModel.Instance.CommandClient.SendCommand(CommonViewModel.Instance.CurrentServer.Location, 
                    string.Format(Constants.COMMAND_CREATE_SET, ((ListPickerItem)lstType.SelectedItem).Content.ToString()), txtName.Text);
                if (!commandSent)
                {
                        Alert.Send(Constants.MESSAGE_SERVER_CONNECT_FAIL);
                }
                else
                {
                        CommonViewModel.Instance.IsWaiting = true;
                        NavigationService.GoBack();
                }
        }
        else
        {
                Alert.Send(Constants.MESSAGE_NO_NAME_FAIL);
        }
}
</pre></p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130430_0002%5B4%5D-1.png"><img title="wp_ss_20130430_0002" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130430_0002_thumb%5B2%5D-1.png" alt="wp_ss_20130430_0002" width="288" height="480" border="0"></a></p><p>The end-user is also able to specify whether the new set is a list or a pad. Since the server does not explicitly define the type of a set beyond marking whether it’s a list, it is possible to have an arbitrary type here.</p><p>To give you an idea of what it looks like in the current release of MissionControl, here is the pad representation of a set of commands:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0002%5B13%5D.png"><img title="wp_ss_20130507_0002" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0002_thumb%5B11%5D.png" alt="wp_ss_20130507_0002" width="288" height="480" border="0"></a></p><p>It is a convenient way to display buttons for typical actions, such as channel switching through digits. Since we can safely assume many of those will be tapped sequentially, a list would be inconvenient to scroll through.</p><p>On the other hand, some remote control commands work well with a list because no sequences are invoked most of the time:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0004%5B4%5D.png"><img title="wp_ss_20130507_0004" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0004_thumb%5B2%5D.png" alt="wp_ss_20130507_0004" width="288" height="480" border="0"></a></p><p>If the pad is not desired, it can easily be swapped with another design and internal template - the appearance is swapped dynamically and is not hard-bound to a string value.</p><p>Once a set is selected, a connection attempt is made to the current server in order to check whether there is still a communication channel available with the resource that fetched the initial list of commands. If a connection is established, the server will also return a set of commands that are available in the set at the time of the request.</p><p><pre class="brush: csharp">
private async void AttemptLoadCommands()
{
        bool commandSent = await CommonViewModel.Instance.CommandClient.SendCommand(CommonViewModel.Instance.CurrentServer.Location,
            Constants.COMMAND_GET_COMMANDS, CommonViewModel.Instance.CurrentSet);
        if (!commandSent)
        {
                Alert.Send(Constants.MESSAGE_SERVER_CONNECT_FAIL);
                CommonViewModel.Instance.IsWaiting = false;
        }
}
</pre></p><p>You’ve probably already noticed that both for commands and sets, the initial routine verifies the connection to the server. The server might go dark after the set list is loaded, therefore rendering any attempt to process other commands impossible. To avoid scenarios in which the user is waiting for a response from a server that doesn’t run, the user is notified before being redirected to the subsequent view, if the connection fails. That way unnecessary navigation passes are out of the picture.</p><p>If the user selects a command from one of the lists demonstrated above, an <strong>EXECUTE</strong> directive is issued via the <strong>CommandClient</strong> class:</p><p><pre class="brush: csharp">
private async void lstCommands_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (lstCommands.SelectedItem != null)
    { 
        string selectedItem = lstCommands.SelectedItem.ToString(); 
        
        CommandClient commandClient = new CommandClient(); 
        bool commandSent = await commandClient.SendCommand(string.Format(Constants.COMMAND_EXECUTE, 
        
        Binder.Instance.CurrentSet), selectedItem); 
    
        if (!commandSent) 
        {     
            Alert.Send(Constants.MESSAGE_SERVER_CONNECT_FAIL);     
        } 
        
        lstCommands.SelectedItem = null; 
    } 
}
</pre></p><p>Once the server receives the command, it will send it to the target without additional notifications being released to the connecting client.</p><p>When it comes to learning a new remote control code in <strong>LearnCodePage.xaml</strong>, the procedure is exactly the same as with any other part of the server communication process — a <strong>LEARN_CODE</strong> command is sent to the server with the associated set and new command name, and the server will wait for incoming IR input, leaving the connecting device free (no waiting lock is issued):</p><p><pre class="brush: csharp">
private async void AttemptLearnCode()
{
        if (!string.IsNullOrWhiteSpace(txtName.Text))
        {
                CommonViewModel.Instance.IsWaiting = true;
                this.Focus();
        
                bool commandSent = await CommonViewModel.Instance.CommandClient.SendCommand(CommonViewModel.Instance.CurrentServer.Location,
                    string.Format(Constants.COMMAND_LEARN_NEW, CommonViewModel.Instance.CurrentSet), txtName.Text);
                if (!commandSent)
                {
                        Alert.Send(Constants.MESSAGE_SERVER_CONNECT_FAIL);
                }
                else
                {
                        Alert.Send(Constants.MESSAGE_COMMAND_LEARN_WAIT);
                        NavigationService.GoBack();
                }
        
                CommonViewModel.Instance.IsWaiting = false;
        }
        else
        {
                Alert.Send(Constants.MESSAGE_NO_NAME_FAIL);
        }
}
</pre></p><p>Once the server learns a new command — if, and only if, the user still works in the context of the same server — an alert will be displayed, telling the user whether the command was successfully learned.</p><p>For convenience purposes, I also implemented a quick launch panel, where frequently-used commands can be placed. Whenever a user wants to add something here, he will tap-and-hold on an existing command in any of the sets that are available for any given server, and select the &quot;add to quick launch&quot; option. Once completed, the stored commands will be available on the main page, even when the user is not directly connected to the server that carries the command:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0005%5B4%5D.png"><img title="wp_ss_20130507_0005" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/wp_ss_20130507_0005_thumb%5B2%5D.png" alt="wp_ss_20130507_0005" width="288" height="480" border="0"></a></p><p>Because this interaction layer is placed outside the boundaries of a single server or set, I needed to create a special data model to store the quick commands and the related connection information, that would let me call the server even when it is not the currently selected one:</p><p><pre class="brush: csharp">
namespace Coding4Fun.MissionControl.WP.Models
{
        public class Favorite
        {
            public string CommandName { get; set; }
            public string ParentSet { get; set; }
            public string ServerLocation { get; set; }
        }
}
</pre></p><p>Same as with the list of servers, the list of favorites is deserialized on application startup:</p><p><pre class="brush: csharp">
MainPageViewModel.Instance.Favorites = Serialize.Open&lt;ObservableCollection&lt;Favorite&gt;&gt;(Constants.FAVORITES_FILE);
</pre></p><p>&nbsp;</p><p>Logically, we would also need to have a way to eliminate trailing commands for servers or sets that have been removed, since those can no longer be invoked or might have a different meaning on servers that were added and have the same IP as the previous owner. This is easily done with a simple LINQ expression that is passed to <strong>RemoveTrailingFavorites </strong>in the <strong>CollectionHelper </strong>class:</p><p><pre class="brush: csharp">
internal static void RemoveTrailingFavorites(Func&lt;Favorite,bool&gt; predicate)
{
        var favorites = MainPageViewModel.Instance.Favorites.Where(predicate).ToList();
    
        if (favorites.Count() &gt; 0)
        {
                foreach (var favorite in favorites)
                {
                        Deployment.Current.Dispatcher.BeginInvoke(() =&gt;
                            {
                                    MainPageViewModel.Instance.Favorites.Remove(favorite);
                            });
                }
        
                Serialize.Save(Constants.FAVORITES_FILE, MainPageViewModel.Instance.Favorites);
        }
}
</pre></p><p>A typical usage scenario is reflected in the server removal snippet:</p><p><pre class="brush: csharp">
public static bool RemoveServer(Server server)
{
        try
        {
                RemoveTrailingFavorites(x=&gt; x.ServerLocation == server.Location);
        
                MainPageViewModel.Instance.Servers.Remove(server);
        
                Serialize.Save(Constants.SERVERS_FILE, MainPageViewModel.Instance.Servers);
        
                return true;
        }
        catch
        {
                return false;
        }
}
</pre></p><p>Because an <a href="http://msdn.microsoft.com/en-us/library/ms668604(v=vs.95).aspx" target="_blank">ObservableCollection&lt;T&gt;</a> is used for both the list of servers and quick launch commands, the view will be instantly updated to reflect the changes.</p><h1>Improvements to the project</h1><p>This specific project relies on a hybrid IR transmitter and receiver, which is not exactly cheap. As a step forward for this project, it can be adapted to use a central microcontroller that acts as a server (e.g. <a href="http://www.netduino.com/" target="_blank">Netduino</a>) and a series of IR emitters (instead of using a composite receiver/emitter) connected to it. Reduced cost for the IR infrastructure is key, as not every single component needs the capability to learn IR commands. You can have a single command capturing endpoint and multiple transmitters. This will also eliminate the need for a desktop client, since the server on the microcontroller can be built to be accessible via a web-browser.</p><p>Another important aspect not covered in this article is security. With the current workflow, anyone who has direct access to the server IP is able to do anything he wants with the data handled by the server. I am basing my writing on the assumption that you are testing the application on a secure local network and that the the odds of something like this happening are close to zero. However, for other environments where tampering with a server might be unacceptable, consider implementing a layer of security between the server and the client.</p><h2>Conclusion</h2><p>With affordable microcontrollers and sensors, home and office automation can be a nice bonus resulting from little investment. This article covers the implementation of a proof-of-concept server and application that can be easily extended and adapted to a variety of environments and devices.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:b029d939c55f459c9663a1b70159bff4">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/articles/MissionControl-A-Flexible-API-for-Remote-Device-Control</comments>
      <itunes:summary>In a race to optimize everything, developers often go to extremes to build software that performs routine tasks. MissionControl is a system that allows users to program a control center that stores interfaces with attached hardware sensors, allowing the users to control any other devices that can be activated via the underlying protocol. For demo purposes, the MissionControl build at this point is compatible with the Phidgets IR hybrid sensor. The system has two core components: A server application, which is a Win32 console application that handles incoming queries and returns data to the connected clients. This application runs on the desktop machine with the connected sensor. The Windows Phone application that sends requests to the target server and can trigger a variety of pre-programmed commands. The BasicsHardware and Communication InfrastructureOne of the most important parts of the project is the signal capture and replication hardware. For the purposes of this project, I decided to use a dual-mode Phidgets IR sensor. It supports both IR code capture and subsequent replication. From a user’s perspective, this device also eliminates a substantial code-learning overhead as well as the potential error rate. Instead of searching for a device-specific hexadecimal sequence that later has to be transformed in a working IR code, the user simply has to point his remote control at the sensor and press the button that he wants accessible from a mobile device. Given that the capturing software is running on the target machine, once the sensor detects that a code can be repeated within an acceptable precision range, it will be automatically captured and stored, with all required transformations worked out in the backend using the free Phidgets SDK. Even though I can, I don’t have to handle the binary code content received through the sensor—the Phidgets .NET libraries carry built-in types that contain all the processed metadata that I will discuss later in this article. </itunes:summary>
      <itunes:duration>229</itunes:duration>
      <link>http://channel9.msdn.com/coding4fun/articles/MissionControl-A-Flexible-API-for-Remote-Device-Control</link>
      <pubDate>Mon, 13 May 2013 15:12:48 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/articles/MissionControl-A-Flexible-API-for-Remote-Device-Control</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl_512.jpg" height="288" width="512"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl_960.jpg" height="540" width="960"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl.mp3" expression="full" duration="229" fileSize="3674107" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl.mp4" expression="full" duration="229" fileSize="22113376" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl.webm" expression="full" duration="229" fileSize="16308048" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl.wma" expression="full" duration="229" fileSize="1867511" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl.wmv" expression="full" duration="229" fileSize="15574259" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl_high.mp4" expression="full" duration="229" fileSize="48262843" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl_mid.mp4" expression="full" duration="229" fileSize="33783291" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl_Source.wmv" expression="full" duration="229" fileSize="135746099" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/330a/ce7e23b2-7e59-47e3-ba68-af17f8ab330a/MissionControl.wmv" length="15574259" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Clint Rutkas, Den Delimarsky</dc:creator>
      <itunes:author>Clint Rutkas, Den Delimarsky</itunes:author>
      <slash:comments>5</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/articles/MissionControl-A-Flexible-API-for-Remote-Device-Control/RSS</wfw:commentRss>
      <category>Networking</category>
      <category>Windows</category>
      <category>Windows  Phone</category>
    </item>
  <item>
      <title>Build 2013 Registration is now open!</title>
      <description><![CDATA[<p>Following up on our announcement of the <a href="http://blogs.technet.com/b/microsoft_blog/archive/2013/03/26/announcing-build-2013.aspx">Build conference</a>, we're excited to announce that Build registration is now open, <a href="http://buildwindows.com/?wt.mc_id=Build2013_MS_Internal__static-banner-ad__512x288_build-reg-now%20">register now</a>!</p><p>For those of you who cannot make the conference, we will be streaming the keynote, select sessions, and live Q&amp;A sessions on Channel 9. &nbsp;</p><p><strong>Update</strong>: Build 2013 is officially sold out! You can still watch keynotes, select sessions, &amp; live Q&amp;A online on Channel 9 <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:f32a52d7ec594fd4899ca194006e8320">]]></description>
      <comments>http://channel9.msdn.com/Blogs/C9Team/Build-2013-Registration-is-now-open</comments>
      <itunes:summary>Following up on our announcement of the Build conference, we&#39;re excited to announce that Build registration is now open, register now! For those of you who cannot make the conference, we will be streaming the keynote, select sessions, and live Q&amp;amp;A sessions on Channel 9. &amp;nbsp; Update: Build 2013 is officially sold out! You can still watch keynotes, select sessions, &amp;amp; live Q&amp;amp;A online on Channel 9  </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/C9Team/Build-2013-Registration-is-now-open</link>
      <pubDate>Tue, 02 Apr 2013 16:05:59 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/C9Team/Build-2013-Registration-is-now-open</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/deb56156-c450-4672-995e-97388f51b00d.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/1e3ae7b0-dd53-489e-90e8-4873e55da255.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/2f7f44ee-1023-4516-8c44-0029cb8091e3.jpg" height="288" width="512"></media:thumbnail>      
      <dc:creator>Jeff Sandquist</dc:creator>
      <itunes:author>Jeff Sandquist</itunes:author>
      <slash:comments>11</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/C9Team/Build-2013-Registration-is-now-open/RSS</wfw:commentRss>
      <category>Azure</category>
      <category>Visual Studio</category>
      <category>Windows</category>
      <category>Windows Phone</category>
      <category>Build</category>
    </item>
  <item>
      <title>Announcing Build 2013</title>
      <description><![CDATA[<p>Build 2013, is taking place June 26-28, 2013 at the Moscone Center in San Francisco.&nbsp;&nbsp; Save the date and mark your calendar for the opening of registration at 9:00 AM PDT on Tuesday April 2, 2013 at <a href="http://buildwindows.com">http://buildwindows.com</a>.<br>&nbsp;<br>At Build, we'll share updates and talk about what's next for Windows, Windows Server, Windows Azure, Visual Studio, and more.&nbsp; Join us for 3 days of immersive presentations delivered by the engineers behind our products and services, while networking with thousands of other developers getting the first look at what's next.&nbsp; We look forward to seeing you at Moscone.<br><br></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:da4d9362ae47450fb199a18d0049b354">]]></description>
      <comments>http://channel9.msdn.com/Blogs/C9Team/Announcing-Build-2013</comments>
      <itunes:summary>Build 2013, is taking place June 26-28, 2013 at the Moscone Center in San Francisco.&amp;nbsp;&amp;nbsp; Save the date and mark your calendar for the opening of registration at 9:00 AM PDT on Tuesday April 2, 2013 at http://buildwindows.com.&amp;nbsp;At Build, we&#39;ll share updates and talk about what&#39;s next for Windows, Windows Server, Windows Azure, Visual Studio, and more.&amp;nbsp; Join us for 3 days of immersive presentations delivered by the engineers behind our products and services, while networking with thousands of other developers getting the first look at what&#39;s next.&amp;nbsp; We look forward to seeing you at Moscone. </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/C9Team/Announcing-Build-2013</link>
      <pubDate>Tue, 26 Mar 2013 17:53:58 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/C9Team/Announcing-Build-2013</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/938e0bac-e8e4-4865-8294-0b98b574fb1f.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/a1a1ab9c-95ca-4435-9596-dface0ea162c.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/a802cf3f-f14f-4d72-b35b-581a693ac615.jpg" height="288" width="512"></media:thumbnail>      
      <dc:creator>Jeff Sandquist</dc:creator>
      <itunes:author>Jeff Sandquist</itunes:author>
      <slash:comments>11</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/C9Team/Announcing-Build-2013/RSS</wfw:commentRss>
      <category>Azure</category>
      <category>Visual Studio</category>
      <category>Windows</category>
      <category>Windows Server</category>
      <category>Build</category>
    </item>
  <item>
      <title>Windows Store Weekly: Twitter, Galactic Reign, Audible, NIM, BrainPOP</title>
      <description><![CDATA[<p><span>Windows Store Weekly highlights 5 of the coolest apps in the Windows Store each week. In just 5 minutes you'll get to know what's new, what's hot and what you should be checking out in every app category out there.</span></p><p><span>Please add your suggestions for awesome Windows 8 apps in the comments section. This week we take a look at: </span></p><ul><li><a href="http://apps.microsoft.com/windows/en-US/app/twitter/8289549f-9bae-4d44-9a5c-63d9c3a79f35">Twitter</a> - SOCIAL </li><li><a href="http://apps.microsoft.com/windows/en-us/app/galactic-reign/18058d97-3205-4293-9824-88534b8ccc1c">Galactic Reign </a>- GAME </li><li><a href="http://apps.microsoft.com/windows/en-US/app/audible-audiobooks-and-more/4bfe6201-39fa-41b4-ab34-9f4e5a8d489f">Audible</a> - BOOKS &amp; REFERENCE </li><li><a href="http://apps.microsoft.com/windows/en-US/app/next-issue-magazines/05208b7b-87c0-44c1-ada1-50fbb7eb0a79">NIM (Next Issue Magazine)</a> - NEWS&amp; WEATHER </li><li><a href="http://apps.microsoft.com/windows/en-us/app/brainpop-featured-movie/b1e1b569-0060-4cb0-b3a0-fd7f33bd6728">BrainPOP</a> - EDUCATIONAL </li></ul><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:ce224feeff6342d6a0a9a186015227cc">]]></description>
      <comments>http://channel9.msdn.com/Shows/Windows-Store-Weekly/Windows-Store-Weekly-Twitter-Galactic-Regin-Audible-NIM-BrainPOP</comments>
      <itunes:summary>Windows Store Weekly highlights 5 of the coolest apps in the Windows Store each week. In just 5 minutes you&#39;ll get to know what&#39;s new, what&#39;s hot and what you should be checking out in every app category out there. Please add your suggestions for awesome Windows 8 apps in the comments section. This week we take a look at:  Twitter - SOCIAL Galactic Reign - GAME Audible - BOOKS &amp;amp; REFERENCE NIM (Next Issue Magazine) - NEWS&amp;amp; WEATHER BrainPOP - EDUCATIONAL &amp;nbsp; </itunes:summary>
      <itunes:duration>281</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Windows-Store-Weekly/Windows-Store-Weekly-Twitter-Galactic-Regin-Audible-NIM-BrainPOP</link>
      <pubDate>Wed, 20 Mar 2013 20:09:23 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Windows-Store-Weekly/Windows-Store-Weekly-Twitter-Galactic-Regin-Audible-NIM-BrainPOP</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5.mp3" expression="full" duration="281" fileSize="4503889" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5.mp4" expression="full" duration="281" fileSize="26487500" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5.webm" expression="full" duration="281" fileSize="11350983" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5.wma" expression="full" duration="281" fileSize="2282063" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5.wmv" expression="full" duration="281" fileSize="32893019" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5_high.mp4" expression="full" duration="281" fileSize="57278870" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5_mid.mp4" expression="full" duration="281" fileSize="40279611" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5_Source.wmv" expression="full" duration="281" fileSize="163691333" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5.ism/manifest" expression="full" duration="281" fileSize="8302" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/457a/ac649d3f-a554-4b3e-a95a-1a2c6ac6457a/wsw5.wmv" length="32893019" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Laura Foy</dc:creator>
      <itunes:author>Laura Foy</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Windows-Store-Weekly/Windows-Store-Weekly-Twitter-Galactic-Regin-Audible-NIM-BrainPOP/RSS</wfw:commentRss>
      <category>Windows</category>
      <category>Apps</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>Wrenching on the HP 8770w Worksation Laptop</title>
      <description><![CDATA[<p>In this video I show you just how easy it is to work on the HP 8770w workstation PC. I'll demonstrate how you can swap out two RAM DIMMs and two hard drives in about 3 minutes with this machine.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:f732ab55bdfb48ff9f7da17601685e7f">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Windows-Blog/Wrenching-on-the-HP-8770w-Worksation-Laptop</comments>
      <itunes:summary>In this video I show you just how easy it is to work on the HP 8770w workstation PC. I&#39;ll demonstrate how you can swap out two RAM DIMMs and two hard drives in about 3 minutes with this machine. </itunes:summary>
      <itunes:duration>247</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Windows-Blog/Wrenching-on-the-HP-8770w-Worksation-Laptop</link>
      <pubDate>Tue, 05 Mar 2013 18:57:51 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Windows-Blog/Wrenching-on-the-HP-8770w-Worksation-Laptop</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w.mp3" expression="full" duration="247" fileSize="3959394" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w.mp4" expression="full" duration="247" fileSize="23180033" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w.webm" expression="full" duration="247" fileSize="10115823" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w.wma" expression="full" duration="247" fileSize="2005695" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w.wmv" expression="full" duration="247" fileSize="33783239" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w_high.mp4" expression="full" duration="247" fileSize="50595567" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w_mid.mp4" expression="full" duration="247" fileSize="35304392" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w_Source.wmv" expression="full" duration="247" fileSize="252193535" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w.ism/manifest" expression="full" duration="247" fileSize="8494" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/537f/8b8f7774-792a-49d5-98a8-28e75699537f/wrenchinghp8770w.wmv" length="33783239" type="video/x-ms-wmv"></enclosure>
      <dc:creator>GavinGear</dc:creator>
      <itunes:author>GavinGear</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Windows-Blog/Wrenching-on-the-HP-8770w-Worksation-Laptop/RSS</wfw:commentRss>
      <category>Windows</category>
    </item>
  <item>
      <title>Build 2012 Hackathon Kickoff</title>
      <description><![CDATA[<p>The Build hackathon is underway and loads of developers are hard at work creating apps for Windows 8, Windows Azure and Windows Phone 8. I stopped by just as they kicked off and caught some of the pre-event excitement. Take a look!</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:331b1b577db74fd69ffba0fb0026b98f">]]></description>
      <comments>http://channel9.msdn.com/Blogs/LauraFoy/BUILD-2012-Hackathon-Kickoff</comments>
      <itunes:summary>The Build hackathon is underway and loads of developers are hard at work creating apps for Windows 8, Windows Azure and Windows Phone 8. I stopped by just as they kicked off and caught some of the pre-event excitement. Take a look! </itunes:summary>
      <itunes:duration>251</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/LauraFoy/BUILD-2012-Hackathon-Kickoff</link>
      <pubDate>Thu, 01 Nov 2012 00:04:54 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/LauraFoy/BUILD-2012-Hackathon-Kickoff</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon.mp3" expression="full" duration="251" fileSize="4033418" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon.mp4" expression="full" duration="251" fileSize="23881142" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon.webm" expression="full" duration="251" fileSize="11122349" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon.wma" expression="full" duration="251" fileSize="2044747" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon.wmv" expression="full" duration="251" fileSize="41767199" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon_high.mp4" expression="full" duration="251" fileSize="52207616" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon_mid.mp4" expression="full" duration="251" fileSize="36524525" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon_Source.wmv" expression="full" duration="251" fileSize="249523879" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon.ism/manifest" expression="full" duration="251" fileSize="8382" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/4739/538fff75-6c0e-40eb-ad62-1910d4684739/hackathon.wmv" length="41767199" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Clint Rutkas, Laura Foy</dc:creator>
      <itunes:author>Clint Rutkas, Laura Foy</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/LauraFoy/BUILD-2012-Hackathon-Kickoff/RSS</wfw:commentRss>
      <category>hack</category>
      <category>Windows</category>
      <category>Apps</category>
      <category>Build</category>
    </item>
  <item>
      <title>RED 4K Windows Post Production Overview</title>
      <description><![CDATA[<p>In this video, I give a demonstration of using REDCINE-X Pro and Adobe Premiere Pro CS6 to work with 4K digital cinema footage shot with the RED EPIC camera.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:fe9b20ec559c447a97cfa0e20000ef55">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Windows-Blog/RED-4K-Windows-Post-Production-Overview</comments>
      <itunes:summary>In this video, I give a demonstration of using REDCINE-X Pro and Adobe Premiere Pro CS6 to work with 4K digital cinema footage shot with the RED EPIC camera. </itunes:summary>
      <itunes:duration>314</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Windows-Blog/RED-4K-Windows-Post-Production-Overview</link>
      <pubDate>Mon, 08 Oct 2012 22:13:24 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Windows-Blog/RED-4K-Windows-Post-Production-Overview</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview.mp3" expression="full" duration="314" fileSize="5029391" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview.mp4" expression="full" duration="314" fileSize="30730242" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview.webm" expression="full" duration="314" fileSize="11711948" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview.wma" expression="full" duration="314" fileSize="2546415" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview.wmv" expression="full" duration="314" fileSize="21502955" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview_high.mp4" expression="full" duration="314" fileSize="67185801" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview_mid.mp4" expression="full" duration="314" fileSize="46816454" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview_Source.wmv" expression="full" duration="314" fileSize="210302313" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview.ism/manifest" expression="full" duration="314" fileSize="8670" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/c5fa/7cea6063-333f-4921-aefc-e43d8fa1c5fa/RED4KPostProductionOverview.wmv" length="21502955" type="video/x-ms-wmv"></enclosure>
      <dc:creator>GavinGear</dc:creator>
      <itunes:author>GavinGear</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Windows-Blog/RED-4K-Windows-Post-Production-Overview/RSS</wfw:commentRss>
      <category>Windows</category>
      <category>Video editing</category>
    </item>
  <item>
      <title>Chris Anderson: Windows 8 New User Interface Standards</title>
      <description><![CDATA[<p>Chris Anderson, long-time UI architect at Microsoft (Windows Forms, WPF), discusses the innovative new standards and features introduced in Windows 8, that enable web developers to build Windows 8 apps more easily. Chris has been focused on the Windows Libraries for JavaScript and urges developers to leverage resources at the <a href="http://dev.windows.com/">Windows devcenter</a> to <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864">build apps</a>.&nbsp;&nbsp;&nbsp;</p><p><strong>Ready to Get Started?</strong></p><ol><li><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a>Visit the <a href="http://dev.windows.com" target="_blank">Windows Developer Center</a> for a myriad of sample, docs and guidelines</strong> </li><li><strong>Join the <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">GenerationApp</a> program and get a jumpstart building your Windows Store app. </strong></li></ol><p>&nbsp;</p><p><strong>About Chris</strong></p><p><a href="http://files.channel9.msdn.com/thumbnail/eb4b4e71-d307-4d9f-b643-a08f1fbb6bcc.JPG" rel="lightbox"><img title="ChrisAnderson" src="http://files.channel9.msdn.com/thumbnail/eb4b4e71-d307-4d9f-b643-a08f1fbb6bcc.JPG" alt="ChrisAnderson" width="61" height="63"></a><br><br>Chris started life at Microsoft in 1996 as a tester working on a large database application in the IT group. Since then Chris has worked on developer tools, developer platforms, web user interface platforms, client user interface platforms, database developer technologies, and now back to working on client user interface platforms.</p><p>Chris’ passion is to make computers more usable by people, and figures that getting millions of developers to build better apps is the best way to do it. Right now he is working in Windows on enabling web developers to easily, quickly, and profitably create Windows apps. He is focused on the Windows Libraries for JavaScript (WinJS).</p><p>Chris is the happy father of Jacob (4) and Charlotte (1), which is occupying most of his (and his wife Megan’s) time. Chris spends time taking pictures (of Jacob and Charlotte), making videos (of Jacob and Charlotte), and sleeping (when Jacob and Charlotte allow). In his copious spare time… oh wait, there isn’t any.</p><h5><strong>About Tim</strong></h5><p><img title="" src="http://i.msdn.microsoft.com/jj554733.Tim_Huckaby(en-us,MSDN.10).jpg" alt=""></p><p>Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &quot;Pioneer of the Smart Client Revolution&quot; by the press.</p><p>Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Microsoft technologies at technology events like Microsoft Tech Ed, Product Launch events, Dev Days, MEC, World Wide Partner Conference, MGB, MGX, and the PDC, along with 3rd party technology conferences all over the world is consistently rated in the top 10% of all speakers at these events. Tim was selected by Microsoft as a speaker for the International .NET Association and speaks at events world-wide on Microsoft's behalf. Tim has done keynote demos at big Microsoft events and product launches for numerous Microsoft executives including Bill Gates and Steve Ballmer.</p><p>Tim founded <a href="http://www.interknowlogy.com">InterKnowlogy</a>, experts in Microsoft .NET and Microsoft Platforms, and <a href="http://actus-software.com">Actus Interactive Software</a>, and has 25&#43; years experience including serving on a Microsoft product team as a development lead on an architecture team. Tim is a Microsoft Regional Director, an MVP and serves on multiple Microsoft councils and boards like the Microsoft .NET Partner Advisory Council.</p><h5>Resources we recommend you check out</h5><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113744" target="_blank">Download the Tools for Windows 8 App Development</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express 2012 for Windows 8</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">Start building your own Apps for Windows 8</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:edc5b08453984f949960a0c7017a7645">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-New-User-Interface-Standards</comments>
      <itunes:summary>Chris Anderson, long-time UI architect at Microsoft (Windows Forms, WPF), discusses the innovative new standards and features introduced in Windows 8, that enable web developers to build Windows 8 apps more easily. Chris has been focused on the Windows Libraries for JavaScript and urges developers to leverage resources at the Windows devcenter to build apps.&amp;nbsp;&amp;nbsp;&amp;nbsp; Ready to Get Started? Visit the Windows Developer Center for a myriad of sample, docs and guidelines Join the GenerationApp program and get a jumpstart building your Windows Store app. &amp;nbsp; About Chris Chris started life at Microsoft in 1996 as a tester working on a large database application in the IT group. Since then Chris has worked on developer tools, developer platforms, web user interface platforms, client user interface platforms, database developer technologies, and now back to working on client user interface platforms. Chris’ passion is to make computers more usable by people, and figures that getting millions of developers to build better apps is the best way to do it. Right now he is working in Windows on enabling web developers to easily, quickly, and profitably create Windows apps. He is focused on the Windows Libraries for JavaScript (WinJS). Chris is the happy father of Jacob (4) and Charlotte (1), which is occupying most of his (and his wife Megan’s) time. Chris spends time taking pictures (of Jacob and Charlotte), making videos (of Jacob and Charlotte), and sleeping (when Jacob and Charlotte allow). In his copious spare time… oh wait, there isn’t any. About Tim Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp;amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &amp;quot;Pioneer of the Smart Client Revolution&amp;quot; by the press. Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other techno</itunes:summary>
      <itunes:duration>251</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-New-User-Interface-Standards</link>
      <pubDate>Sun, 23 Sep 2012 15:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-New-User-Interface-Standards</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards.mp3" expression="full" duration="251" fileSize="4027702" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards.mp4" expression="full" duration="251" fileSize="23872705" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards.webm" expression="full" duration="251" fileSize="10245100" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards.wma" expression="full" duration="251" fileSize="2041743" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards.wmv" expression="full" duration="251" fileSize="33341039" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards_high.mp4" expression="full" duration="251" fileSize="51818342" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards_mid.mp4" expression="full" duration="251" fileSize="36294898" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards_Source.wmv" expression="full" duration="251" fileSize="249712948" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards.ism/manifest" expression="full" duration="251" fileSize="8670" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/417c/9e88e136-1871-44c1-925b-e95b2abb417c/BytesbyMSDNWin8NewStandards.wmv" length="33341039" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Bytes by MSDN, ChrisCaldwell</dc:creator>
      <itunes:author>Bytes by MSDN, ChrisCaldwell</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-New-User-Interface-Standards/RSS</wfw:commentRss>
      <category>Bytes by MSDN</category>
      <category>Tim Huckaby</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>_techmeme</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Joe Stegman: Windows 8 User Interface</title>
      <description><![CDATA[<p>Joe Stegman talks about creating XAML UI for Windows Store apps.&nbsp;&nbsp;&nbsp; He mentions the flexibility of XAML being accessible from C&#43;&#43;, VB and C#, and the great performance you will get out of the engine (which is written in native code).&nbsp; Learn more about the new XAML UI platform at the <a href="http://dev.windows.com/" target="_blank">Windows devcenter</a> and follow Joe’s advice and start <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">building your apps</a>.</p><p><strong>Ready to Get Started?</strong></p><ol><li><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a>Visit the <a href="http://dev.windows.com" target="_blank">Windows Developer Center</a> for a myriad of sample, docs and guidelines</strong> </li><li><strong>Join the <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">GenerationApp</a> program and get a jumpstart building your Windows Store app. </strong></li></ol><p>&nbsp;</p><p><strong>About Joe</strong></p><p><a href="http://files.channel9.msdn.com/thumbnail/b1c95fb7-aa5c-4870-8872-9639b8ccaa31.JPG" rel="lightbox"><img title="Joe" src="http://files.channel9.msdn.com/thumbnail/b1c95fb7-aa5c-4870-8872-9639b8ccaa31.JPG" alt="Joe" width="65" height="67"></a><br><br>Joe Stegman is the Group Program Manager for the Windows UI Platform team.&nbsp; Joe previously worked on developer platform related technologies as part of the Silverlight team and prior to that spent several years building a UI Framework and supporting UI development tools as a Lead Program Manager on the Windows Forms team.&nbsp; Joe has worked at Microsoft since 1998 and spent his first several years as a Microsoft consultant working with large corporations in the development and delivery of e-commerce web sites.<br><br><strong>About Tim</strong></p><p><img title="" src="http://i.msdn.microsoft.com/jj554733.Tim_Huckaby(en-us,MSDN.10).jpg" alt=""></p><p>Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &quot;Pioneer of the Smart Client Revolution&quot; by the press.</p><p>Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Microsoft technologies at technology events like Microsoft Tech Ed, Product Launch events, Dev Days, MEC, World Wide Partner Conference, MGB, MGX, and the PDC, along with 3rd party technology conferences all over the world is consistently rated in the top 10% of all speakers at these events. Tim was selected by Microsoft as a speaker for the International .NET Association and speaks at events world-wide on Microsoft's behalf. Tim has done keynote demos at big Microsoft events and product launches for numerous Microsoft executives including Bill Gates and Steve Ballmer.</p><p>Tim founded <a href="http://www.interknowlogy.com">InterKnowlogy</a>, experts in Microsoft .NET and Microsoft Platforms, and <a href="http://actus-software.com">Actus Interactive Software</a>, and has 25&#43; years experience including serving on a Microsoft product team as a development lead on an architecture team. Tim is a Microsoft Regional Director, an MVP and serves on multiple Microsoft councils and boards like the Microsoft .NET Partner Advisory Council.</p><h5>Resources we recommend you check out</h5><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113744" target="_blank">Download the Tools for Windows 8 App Development</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express 2012 for Windows 8</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">Start building your own Apps for Windows 8</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:c9debbcf07c2463ea6d6a0c70173dc24">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Interface</comments>
      <itunes:summary>Joe Stegman talks about creating XAML UI for Windows Store apps.&amp;nbsp;&amp;nbsp;&amp;nbsp; He mentions the flexibility of XAML being accessible from C&amp;#43;&amp;#43;, VB and C#, and the great performance you will get out of the engine (which is written in native code).&amp;nbsp; Learn more about the new XAML UI platform at the Windows devcenter and follow Joe’s advice and start building your apps. Ready to Get Started? Visit the Windows Developer Center for a myriad of sample, docs and guidelines Join the GenerationApp program and get a jumpstart building your Windows Store app. &amp;nbsp; About Joe Joe Stegman is the Group Program Manager for the Windows UI Platform team.&amp;nbsp; Joe previously worked on developer platform related technologies as part of the Silverlight team and prior to that spent several years building a UI Framework and supporting UI development tools as a Lead Program Manager on the Windows Forms team.&amp;nbsp; Joe has worked at Microsoft since 1998 and spent his first several years as a Microsoft consultant working with large corporations in the development and delivery of e-commerce web sites.About Tim  Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp;amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &amp;quot;Pioneer of the Smart Client Revolution&amp;quot; by the press. Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Microsoft technologies at technology events like Microsoft Tech Ed, Product Launch events, Dev Days, MEC, World Wide Partner Conference, MGB, MGX, and the PDC, along with 3rd party technology conferences all over the world is consistently rated in the top 10% of all speakers at these events. Tim was selected by Microsoft as a speaker for the International .NET Associat</itunes:summary>
      <itunes:duration>384</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Interface</link>
      <pubDate>Fri, 21 Sep 2012 22:56:16 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Interface</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface.mp3" expression="full" duration="384" fileSize="6157180" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface.mp4" expression="full" duration="384" fileSize="36889929" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface.webm" expression="full" duration="384" fileSize="15384858" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface.wma" expression="full" duration="384" fileSize="3117175" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface.wmv" expression="full" duration="384" fileSize="30993269" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface_high.mp4" expression="full" duration="384" fileSize="80306571" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface_mid.mp4" expression="full" duration="384" fileSize="56209033" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface_Source.wmv" expression="full" duration="384" fileSize="383124530" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface.ism/manifest" expression="full" duration="384" fileSize="8686" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/d811/fb44ee05-130c-430f-bcf3-0538d95ed811/BytesbyMSDNWin8UserInterface.wmv" length="30993269" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Bytes by MSDN, ChrisCaldwell</dc:creator>
      <itunes:author>Bytes by MSDN, ChrisCaldwell</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Interface/RSS</wfw:commentRss>
      <category>Bytes by MSDN</category>
      <category>Tim Huckaby</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>_techmeme</category>
      <category>Windows Store App</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>Bonny Lau: Windows 8 User Experience</title>
      <description><![CDATA[<p>Do design principles hinder innovation?&nbsp; Bonny Lau explains the reasoning behind the <a href="http://msdn.microsoft.com/en-US/windows" target="_blank">Windows 8</a>&nbsp;user experience and urges developers to leverage <a href="http://msdn.microsoft.com/library/windows/apps/hh779072" target="_blank">design templates</a>&nbsp;as a starting point (not an end point) for design, to push the envelope and build great looking apps. Learn how to make your app the best experience for your users at <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864">GenerationApp</a>.</p><p><strong>Ready to Get Started?</strong></p><ol><li><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a>Visit the <a href="http://dev.windows.com" target="_blank">Windows Developer Center</a> for a myriad of sample, docs and guidelines</strong> </li><li><strong>Join the <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">GenerationApp</a> program and get a jumpstart building your Windows Store app. </strong></li></ol><p>&nbsp;</p><p><strong>About Bonny</strong></p><p><a href="http://files.channel9.msdn.com/thumbnail/045bafd6-5fdf-4f1e-b798-92b28c8c044e.JPG" rel="lightbox"><img title="Bonny" src="http://files.channel9.msdn.com/thumbnail/045bafd6-5fdf-4f1e-b798-92b28c8c044e.JPG" alt="Bonny" width="55" height="57"></a><br><br>Bonny Lau is a Senior Program Manager currently working on the Core User Experience team in Windows. She works on the visual look and feel of Windows 8, including motion design of the OS, an animation library for apps, and developer tools, templates and platform support for building Metro style UI. Since the developer preview of Windows 8, she has been actively working with designers and developers around the world to provide UX training, guidance, and consultations to help create great end-user experience in Metro-style apps.</p><p>Prior to working on Windows, Bonny has worked on the Office team on Microsoft Project, driving the project scheduling experience on the desktop and on the web. Before that she has also worked on the MSN platform team on web caching and composition service technologies.</p><p>Outside of work, Bonny is an avid traveler and foodie always ready for any cultural and culinary adventures.<br><br><strong>About Tim</strong></p><p><img title="" src="http://i.msdn.microsoft.com/jj554733.Tim_Huckaby(en-us,MSDN.10).jpg" alt=""></p><p>Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &quot;Pioneer of the Smart Client Revolution&quot; by the press.</p><p>Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Microsoft technologies at technology events like Microsoft Tech Ed, Product Launch events, Dev Days, MEC, World Wide Partner Conference, MGB, MGX, and the PDC, along with 3rd party technology conferences all over the world is consistently rated in the top 10% of all speakers at these events. Tim was selected by Microsoft as a speaker for the International .NET Association and speaks at events world-wide on Microsoft's behalf. Tim has done keynote demos at big Microsoft events and product launches for numerous Microsoft executives including Bill Gates and Steve Ballmer.</p><p>Tim founded <a href="http://www.interknowlogy.com">InterKnowlogy</a>, experts in Microsoft .NET and Microsoft Platforms, and <a href="http://actus-software.com">Actus Interactive Software</a>, and has 25&#43; years experience including serving on a Microsoft product team as a development lead on an architecture team. Tim is a Microsoft Regional Director, an MVP and serves on multiple Microsoft councils and boards like the Microsoft .NET Partner Advisory Council.</p><h5>Resources we recommend you check out</h5><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113744" target="_blank">Download the Tools for Windows 8 App Development</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express 2012 for Windows 8</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">Start building your own Apps for Windows 8</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:895676b0f89f43e48f46a0c7017230a5">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Experience</comments>
      <itunes:summary>Do design principles hinder innovation?&amp;nbsp; Bonny Lau explains the reasoning behind the Windows 8&amp;nbsp;user experience and urges developers to leverage design templates&amp;nbsp;as a starting point (not an end point) for design, to push the envelope and build great looking apps. Learn how to make your app the best experience for your users at GenerationApp. Ready to Get Started? Visit the Windows Developer Center for a myriad of sample, docs and guidelines Join the GenerationApp program and get a jumpstart building your Windows Store app. &amp;nbsp; About Bonny Bonny Lau is a Senior Program Manager currently working on the Core User Experience team in Windows. She works on the visual look and feel of Windows 8, including motion design of the OS, an animation library for apps, and developer tools, templates and platform support for building Metro style UI. Since the developer preview of Windows 8, she has been actively working with designers and developers around the world to provide UX training, guidance, and consultations to help create great end-user experience in Metro-style apps. Prior to working on Windows, Bonny has worked on the Office team on Microsoft Project, driving the project scheduling experience on the desktop and on the web. Before that she has also worked on the MSN platform team on web caching and composition service technologies. Outside of work, Bonny is an avid traveler and foodie always ready for any cultural and culinary adventures.About Tim  Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp;amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &amp;quot;Pioneer of the Smart Client Revolution&amp;quot; by the press. Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Micros</itunes:summary>
      <itunes:duration>338</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Experience</link>
      <pubDate>Thu, 20 Sep 2012 22:57:58 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Experience</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp.mp3" expression="full" duration="338" fileSize="5416559" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp.mp4" expression="full" duration="338" fileSize="32176360" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp.webm" expression="full" duration="338" fileSize="13509059" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp.wma" expression="full" duration="338" fileSize="2744679" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp.wmv" expression="full" duration="338" fileSize="31608521" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp_high.mp4" expression="full" duration="338" fileSize="70449035" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp_mid.mp4" expression="full" duration="338" fileSize="49310554" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp_Source.wmv" expression="full" duration="338" fileSize="336907491" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp.ism/manifest" expression="full" duration="338" fileSize="8590" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/dbcd/720f2f1c-728d-4798-b2ac-cc882b3adbcd/BytesbyMSDNWin8UserExp.wmv" length="31608521" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Bytes by MSDN, ChrisCaldwell</dc:creator>
      <itunes:author>Bytes by MSDN, ChrisCaldwell</itunes:author>
      <slash:comments>6</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Experience/RSS</wfw:commentRss>
      <category>Bytes by MSDN</category>
      <category>Tim Huckaby</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>_techmeme</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>John Sheehan: Windows 8 Platform</title>
      <description><![CDATA[<p>John Sheehan and Tim Huckaby discuss the developer platform for <a href="http://dev.windows.com/">Windows 8</a>.&nbsp; John covers his biggest challenges and proudest moments, and urges developers to stop watching videos and begin <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864">building apps</a>.&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p><strong>Ready to Get Started?</strong></p><ol><li><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a>Visit the <a href="http://dev.windows.com" target="_blank">Windows Developer Center</a> for a myriad of sample, docs and guidelines</strong> </li><li><strong>Join the <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">GenerationApp</a> program and get a jumpstart building your Windows Store app. </strong></li></ol><p>&nbsp;</p><p><strong>About John</strong></p><p><a href="http://files.channel9.msdn.com/thumbnail/e6f7a714-f9b7-4055-b546-f2f3dbf4a89d.JPG" rel="lightbox"><img title="IMG_8485" src="http://files.channel9.msdn.com/thumbnail/e6f7a714-f9b7-4055-b546-f2f3dbf4a89d.JPG" alt="IMG_8485" width="54" height="56"></a><br><br>John Sheehan is a Partner Architect on the Windows team, where he drives the architecture of the Windows 8 Application Model.&nbsp; Before joining the Windows team, John was an Architect in the Server and Tools Business at Microsoft.&nbsp; As an STB architect, John was responsible for developing and evangelizing Microsoft Application Virtualization (App-V).&nbsp;</p><p>John joined Microsoft as part of the Softricity acquisition.&nbsp; At Softricity, he was Chief Architect.&nbsp; In that role, he was responsible for development of SoftGrid, the industry-leading application virtualization product focused on dynamic application delivery for Windows desktops and Terminal Services.</p><p>Before joining Microsoft, John was an Architect at Xevo Corporation, where he led the development of the core application provisioning system.&nbsp; Prior to Xevo, John was CTO of ResumeCard, an ASP providing technology and services to the recruiting industry.&nbsp; John started his engineering career working in the automotive industry, where he built vision systems that automated inspection and integrity validation on automotive assembly lines.</p><h5><strong>About Tim</strong></h5><p><img title="" src="http://i.msdn.microsoft.com/jj554733.Tim_Huckaby(en-us,MSDN.10).jpg" alt=""></p><p>Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &quot;Pioneer of the Smart Client Revolution&quot; by the press.</p><p>Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Microsoft technologies at technology events like Microsoft Tech Ed, Product Launch events, Dev Days, MEC, World Wide Partner Conference, MGB, MGX, and the PDC, along with 3rd party technology conferences all over the world is consistently rated in the top 10% of all speakers at these events. Tim was selected by Microsoft as a speaker for the International .NET Association and speaks at events world-wide on Microsoft's behalf. Tim has done keynote demos at big Microsoft events and product launches for numerous Microsoft executives including Bill Gates and Steve Ballmer.</p><p>Tim founded <a href="http://www.interknowlogy.com">InterKnowlogy</a>, experts in Microsoft .NET and Microsoft Platforms, and <a href="http://actus-software.com">Actus Interactive Software</a>, and has 25&#43; years experience including serving on a Microsoft product team as a development lead on an architecture team. Tim is a Microsoft Regional Director, an MVP and serves on multiple Microsoft councils and boards like the Microsoft .NET Partner Advisory Council.</p><h5>Resources we recommend you check out</h5><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113744" target="_blank">Download the Tools for Windows 8 App Development</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express 2012 for Windows 8</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">Start building your own Apps for Windows 8</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:831847f404e84c5681b3a0c7016bb4f2">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Platform</comments>
      <itunes:summary>John Sheehan and Tim Huckaby discuss the developer platform for Windows 8.&amp;nbsp; John covers his biggest challenges and proudest moments, and urges developers to stop watching videos and begin building apps.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Ready to Get Started? Visit the Windows Developer Center for a myriad of sample, docs and guidelines Join the GenerationApp program and get a jumpstart building your Windows Store app. &amp;nbsp; About John John Sheehan is a Partner Architect on the Windows team, where he drives the architecture of the Windows 8 Application Model.&amp;nbsp; Before joining the Windows team, John was an Architect in the Server and Tools Business at Microsoft.&amp;nbsp; As an STB architect, John was responsible for developing and evangelizing Microsoft Application Virtualization (App-V).&amp;nbsp; John joined Microsoft as part of the Softricity acquisition.&amp;nbsp; At Softricity, he was Chief Architect.&amp;nbsp; In that role, he was responsible for development of SoftGrid, the industry-leading application virtualization product focused on dynamic application delivery for Windows desktops and Terminal Services. Before joining Microsoft, John was an Architect at Xevo Corporation, where he led the development of the core application provisioning system.&amp;nbsp; Prior to Xevo, John was CTO of ResumeCard, an ASP providing technology and services to the recruiting industry.&amp;nbsp; John started his engineering career working in the automotive industry, where he built vision systems that automated inspection and integrity validation on automotive assembly lines. About Tim Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp;amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &amp;quot;Pioneer of the Smart Client Revolution&amp;quot; by the press. Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technolo</itunes:summary>
      <itunes:duration>235</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Platform</link>
      <pubDate>Wed, 19 Sep 2012 20:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Platform</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform.mp3" expression="full" duration="235" fileSize="3777296" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform.mp4" expression="full" duration="235" fileSize="22463214" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform.webm" expression="full" duration="235" fileSize="9446055" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform.wma" expression="full" duration="235" fileSize="1918579" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform.wmv" expression="full" duration="235" fileSize="19351127" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform_high.mp4" expression="full" duration="235" fileSize="48850213" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform_mid.mp4" expression="full" duration="235" fileSize="34221882" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform_Source.wmv" expression="full" duration="235" fileSize="233994723" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform.ism/manifest" expression="full" duration="235" fileSize="8606" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/b749/0674e29c-d0da-4eec-8049-c775012eb749/BytesbyMSDNWin8Platform.wmv" length="19351127" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Bytes by MSDN, ChrisCaldwell</dc:creator>
      <itunes:author>Bytes by MSDN, ChrisCaldwell</itunes:author>
      <slash:comments>9</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Platform/RSS</wfw:commentRss>
      <category>Bytes by MSDN</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>_techmeme</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Windows Store now open to developers from 120 different markets!</title>
      <description><![CDATA[<p>The Windows Store blog announced today that the store is now open to a massive number of developers, from across 120 different markets. From their post:</p><blockquote><em>Today's an especially great day to be a developer. We're very excited to announce the last significant milestone in the rollout of the Windows Store before the general availability of Windows 8 on October 26. The Store is now open for app submissions from all developers – individuals and companies – in our supported markets, and we've added 82 more app submission markets! Now, developers from </em><a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh694064.aspx#account_countries" target="_blank">120 markets</a><em> can publish Windows Store apps. -- Antoine</em></blockquote><p>The&nbsp;post goes on to point out some great deals, including:</p><blockquote>All <a href="https://msdn.microsoft.com/en-us/subscriptions/buy/buy.aspx" target="_blank">eligible MSDN subscribers</a> receive a free, one-year Windows Store developer account as part of their MSDN benefits. (Eligible subscriptions include Visual Studio Professional, Test Professional, Premium, Ultimate, and BizSpark.) We have a program for students—<a href="https://www.dreamspark.com/" target="_blank">DreamSpark</a>—that similarly waives the subscription fee. And we have an offer for businesses in our <a href="http://www.bizspark.com/about" target="_blank">BizSpark</a> program, as well.</blockquote><p>Check out <a href="http://blogs.msdn.com/b/windowsstore/archive/2012/09/11/windows-store-now-open-to-all-developers.aspx">their post</a> for more info, or <a href="https://appdev.microsoft.com/StorePortals/"><strong>head right over to the site to sign up</strong></a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:2eb1d62a58b74cf49778a0ca0183d66f">]]></description>
      <comments>http://channel9.msdn.com/Blogs/C9Team/Windows-Store-now-open-to-developers-from-120-different-markets</comments>
      <itunes:summary>The Windows Store blog announced today that the store is now open to a massive number of developers, from across 120 different markets. From their post: Today&#39;s an especially great day to be a developer. We&#39;re very excited to announce the last significant milestone in the rollout of the Windows Store before the general availability of Windows 8 on October 26. The Store is now open for app submissions from all developers – individuals and companies – in our supported markets, and we&#39;ve added 82 more app submission markets! Now, developers from 120 markets can publish Windows Store apps. -- AntoineThe&amp;nbsp;post goes on to point out some great deals, including: All eligible MSDN subscribers receive a free, one-year Windows Store developer account as part of their MSDN benefits. (Eligible subscriptions include Visual Studio Professional, Test Professional, Premium, Ultimate, and BizSpark.) We have a program for students—DreamSpark—that similarly waives the subscription fee. And we have an offer for businesses in our BizSpark program, as well.Check out their post for more info, or head right over to the site to sign up </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/C9Team/Windows-Store-now-open-to-developers-from-120-different-markets</link>
      <pubDate>Wed, 12 Sep 2012 23:34:10 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/C9Team/Windows-Store-now-open-to-developers-from-120-different-markets</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/ee8c0cc0-fa02-4fc1-8dcb-6b616c61bc91.png" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/6e2c2290-63b8-463d-afeb-5cf39124bde2.png" height="124" width="220"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/5210d794-dd8b-4717-b17d-0a6c5ad6adb0.png" height="288" width="512"></media:thumbnail>      
      <dc:creator>Duncan Mackenzie</dc:creator>
      <itunes:author>Duncan Mackenzie</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/C9Team/Windows-Store-now-open-to-developers-from-120-different-markets/RSS</wfw:commentRss>
      <category>Windows</category>
      <category>_techmeme</category>
      <category>Windows Store App</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 6) When does an Application Start?</title>
      <description><![CDATA[<p><strong>Abstract:</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a><br>When does an application start in a blank and navigation template and where can you start writing your code for your app? Tune in for this helpful how-to from <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117941">Michael Palermo</a>.</p><p><strong>Next Steps:</strong><br><strong>Step #1 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Download the Tools for Windows 8 App Development</a><br><strong>Step #2 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express for Windows 8</a><br><strong>Step #3 –</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank">Start building your own Apps for Windows 8</a></p><p><a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838">iTunes</a>, <a href="http://social.zune.net/podcast/DevRadio-(Video)-Channel-9/9c81fe03-fee0-4902-b2cc-61339d607af6">Zune</a>, or <a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4">RSS</a></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Websites:</strong></p><ul><li><a href="http://msdn.microsoft.com/library/windows/apps/br211386">Getting started with Windows 8 Apps</a> </li><li><a href="http://msdn.microsoft.com/library/windows/apps/br230836">How to Sell Your Apps and Make Money in the Windows Store</a> </li><li><a href="http://www.msdnevents.com/">Attend a Windows 8 Developer Camp and Hackathon in your area!</a> </li></ul><p><strong>Blogs &amp; Articles:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117941">Michael Palermo’s Blog</a> </li></ul><p><strong>Videos:</strong></p><ul><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-time-Part1-Getting-Started" target="_blank">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part1) Getting Started</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-2-Using-a-Blank-Template">(Part 2) Using a Blank Template</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-3-Adding-HTML5-Content">(Part 3) Adding HTML5 Content</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-4-Simple-Styling-Techniques">(Part 4) Simple Styling Techniques</a> </li><li><a href="Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-5-Adding-Behaviors-using-JavaScript" target="_blank">(Part 5) Adding Behaviors using JavaScript</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://msdn.microsoft.com/en-us/jj206431">Windows 8 Release Preview Virtual Labs</a> </li></ul><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:6eadc68de4be402b8e10a0ca00df2744">]]></description>
      <comments>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-6-When-does-an-Application-Start</comments>
      <itunes:summary>Abstract: When does an application start in a blank and navigation template and where can you start writing your code for your app? Tune in for this helpful how-to from Michael Palermo. Next Steps:Step #1 – Download the Tools for Windows 8 App DevelopmentStep #2 – Download Visual Studio Express for Windows 8Step #3 – Start building your own Apps for Windows 8  Subscribe to our podcast via iTunes, Zune, or RSS If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Windows 8 Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Blogs &amp;amp; Articles: Michael Palermo’s Blog Videos: Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part1) Getting Started (Part 2) Using a Blank Template (Part 3) Adding HTML5 Content (Part 4) Simple Styling Techniques (Part 5) Adding Behaviors using JavaScript Virtual Labs: Windows 8 Release Preview Virtual Labs &amp;nbsp; </itunes:summary>
      <itunes:duration>239</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-6-When-does-an-Application-Start</link>
      <pubDate>Wed, 12 Sep 2012 16:20:20 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-6-When-does-an-Application-Start</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart.mp3" expression="full" duration="239" fileSize="3839387" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart.mp4" expression="full" duration="239" fileSize="24522067" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart.webm" expression="full" duration="239" fileSize="7565147" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart.wma" expression="full" duration="239" fileSize="1951623" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart_high.mp4" expression="full" duration="239" fileSize="54815441" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart_mid.mp4" expression="full" duration="239" fileSize="37951265" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart_Source.wmv" expression="full" duration="239" fileSize="54047139" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/3f55/0044da0a-18ae-4816-b5f7-cc060b663f55/DevRadioWin8WhenDoesAppStart_Source.wmv" length="54047139" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Michael Palermo, DevRadio, ChrisCaldwell</dc:creator>
      <itunes:author>Michael Palermo, DevRadio, ChrisCaldwell</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-6-When-does-an-Application-Start/RSS</wfw:commentRss>
      <category>Tips</category>
      <category>Tips tricks</category>
      <category>Visual Studio</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>Visual Studio 2012</category>
      <category>Windows Store App</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>Windows 8 Developer Opportunity</title>
      <description><![CDATA[<p>Mark Hindsbo, VP, Developer &amp; Platform Evangelism discusses “the <a href="http://msdn.microsoft.com/en-US/windows">Windows 8</a> first mover advantage” for developers.&nbsp; He shares information, with Tim Huckaby, about the staggering number of Windows 8 devices that will be running applications over the next 12 months, and the Windows Store user experience for consumers and enterprise.&nbsp;&nbsp; Millions of consumers await Windows 8 apps; visit <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864">GenerationApp</a> for help getting your app to market.<br><strong><br>Ready to Get Started?</strong></p><ol><li><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a>Visit the <a href="http://dev.windows.com" target="_blank">Windows Developer Center</a> for a myriad of sample, docs and guidelines</strong> </li><li><strong>Join the <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">GenerationApp</a> program and get a jumpstart building your Windows Store app. </strong></li></ol><p>&nbsp;</p><p><strong>About Mark</strong></p><p><a href="http://files.channel9.msdn.com/thumbnail/08dc0393-3212-413a-8517-534f429c265c.JPG" rel="lightbox"><img title="IMG_8341MarkHindsbo" src="http://files.channel9.msdn.com/thumbnail/08dc0393-3212-413a-8517-534f429c265c.JPG" alt="IMG_8341MarkHindsbo" width="55" height="57"></a><br>Mark Hindsbo is the Vice President of Microsoft’s Developer &amp; Platform Evangelism Group (DPE) in the US, and a member of the North American Leadership team. DPE is responsible for driving excitement and adoption of Microsoft technologies, with developers and other technical communities. Mark and his team works with customers and partners, throughout the United States, to build the next generation of software solutions.&nbsp;&nbsp;</p><p>Mark originally joined Microsoft in Denmark around the birth of Microsoft’s .NET technology and vision. Here he built and led the local DPE group and was part of the subsidiary leadership team. He has also worked in Microsoft’s corporate headquarter in various roles; most recently as responsible for worldwide field strategy and operations in DPE. Prior to joining Microsoft he was a partner and co-founder of a Danish innovation consulting company and has also worked as a management consultant for the Boston Consulting Group. Mark holds a Master of Science in applied physics &amp; mathematics from the Technical University of Denmark.</p><p>Mark is married and has three children that he tries to spend as much time with as possible. He holds a 4<sup>th</sup>degree black belt in Karate that he tries to maintain in his scarce spare time where he also enjoys reading a good book.</p><p><strong>About Tim</strong></p><p><img title="" src="http://i.msdn.microsoft.com/jj554733.Tim_Huckaby(en-us,MSDN.10).jpg" alt=""></p><p>Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &quot;Pioneer of the Smart Client Revolution&quot; by the press.</p><p>Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Microsoft technologies at technology events like Microsoft Tech Ed, Product Launch events, Dev Days, MEC, World Wide Partner Conference, MGB, MGX, and the PDC, along with 3rd party technology conferences all over the world is consistently rated in the top 10% of all speakers at these events. Tim was selected by Microsoft as a speaker for the International .NET Association and speaks at events world-wide on Microsoft's behalf. Tim has done keynote demos at big Microsoft events and product launches for numerous Microsoft executives including Bill Gates and Steve Ballmer.</p><p>Tim founded <a href="http://www.interknowlogy.com">InterKnowlogy</a>, experts in Microsoft .NET and Microsoft Platforms, and <a href="http://actus-software.com">Actus Interactive Software</a>, and has 25&#43; years experience including serving on a Microsoft product team as a development lead on an architecture team. Tim is a Microsoft Regional Director, an MVP and serves on multiple Microsoft councils and boards like the Microsoft .NET Partner Advisory Council.</p><h5>Resources we recommend you check out</h5><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113744" target="_blank">Download the Tools for Windows 8 App Development</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express 2012 for Windows 8</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">Start building your own Apps for Windows 8</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:83004d9015044806950ca0c701686155">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Developer-Opportunity</comments>
      <itunes:summary>Mark Hindsbo, VP, Developer &amp;amp; Platform Evangelism discusses “the Windows 8 first mover advantage” for developers.&amp;nbsp; He shares information, with Tim Huckaby, about the staggering number of Windows 8 devices that will be running applications over the next 12 months, and the Windows Store user experience for consumers and enterprise.&amp;nbsp;&amp;nbsp; Millions of consumers await Windows 8 apps; visit GenerationApp for help getting your app to market.Ready to Get Started? Visit the Windows Developer Center for a myriad of sample, docs and guidelines Join the GenerationApp program and get a jumpstart building your Windows Store app. &amp;nbsp; About Mark Mark Hindsbo is the Vice President of Microsoft’s Developer &amp;amp; Platform Evangelism Group (DPE) in the US, and a member of the North American Leadership team. DPE is responsible for driving excitement and adoption of Microsoft technologies, with developers and other technical communities. Mark and his team works with customers and partners, throughout the United States, to build the next generation of software solutions.&amp;nbsp;&amp;nbsp; Mark originally joined Microsoft in Denmark around the birth of Microsoft’s .NET technology and vision. Here he built and led the local DPE group and was part of the subsidiary leadership team. He has also worked in Microsoft’s corporate headquarter in various roles; most recently as responsible for worldwide field strategy and operations in DPE. Prior to joining Microsoft he was a partner and co-founder of a Danish innovation consulting company and has also worked as a management consultant for the Boston Consulting Group. Mark holds a Master of Science in applied physics &amp;amp; mathematics from the Technical University of Denmark. Mark is married and has three children that he tries to spend as much time with as possible. He holds a 4thdegree black belt in Karate that he tries to maintain in his scarce spare time where he also enjoys reading a good book. About Tim  Tim Huckaby is focused on </itunes:summary>
      <itunes:duration>448</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Developer-Opportunity</link>
      <pubDate>Mon, 10 Sep 2012 02:59:14 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Developer-Opportunity</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp.mp3" expression="full" duration="448" fileSize="7181181" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp.mp4" expression="full" duration="448" fileSize="43218235" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp.webm" expression="full" duration="448" fileSize="18055490" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp.wma" expression="full" duration="448" fileSize="3636867" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp.wmv" expression="full" duration="448" fileSize="33115133" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp_high.mp4" expression="full" duration="448" fileSize="93797315" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp_mid.mp4" expression="full" duration="448" fileSize="65825959" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp_Source.wmv" expression="full" duration="448" fileSize="447905468" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp.ism/manifest" expression="full" duration="448" fileSize="8526" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/730e/59241432-a889-48be-b132-ba8e03ca730e/BytesbyMSDNWin8Opp.wmv" length="33115133" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Bytes by MSDN, ChrisCaldwell</dc:creator>
      <itunes:author>Bytes by MSDN, ChrisCaldwell</itunes:author>
      <slash:comments>6</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Developer-Opportunity/RSS</wfw:commentRss>
      <category>Bytes by MSDN</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>_techmeme</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Bytes by MSDN: Windows 8 Productivity</title>
      <description><![CDATA[<p>Richard Campbell, host of .NET Rocks, and Tim Huckaby discuss the “new paradigm of productivity” <a href="http://msdn.microsoft.com/en-US/windows">Windows 8</a> brings to enterprise.&nbsp; Richard refers to Windows 8 as a major milestone that allows for more natural and efficient collaboration – a total game changer.&nbsp; After the video, grab Windows 8 <a href="http://msdn.microsoft.com/en-US/windows" target="_blank">tools</a> to begin building <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">apps</a>.&nbsp;&nbsp;</p><p><strong>Ready to Get Started?</strong></p><ol><li><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a>Visit the <a href="http://dev.windows.com" target="_blank">Windows Developer Center</a> for a myriad of sample, docs and guidelines</strong> </li><li><strong>Join the <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">GenerationApp</a> program and get a jumpstart building your Windows Store app. </strong></li></ol><p>&nbsp;</p><p><strong>About Richard</strong></p><p><a href="http://files.channel9.msdn.com/thumbnail/c56cdd06-1056-4c4d-84f0-1d6ce5eb4871.JPG" rel="lightbox"><img title="Richard" src="http://files.channel9.msdn.com/thumbnail/c56cdd06-1056-4c4d-84f0-1d6ce5eb4871.JPG" alt="Richard" width="58" height="60"></a><br><br>Richard Campbell has been involved with microcomputers and software since 1977. His career has spanned the industry both on the hardware and software sides, from manufacturing to sales, service, game development, line-of-business software and large scale systems. Today Richard is on the board of directors for Telerik (<a href="http://www.telerik.com">www.telerik.com</a>), a leading vendor of development, team productivity, automated testing tools, UI components and content management solutions in the Microsoft space. He is one of the co-founders of Strangeloop Networks (<a href="http://www.strangeloopnetworks.com">www.strangeloopnetworks.com</a>), developing an appliance for web site performance. He's a partner in PWOP Productions, creating a variety of multimedia programs including '.NET Rocks!, the Internet Audio Talk Show for .NET Developers' (<a href="http://www.dotnetrocks.com">www.dotnetrocks.com</a>) a podcast produced twice a week for more than 150,000 listeners in 120 countries. In addition he's the host of 'RunAs Radio' (<a href="http://www.runasradio.com">www.runasradio.com</a>), a podcast for the IT Professional using Microsoft technologies. In the fall of 2011, he helped launch a third podcast called 'The Tablet Show' (<a href="http://www.thetabletshow.com">www.thetabletshow.com</a>), focused on the emerging tablet and mobile market. Richard is also a Microsoft Regional Director, MVP and speaks at conferences around the world.</p><p><br><br><strong>About Tim</strong></p><p><img title="" src="http://i.msdn.microsoft.com/jj554733.Tim_Huckaby(en-us,MSDN.10).jpg" alt=""></p><p>Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &quot;Pioneer of the Smart Client Revolution&quot; by the press.</p><p>Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Microsoft technologies at technology events like Microsoft Tech Ed, Product Launch events, Dev Days, MEC, World Wide Partner Conference, MGB, MGX, and the PDC, along with 3rd party technology conferences all over the world is consistently rated in the top 10% of all speakers at these events. Tim was selected by Microsoft as a speaker for the International .NET Association and speaks at events world-wide on Microsoft's behalf. Tim has done keynote demos at big Microsoft events and product launches for numerous Microsoft executives including Bill Gates and Steve Ballmer.</p><p>Tim founded <a href="http://www.interknowlogy.com">InterKnowlogy</a>, experts in Microsoft .NET and Microsoft Platforms, and <a href="http://actus-software.com">Actus Interactive Software</a>, and has 25&#43; years experience including serving on a Microsoft product team as a development lead on an architecture team. Tim is a Microsoft Regional Director, an MVP and serves on multiple Microsoft councils and boards like the Microsoft .NET Partner Advisory Council.</p><h5>Resources we recommend you check out</h5><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113744" target="_blank">Download the Tools for Windows 8 App Development</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express 2012 for Windows 8</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">Start building your own Apps for Windows 8</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:8abdb402cf3947ce89c7a0c70181b62f">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Productivity</comments>
      <itunes:summary>Richard Campbell, host of .NET Rocks, and Tim Huckaby discuss the “new paradigm of productivity” Windows 8 brings to enterprise.&amp;nbsp; Richard refers to Windows 8 as a major milestone that allows for more natural and efficient collaboration – a total game changer.&amp;nbsp; After the video, grab Windows 8 tools to begin building apps.&amp;nbsp;&amp;nbsp; Ready to Get Started? Visit the Windows Developer Center for a myriad of sample, docs and guidelines Join the GenerationApp program and get a jumpstart building your Windows Store app. &amp;nbsp; About Richard Richard Campbell has been involved with microcomputers and software since 1977. His career has spanned the industry both on the hardware and software sides, from manufacturing to sales, service, game development, line-of-business software and large scale systems. Today Richard is on the board of directors for Telerik (www.telerik.com), a leading vendor of development, team productivity, automated testing tools, UI components and content management solutions in the Microsoft space. He is one of the co-founders of Strangeloop Networks (www.strangeloopnetworks.com), developing an appliance for web site performance. He&#39;s a partner in PWOP Productions, creating a variety of multimedia programs including &#39;.NET Rocks!, the Internet Audio Talk Show for .NET Developers&#39; (www.dotnetrocks.com) a podcast produced twice a week for more than 150,000 listeners in 120 countries. In addition he&#39;s the host of &#39;RunAs Radio&#39; (www.runasradio.com), a podcast for the IT Professional using Microsoft technologies. In the fall of 2011, he helped launch a third podcast called &#39;The Tablet Show&#39; (www.thetabletshow.com), focused on the emerging tablet and mobile market. Richard is also a Microsoft Regional Director, MVP and speaks at conferences around the world. About Tim  Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp;amp; WPF on the computer, the Surface, and </itunes:summary>
      <itunes:duration>466</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Productivity</link>
      <pubDate>Mon, 10 Sep 2012 02:51:09 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Productivity</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity.mp3" expression="full" duration="466" fileSize="7466642" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity.mp4" expression="full" duration="466" fileSize="44416547" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity.webm" expression="full" duration="466" fileSize="18828363" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity.wma" expression="full" duration="466" fileSize="3778055" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity.wmv" expression="full" duration="466" fileSize="46638929" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity_high.mp4" expression="full" duration="466" fileSize="97251387" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity_mid.mp4" expression="full" duration="466" fileSize="67828353" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity_Source.wmv" expression="full" duration="466" fileSize="465803362" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity.ism/manifest" expression="full" duration="466" fileSize="8670" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/1ae4/12816ecf-4e05-4eda-b772-8529ad411ae4/BytesbyMSDNWin8Productivity.wmv" length="46638929" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Bytes by MSDN, ChrisCaldwell</dc:creator>
      <itunes:author>Bytes by MSDN, ChrisCaldwell</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-Productivity/RSS</wfw:commentRss>
      <category>Bytes by MSDN</category>
      <category>Tim Huckaby</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Bytes by MSDN: Windows 8 User Experience Design</title>
      <description><![CDATA[<p>David Kelley, Principal UX Architect for [wire] stone, shares his experiences building apps for Windows 8.&nbsp; He and Tim Huckaby discuss building digital experiences that connect with app users, and urge fellow developers to begin doing the same leveraging the <a href="http://dev.windows.com/" target="_blank">Windows devcenter</a> and resources found at <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">GenerationApp</a>.&nbsp;&nbsp;</p><p><strong>Ready to Get Started?</strong></p><ol><li><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a>Visit the <a href="http://dev.windows.com" target="_blank">Windows Developer Center</a> for a myriad of sample, docs and guidelines</strong> </li><li><strong>Join the <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">GenerationApp</a> program and get a jumpstart building your Windows Store app. </strong></li></ol><p>&nbsp;</p><p><strong>About David</strong></p><p><a href="http://files.channel9.msdn.com/thumbnail/2c3d492a-91fc-4b18-b6c9-4c2f8273e68a.JPG" rel="lightbox"><img title="David" src="http://files.channel9.msdn.com/thumbnail/2c3d492a-91fc-4b18-b6c9-4c2f8273e68a.JPG" alt="David" width="59" height="61"></a><br><br>David has been building Targeted Customer eXperience's primarily on the web and offline for over 12&#43; years.&nbsp; David is currently the Principal UX (User eXperience) Architect for [wire] stone and a closet futurist writing for a number of blogs including vNext, Interact Seattle, and more.&nbsp; Currently his main focus is in the immersive touch experiences such as retail kiosks or touch walls and mobile applications including windows 8 and windows phone.&nbsp; Other Career highlight's include the Silverlight Bill Gates demo at TechEd 08, the Entertainment Tonight Emmy Award site for the Silverlight launch and becoming a Silverlight MVP in 2009 as well as his work with [wire] stone including the Nike Touch-wall and the Microsoft retail store.&nbsp; In his spare time David helps run Interact Seattle (Seattle's Designer Developer Interaction Group) as well as vNext Global.&nbsp; Outside of work David enjoys the outdoors, family, travel as well as all things transhumanist.<br><br><strong>About Tim</strong></p><p><img title="" src="http://i.msdn.microsoft.com/jj554733.Tim_Huckaby(en-us,MSDN.10).jpg" alt=""></p><p>Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &quot;Pioneer of the Smart Client Revolution&quot; by the press.</p><p>Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microsoft Corporation. Tim has done presentations on Microsoft technologies at technology events like Microsoft Tech Ed, Product Launch events, Dev Days, MEC, World Wide Partner Conference, MGB, MGX, and the PDC, along with 3rd party technology conferences all over the world is consistently rated in the top 10% of all speakers at these events. Tim was selected by Microsoft as a speaker for the International .NET Association and speaks at events world-wide on Microsoft's behalf. Tim has done keynote demos at big Microsoft events and product launches for numerous Microsoft executives including Bill Gates and Steve Ballmer.</p><p>Tim founded <a href="http://www.interknowlogy.com">InterKnowlogy</a>, experts in Microsoft .NET and Microsoft Platforms, and <a href="http://actus-software.com">Actus Interactive Software</a>, and has 25&#43; years experience including serving on a Microsoft product team as a development lead on an architecture team. Tim is a Microsoft Regional Director, an MVP and serves on multiple Microsoft councils and boards like the Microsoft .NET Partner Advisory Council.</p><h5>Resources we recommend you check out</h5><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113744" target="_blank">Download the Tools for Windows 8 App Development</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express 2012 for Windows 8</a> </li><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115864" target="_blank">Start building your own Apps for Windows 8</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:6ff9b0b03f0140e591daa0c701848200">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Experience-Design</comments>
      <itunes:summary>David Kelley, Principal UX Architect for [wire] stone, shares his experiences building apps for Windows 8.&amp;nbsp; He and Tim Huckaby discuss building digital experiences that connect with app users, and urge fellow developers to begin doing the same leveraging the Windows devcenter and resources found at GenerationApp.&amp;nbsp;&amp;nbsp; Ready to Get Started? Visit the Windows Developer Center for a myriad of sample, docs and guidelines Join the GenerationApp program and get a jumpstart building your Windows Store app. &amp;nbsp; About David David has been building Targeted Customer eXperience&#39;s primarily on the web and offline for over 12&amp;#43; years.&amp;nbsp; David is currently the Principal UX (User eXperience) Architect for [wire] stone and a closet futurist writing for a number of blogs including vNext, Interact Seattle, and more.&amp;nbsp; Currently his main focus is in the immersive touch experiences such as retail kiosks or touch walls and mobile applications including windows 8 and windows phone.&amp;nbsp; Other Career highlight&#39;s include the Silverlight Bill Gates demo at TechEd 08, the Entertainment Tonight Emmy Award site for the Silverlight launch and becoming a Silverlight MVP in 2009 as well as his work with [wire] stone including the Nike Touch-wall and the Microsoft retail store.&amp;nbsp; In his spare time David helps run Interact Seattle (Seattle&#39;s Designer Developer Interaction Group) as well as vNext Global.&amp;nbsp; Outside of work David enjoys the outdoors, family, travel as well as all things transhumanist.About Tim  Tim Huckaby is focused on the Natural User Interface (NUI) in Rich Client and Rich Internet Application (RIA) Technologies like Silverlight &amp;amp; WPF on the computer, the Surface, and Windows Phone 7. He has been called a &amp;quot;Pioneer of the Smart Client Revolution&amp;quot; by the press. Tim has been awarded multiple times for the highest rated Keynote and technical presentations for Microsoft and numerous other technology conferences around the world by Microso</itunes:summary>
      <itunes:duration>347</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Experience-Design</link>
      <pubDate>Mon, 10 Sep 2012 02:50:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Experience-Design</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign.mp3" expression="full" duration="347" fileSize="5568292" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign.mp4" expression="full" duration="347" fileSize="32988752" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign.webm" expression="full" duration="347" fileSize="13851629" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign.wma" expression="full" duration="347" fileSize="2819779" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign.wmv" expression="full" duration="347" fileSize="40799663" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign_high.mp4" expression="full" duration="347" fileSize="72337635" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign_mid.mp4" expression="full" duration="347" fileSize="50591505" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign_Source.wmv" expression="full" duration="347" fileSize="346275926" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign.ism/manifest" expression="full" duration="347" fileSize="8638" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/8d34/121f0d88-8b76-4296-a05b-bc557b138d34/BytesbyMSDNWin8userdesign.wmv" length="40799663" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Bytes by MSDN, ChrisCaldwell</dc:creator>
      <itunes:author>Bytes by MSDN, ChrisCaldwell</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Bytes+by+MSDN/Bytes-by-MSDN-Windows-8-User-Experience-Design/RSS</wfw:commentRss>
      <category>Bytes by MSDN</category>
      <category>Tim Huckaby</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Microsoft DevRadio: Reasons Why You Should Develop a Windows 8 App</title>
      <description><![CDATA[<p><strong>Abstract:</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a><br><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117399" target="_blank">Andrew Duthie</a> and <a href="http://blogs.msdn.com/b/jennifer/" target="_blank">Jennifer Marsman</a> join us for today’s show as they discuss their top reasons for developing applications for <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Windows 8</a>. From market potential and size, optimized discovery, flexible and money making opportunities, as well as&nbsp;<a href="http://aka.ms/mygreatidea" target="_blank">free tools and guidance</a>---&nbsp; there’s no better time than right now to develop your Windows 8 app.</p><p><strong>Next Steps:</strong><br><strong>Step #1 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Download the Tools for Windows 8 App Development</a><br><strong>Step #2 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express for Windows 8</a><br><strong>Step #3 –</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank">Start building your own Apps for Windows 8</a></p><p><a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838">iTunes</a>, <a href="http://social.zune.net/podcast/DevRadio-(Video)-Channel-9/9c81fe03-fee0-4902-b2cc-61339d607af6">Zune</a>, or <a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4">RSS</a></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Websites:</strong></p><ul><li><a href="http://msdn.microsoft.com/library/windows/apps/br211386">Getting started with Windows 8 Apps</a> </li><li><a href="http://msdn.microsoft.com/library/windows/apps/br230836">How to Sell Your Apps and Make Money in the Windows Store</a> </li><li><a href="http://www.msdnevents.com/">Attend a Windows 8 Developer Camp and Hackathon in your area!</a> </li></ul><p><strong>Blogs &amp; Articles:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117399" target="_blank">Andrew Duthie’s Blog</a> </li><li><a href="http://blogs.msdn.com/b/jennifer/" target="_blank">Jennifer Marsman</a> </li><li>“<a href="http://blogs.msdn.com/b/windowsstore/archive/2012/04/25/deploying-metro-style-apps-to-businesses.aspx" target="_blank">How to roll out a WinRT app to your enterprise without going through the Windows Store</a>” </li></ul><p><strong>Videos:</strong></p><ul><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Top-10-Windows-8-Secrets-for-App-Success" target="_blank">Microsoft DevRadio: Top 10 Windows 8 Secrets for App Success</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Building-and-Publishing-Great-Apps-in-Windows-8">Microsoft DevRadio: Building and Publishing Great Apps in Windows 8</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-How-to-Convert-Your-Windows-Phone-App-into-a-Windows-8-Application">Microsoft DevRadio: How to Convert Your Windows Phone App into a Windows 8 Application</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Why-Wait-Develop-for-Windows-8-Now" target="_blank">Microsoft DevRadio: Why Wait? Develop for Windows 8 Now!</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://msdn.microsoft.com/en-us/jj206431">Windows 8 Release Preview Virtual Labs</a> </li></ul><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:8401d880a8ec4932b52fa0c300deb64c">]]></description>
      <comments>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Reasons-Why-You-Should-Develop-a-Windows-8-App</comments>
      <itunes:summary>Abstract: Andrew Duthie and Jennifer Marsman join us for today’s show as they discuss their top reasons for developing applications for Windows 8. From market potential and size, optimized discovery, flexible and money making opportunities, as well as&amp;nbsp;free tools and guidance---&amp;nbsp; there’s no better time than right now to develop your Windows 8 app. Next Steps:Step #1 – Download the Tools for Windows 8 App DevelopmentStep #2 – Download Visual Studio Express for Windows 8Step #3 – Start building your own Apps for Windows 8  Subscribe to our podcast via iTunes, Zune, or RSS If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Windows 8 Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Blogs &amp;amp; Articles: Andrew Duthie’s Blog Jennifer Marsman “How to roll out a WinRT app to your enterprise without going through the Windows Store” Videos: Microsoft DevRadio: Top 10 Windows 8 Secrets for App Success Microsoft DevRadio: Building and Publishing Great Apps in Windows 8 Microsoft DevRadio: How to Convert Your Windows Phone App into a Windows 8 Application Microsoft DevRadio: Why Wait? Develop for Windows 8 Now! Virtual Labs: Windows 8 Release Preview Virtual Labs &amp;nbsp; </itunes:summary>
      <itunes:duration>1853</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Reasons-Why-You-Should-Develop-a-Windows-8-App</link>
      <pubDate>Wed, 05 Sep 2012 16:12:43 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Reasons-Why-You-Should-Develop-a-Windows-8-App</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps.mp3" expression="full" duration="1853" fileSize="29662873" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps.mp4" expression="full" duration="1853" fileSize="190534632" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps.webm" expression="full" duration="1853" fileSize="57943605" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps.wma" expression="full" duration="1853" fileSize="15000999" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps_high.mp4" expression="full" duration="1853" fileSize="416813063" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps_mid.mp4" expression="full" duration="1853" fileSize="289014345" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps_Source.wmv" expression="full" duration="1853" fileSize="456272823" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/463b/d27661c8-4d7c-4653-8d86-1ca10638463b/DevRadioWhyYouShouldDevelopW8Apps_Source.wmv" length="456272823" type="video/x-ms-wmv"></enclosure>
      <dc:creator>G. Andrew Duthie, Jennifer Marsman, DevRadio, ChrisCaldwell</dc:creator>
      <itunes:author>G. Andrew Duthie, Jennifer Marsman, DevRadio, ChrisCaldwell</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Reasons-Why-You-Should-Develop-a-Windows-8-App/RSS</wfw:commentRss>
      <category>Tips</category>
      <category>Tips tricks</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>Microsoft DevRadio: Top 10 Windows 8 Secrets for App Success</title>
      <description><![CDATA[<p><strong>Abstract:</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a><br><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117399" target="_blank">Andrew Duthie</a> and Chris Bowen share with us their <a href="http://blogs.msdn.com/b/cbowen/archive/2012/08/01/the-top-10-windows-8-secrets-of-app-success.aspx" target="_blank">Top 10 Windows 8 secrets for App success</a>. Tune in as they discuss the incredible money making opportunities available for developers who jump in and develop applications for <a href="http://aka.ms/MyGreatIdea" target="_blank">Windows 8</a>&nbsp;as well as what free tools and services are available to help you along the way.&nbsp;&nbsp;&nbsp;&nbsp;</p><p><strong>Next Steps:</strong><br><strong>Step #1 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Download the Tools for Windows 8 App Development</a><br><strong>Step #2 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express for Windows 8</a><br><strong>Step #3 –</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank">Start building your own Apps for Windows 8</a></p><p><a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838">iTunes</a>, <a href="http://social.zune.net/podcast/DevRadio-(Video)-Channel-9/9c81fe03-fee0-4902-b2cc-61339d607af6">Zune</a>, or <a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4">RSS</a></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Websites:</strong></p><ul><li><a href="http://msdn.microsoft.com/library/windows/apps/br211386">Getting started with Windows 8 Apps</a> </li><li><a href="http://msdn.microsoft.com/library/windows/apps/br230836">How to Sell Your Apps and Make Money in the Windows Store</a> </li><li><a href="http://www.msdnevents.com/">Attend a Windows 8 Developer Camp and Hackathon in your area!</a> </li></ul><p><strong>Blogs &amp; Articles:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117399" target="_blank">Andrew Duthie’s Blog</a> </li><li><a href="http://blogs.msdn.com/b/cbowen/" target="_blank">Chris Bowen’s Blog</a> </li><li>“<a href="http://blogs.msdn.com/b/cbowen/archive/2012/08/01/the-top-10-windows-8-secrets-of-app-success.aspx" target="_blank">The Top 10 Windows 8 Secrets for App Success</a>”&nbsp; </li></ul><p><strong>Videos:</strong></p><ul><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Building-and-Publishing-Great-Apps-in-Windows-8">Microsoft DevRadio: Building and Publishing Great Apps in Windows 8</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-How-to-Convert-Your-Windows-Phone-App-into-a-Windows-8-Application">Microsoft DevRadio: How to Convert Your Windows Phone App into a Windows 8 Application</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Why-Wait-Develop-for-Windows-8-Now" target="_blank">Microsoft DevRadio: Why Wait? Develop for Windows 8 Now!</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://msdn.microsoft.com/en-us/jj206431">Windows 8 Release Preview Virtual Labs</a> </li></ul><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:c9dae2336cc14e6d90b5a0bb01223908">]]></description>
      <comments>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Top-10-Windows-8-Secrets-for-App-Success</comments>
      <itunes:summary>Abstract: Andrew Duthie and Chris Bowen share with us their Top 10 Windows 8 secrets for App success. Tune in as they discuss the incredible money making opportunities available for developers who jump in and develop applications for Windows 8&amp;nbsp;as well as what free tools and services are available to help you along the way.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next Steps:Step #1 – Download the Tools for Windows 8 App DevelopmentStep #2 – Download Visual Studio Express for Windows 8Step #3 – Start building your own Apps for Windows 8  Subscribe to our podcast via iTunes, Zune, or RSS If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Windows 8 Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Blogs &amp;amp; Articles: Andrew Duthie’s Blog Chris Bowen’s Blog “The Top 10 Windows 8 Secrets for App Success”&amp;nbsp; Videos: Microsoft DevRadio: Building and Publishing Great Apps in Windows 8 Microsoft DevRadio: How to Convert Your Windows Phone App into a Windows 8 Application Microsoft DevRadio: Why Wait? Develop for Windows 8 Now! Virtual Labs: Windows 8 Release Preview Virtual Labs &amp;nbsp; </itunes:summary>
      <itunes:duration>1260</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Top-10-Windows-8-Secrets-for-App-Success</link>
      <pubDate>Wed, 29 Aug 2012 11:00:55 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Top-10-Windows-8-Secrets-for-App-Success</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets.mp3" expression="full" duration="1260" fileSize="20162231" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets.mp4" expression="full" duration="1260" fileSize="101175737" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets.webm" expression="full" duration="1260" fileSize="41977636" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets.wma" expression="full" duration="1260" fileSize="10197603" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets_high.mp4" expression="full" duration="1260" fileSize="234200936" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets_mid.mp4" expression="full" duration="1260" fileSize="156178208" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets_Source.wmv" expression="full" duration="1260" fileSize="405029259" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/d13a/857212fa-8f0a-4f6a-89de-8f70d083d13a/DevRadioTop10W8Secrets_Source.wmv" length="405029259" type="video/x-ms-wmv"></enclosure>
      <dc:creator>G. Andrew Duthie, DevRadio, ChrisCaldwell</dc:creator>
      <itunes:author>G. Andrew Duthie, DevRadio, ChrisCaldwell</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Top-10-Windows-8-Secrets-for-App-Success/RSS</wfw:commentRss>
      <category>Tips</category>
      <category>Tips tricks</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 5) Adding Behaviors using JavaScript</title>
      <description><![CDATA[<p><strong>Abstract:</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a><br>In today’s episode <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117941">Michael Palermo</a> shows us how to add simple behaviors to our <a href="http://aka.ms/mygreatidea" target="_blank">Windows 8 apps</a> using JavaScript. <br><strong><br>Next Steps:</strong><br><strong>Step #1 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Download the Tools for Windows 8 App Development</a><br><strong>Step #2 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express for Windows 8</a><br><strong>Step #3 –</strong> <a href="http://aka.ms/30daysToLaunch">Start building your own Apps for Windows 8</a></p><p><strong><a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838">iTunes</a>, <a href="http://social.zune.net/podcast/DevRadio-(Video)-Channel-9/9c81fe03-fee0-4902-b2cc-61339d607af6">Zune</a>, or <a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4">RSS</a></strong></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Websites:</strong></p><ul><li><a href="http://msdn.microsoft.com/library/windows/apps/br211386">Getting started with Windows 8 Apps</a> </li><li><a href="http://msdn.microsoft.com/library/windows/apps/br230836">How to Sell Your Apps and Make Money in the Windows Store</a> </li><li><a href="http://www.msdnevents.com/">Attend a Windows 8 Developer Camp and Hackathon in your area!</a> </li></ul><p><strong>Blogs &amp; Articles:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117941">Michael Palermo’s Blog</a> </li></ul><p><strong>Videos:</strong></p><ul><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-time-Part1-Getting-Started">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part1) Getting Started</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-2-Using-a-Blank-Template" target="_blank">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 2) Using a Blank Template</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-3-Adding-HTML5-Content" target="_blank">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 3) Adding HTML5 Content</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-4-Simple-Styling-Techniques" target="_blank">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 4) Simple Styling Techniques</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://msdn.microsoft.com/en-us/jj206431">Windows 8 Release Preview Virtual Labs</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:8eb9bec0837e4b72ac67a0b3011926f5">]]></description>
      <comments>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-5-Adding-Behaviors-using-JavaScript</comments>
      <itunes:summary>Abstract: In today’s episode Michael Palermo shows us how to add simple behaviors to our Windows 8 apps using JavaScript. Next Steps:Step #1 – Download the Tools for Windows 8 App DevelopmentStep #2 – Download Visual Studio Express for Windows 8Step #3 – Start building your own Apps for Windows 8  Subscribe to our podcast via iTunes, Zune, or RSS If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Windows 8 Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Blogs &amp;amp; Articles: Michael Palermo’s Blog Videos: Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part1) Getting Started Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 2) Using a Blank Template Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 3) Adding HTML5 Content Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 4) Simple Styling Techniques Virtual Labs: Windows 8 Release Preview Virtual Labs </itunes:summary>
      <itunes:duration>287</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-5-Adding-Behaviors-using-JavaScript</link>
      <pubDate>Tue, 28 Aug 2012 12:00:03 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-5-Adding-Behaviors-using-JavaScript</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript.mp3" expression="full" duration="287" fileSize="4604769" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript.mp4" expression="full" duration="287" fileSize="28116860" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript.webm" expression="full" duration="287" fileSize="8212632" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript.wma" expression="full" duration="287" fileSize="2333131" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript_high.mp4" expression="full" duration="287" fileSize="64867858" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript_mid.mp4" expression="full" duration="287" fileSize="44177786" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript_Source.wmv" expression="full" duration="287" fileSize="46599411" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/825e/7547aef2-dbd5-4ad1-87a8-f3b68578825e/DevRadioW8Javascript_Source.wmv" length="46599411" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Michael Palermo, DevRadio, ChrisCaldwell</dc:creator>
      <itunes:author>Michael Palermo, DevRadio, ChrisCaldwell</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-5-Adding-Behaviors-using-JavaScript/RSS</wfw:commentRss>
      <category>JavaScript</category>
      <category>Tips</category>
      <category>Tips tricks</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>TechNet Radio: Virtually Speaking with Yung Chou – (Part 1) Windows Server 2012 – Server Core</title>
      <description><![CDATA[<p>In today’s episode, <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117950" target="_blank">Yung Chou</a> kick starts his <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113726" target="_blank">Windows Server 2012</a>&nbsp;series by focusing on installation options for Server Core. Tune in as he demos for us how to configure and switch to this option from full install mode to the Minimal Server GUI.</p><p><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113726" target="_blank">Download Windows Server 2012</a>&nbsp;</strong></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Resources:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113725" target="_blank">Microsoft Virtual Academy</a> </li><li><strong><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113724" target="_blank">Download Microsoft Private Cloud Evaluation Software</a></strong> </li></ul><p><strong>Websites &amp; Blogs:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117950" target="_blank">Yung Chou’s Blog</a> </li><li><a href="http://blogs.technet.com/b/server-cloud/">Server and Cloud Platform Blog</a> </li><li><a href="http://blogs.technet.com/b/privatecloud/">Private Cloud Architecture Blog</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://bit.ly/u9N9vj ">TechNet Virtual Labs: System Center 2012</a> </li></ul><p><a href="http://twitter.com/technetradio"><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/3806.Twitter.png" alt=" " width="15" height="15" border="0"></a> <a href="http://twitter.com/technetradio">Follow @technetradio</a><br><a href="http://www.facebook.com/MicrosoftTechNetRadio"><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/3487.Facebook.png" alt=" " width="15" height="15" border="0"></a> <a href="http://www.facebook.com/MicrosoftTechNetRadio"><u>Become a Fan @ facebook.com/MicrosoftTechNetRadio</u></a><br><a href="http://channel9.msdn.com/Shows/TechNet&#43;Radio/feed/mp4"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/technet-radio-mp4-channel-9/id546970030">iTunes</a>, <a href="http://social.zune.net/redirect?type=podcastseries&amp;id=d6716efe-a536-4c99-8c29-55f74da852a7">Zune</a>, <a href="http://stitcher.com/s?fid=26282">Stitcher</a>, or <a href="http://channel9.msdn.com/Shows/TechNet&#43;Radio/feed/mp4">RSS</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:41cc4e21e9a14f909358a0b600eb7647">]]></description>
      <comments>http://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Virtually-Speaking-with-Yung-Chou--Part-1-Windows-Server-2012--Server-Core</comments>
      <itunes:summary>In today’s episode, Yung Chou kick starts his Windows Server 2012&amp;nbsp;series by focusing on installation options for Server Core. Tune in as he demos for us how to configure and switch to this option from full install mode to the Minimal Server GUI. Download Windows Server 2012&amp;nbsp; If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Resources: Microsoft Virtual Academy Download Microsoft Private Cloud Evaluation Software Websites &amp;amp; Blogs: Yung Chou’s Blog Server and Cloud Platform Blog Private Cloud Architecture Blog Virtual Labs: TechNet Virtual Labs: System Center 2012  Follow @technetradio Become a Fan @ facebook.com/MicrosoftTechNetRadio Subscribe to our podcast via iTunes, Zune, Stitcher, or RSS </itunes:summary>
      <itunes:duration>1468</itunes:duration>
      <link>http://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Virtually-Speaking-with-Yung-Chou--Part-1-Windows-Server-2012--Server-Core</link>
      <pubDate>Fri, 24 Aug 2012 12:00:08 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Virtually-Speaking-with-Yung-Chou--Part-1-Windows-Server-2012--Server-Core</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore.mp3" expression="full" duration="1468" fileSize="23503054" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore.mp4" expression="full" duration="1468" fileSize="119867011" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore.webm" expression="full" duration="1468" fileSize="40597347" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore.wma" expression="full" duration="1468" fileSize="11888855" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore_high.mp4" expression="full" duration="1468" fileSize="292970492" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore_mid.mp4" expression="full" duration="1468" fileSize="198628534" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore_Source.wmv" expression="full" duration="1468" fileSize="249958513" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/f295/ef9625ef-f03d-42ac-b464-7ee695bbf295/TNRYungChouWS2012ServerCore_Source.wmv" length="249958513" type="video/x-ms-wmv"></enclosure>
      <dc:creator>ChrisCaldwell, TechNet Radio, Yung Chou on Hybrid Cloud</dc:creator>
      <itunes:author>ChrisCaldwell, TechNet Radio, Yung Chou on Hybrid Cloud</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/TechNet+Radio/TechNet-Radio-Virtually-Speaking-with-Yung-Chou--Part-1-Windows-Server-2012--Server-Core/RSS</wfw:commentRss>
      <category>Server Core</category>
      <category>TechNet</category>
      <category>Windows</category>
      <category>Private Cloud</category>
      <category>Windows Server 2012</category>
    </item>
  <item>
      <title>Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 4) Simple Styling Techniques</title>
      <description><![CDATA[<p><strong>Abstract:</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a><br>In today’s episode <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117941">Michael Palermo</a> shows us some simple styling techniques for our <a href="http://aka.ms/mygreatidea" target="_blank">Windows 8 apps</a> using CSS. <br><strong><br>Next Steps:</strong><br><strong>Step #1 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Download the Tools for Windows 8 App Development</a><br><strong>Step #2 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express for Windows 8</a><br><strong>Step #3 –</strong> <a href="http://aka.ms/30daysToLaunch">Start building your own Apps for Windows 8</a></p><p><strong><a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838">iTunes</a>, <a href="http://social.zune.net/podcast/DevRadio-(Video)-Channel-9/9c81fe03-fee0-4902-b2cc-61339d607af6">Zune</a>, or <a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4">RSS</a></strong></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Websites:</strong></p><ul><li><a href="http://msdn.microsoft.com/library/windows/apps/br211386">Getting started with Windows 8 Apps</a> </li><li><a href="http://msdn.microsoft.com/library/windows/apps/br230836">How to Sell Your Apps and Make Money in the Windows Store</a> </li><li><a href="http://www.msdnevents.com/">Attend a Windows 8 Developer Camp and Hackathon in your area!</a> </li></ul><p><strong>Blogs &amp; Articles:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117941">Michael Palermo’s Blog</a> </li></ul><p><strong>Videos:</strong></p><ul><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-time-Part1-Getting-Started">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part1) Getting Started</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-2-Using-a-Blank-Template" target="_blank">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 2) Using a Blank Template</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-3-Adding-HTML5-Content" target="_blank">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 3) Adding HTML5 Content</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Why-Wait-Develop-for-Windows-8-Now">Microsoft DevRadio: Why Wait? Develop for Windows 8 Now!</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://msdn.microsoft.com/en-us/jj206431">Windows 8 Release Preview Virtual Labs</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:c0e998287e5d418b8b8fa0b3011480f4">]]></description>
      <comments>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-4-Simple-Styling-Techniques</comments>
      <itunes:summary>Abstract: In today’s episode Michael Palermo shows us some simple styling techniques for our Windows 8 apps using CSS. Next Steps:Step #1 – Download the Tools for Windows 8 App DevelopmentStep #2 – Download Visual Studio Express for Windows 8Step #3 – Start building your own Apps for Windows 8  Subscribe to our podcast via iTunes, Zune, or RSS If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Windows 8 Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Blogs &amp;amp; Articles: Michael Palermo’s Blog Videos: Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part1) Getting Started Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 2) Using a Blank Template Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 3) Adding HTML5 Content Microsoft DevRadio: Why Wait? Develop for Windows 8 Now! Virtual Labs: Windows 8 Release Preview Virtual Labs </itunes:summary>
      <itunes:duration>255</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-4-Simple-Styling-Techniques</link>
      <pubDate>Wed, 22 Aug 2012 12:00:11 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-4-Simple-Styling-Techniques</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling.mp3" expression="full" duration="255" fileSize="4087182" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling.mp4" expression="full" duration="255" fileSize="25280727" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling.webm" expression="full" duration="255" fileSize="7524495" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling.wma" expression="full" duration="255" fileSize="2071783" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling_high.mp4" expression="full" duration="255" fileSize="57780445" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling_mid.mp4" expression="full" duration="255" fileSize="39685567" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling_Source.wmv" expression="full" duration="255" fileSize="44831219" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/b57f/65d9a4f4-354f-4b14-bbfb-c725bad3b57f/DevRadioW8SimpleStyling_Source.wmv" length="44831219" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Michael Palermo, DevRadio, ChrisCaldwell</dc:creator>
      <itunes:author>Michael Palermo, DevRadio, ChrisCaldwell</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-4-Simple-Styling-Techniques/RSS</wfw:commentRss>
      <category>CSS</category>
      <category>CSS 3</category>
      <category>Tips</category>
      <category>Tips tricks</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>Microsoft DevRadio: Using OData in Your Windows 8 application</title>
      <description><![CDATA[<p><strong>Abstract:</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a><br>In today’s episode <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117938">Jerry Nixon</a> shows us how to use OData as a data source inside our <a href="http://aka.ms/mygreatidea" target="_blank">Windows 8 application</a>. <br><strong><br>Next Steps:</strong><br><strong>Step #1 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Download the Tools for Windows 8 App Development</a><br><strong>Step #2 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express for Windows 8</a><br><strong>Step #3 –</strong> <a href="http://aka.ms/30daysToLaunch">Start building your own Apps for Windows 8</a></p><p><strong><a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838">iTunes</a>, <a href="http://social.zune.net/podcast/DevRadio-(Video)-Channel-9/9c81fe03-fee0-4902-b2cc-61339d607af6">Zune</a>, or <a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4">RSS</a></strong></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Websites:</strong></p><ul><li><a href="http://msdn.microsoft.com/library/windows/apps/br211386">Getting started with Windows 8 Apps</a> </li><li><a href="http://msdn.microsoft.com/library/windows/apps/br230836">How to Sell Your Apps and Make Money in the Windows Store</a> </li><li><a href="http://www.msdnevents.com/">Attend a Windows 8 Developer Camp and Hackathon in your area!</a> </li></ul><p><strong>Blogs &amp; Articles:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117938">Jerry Nixon’s Blog</a> </li></ul><p><strong>Videos:</strong></p><ul><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Building-and-Publishing-Great-Apps-in-Windows-8">Microsoft DevRadio: Building and Publishing Great Apps in Windows 8</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-How-to-Convert-Your-Windows-Phone-App-into-a-Windows-8-Application">Microsoft DevRadio: How to Convert Your Windows Phone App into a Windows 8 Application</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Why-Wait-Develop-for-Windows-8-Now" target="_blank">Microsoft DevRadio: Why Wait? Develop for Windows 8 Now!</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://msdn.microsoft.com/en-us/jj206431">Windows 8 Release Preview Virtual Labs</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:484d0f79477f4425a6c8a0b3011ecbc6">]]></description>
      <comments>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-OData-in-Your-Windows-8-application</comments>
      <itunes:summary>Abstract: In today’s episode Jerry Nixon shows us how to use OData as a data source inside our Windows 8 application. Next Steps:Step #1 – Download the Tools for Windows 8 App DevelopmentStep #2 – Download Visual Studio Express for Windows 8Step #3 – Start building your own Apps for Windows 8  Subscribe to our podcast via iTunes, Zune, or RSS If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Windows 8 Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Blogs &amp;amp; Articles: Jerry Nixon’s Blog Videos: Microsoft DevRadio: Building and Publishing Great Apps in Windows 8 Microsoft DevRadio: How to Convert Your Windows Phone App into a Windows 8 Application Microsoft DevRadio: Why Wait? Develop for Windows 8 Now! Virtual Labs: Windows 8 Release Preview Virtual Labs </itunes:summary>
      <itunes:duration>575</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-OData-in-Your-Windows-8-application</link>
      <pubDate>Tue, 21 Aug 2012 12:00:04 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-OData-in-Your-Windows-8-application</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData.mp3" expression="full" duration="575" fileSize="9213371" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData.mp4" expression="full" duration="575" fileSize="54907564" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData.webm" expression="full" duration="575" fileSize="16849129" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData.wma" expression="full" duration="575" fileSize="4667239" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData_high.mp4" expression="full" duration="575" fileSize="124411183" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData_mid.mp4" expression="full" duration="575" fileSize="86247847" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData_Source.wmv" expression="full" duration="575" fileSize="137217139" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/c7b4/bda61205-d3c2-4946-a9bb-bbe6b8b0c7b4/DevRadioW8OData_Source.wmv" length="137217139" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jerry Nixon, DevRadio, ChrisCaldwell</dc:creator>
      <itunes:author>Jerry Nixon, DevRadio, ChrisCaldwell</itunes:author>
      <slash:comments>4</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-OData-in-Your-Windows-8-application/RSS</wfw:commentRss>
      <category>Odata</category>
      <category>Tips</category>
      <category>Tips tricks</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 3) Adding HTML5 Content </title>
      <description><![CDATA[<p><strong>Abstract:</strong> <a href="http://aka.ms/MyGreatIdea" target="_blank"><img title="win8genapp30" src="http://www.palermo4.com/image.axd?picture=win8genapp30_thumb.jpg" alt="win8genapp30" width="214" height="97" align="right" border="0"></a><br>In today’s episode <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117941">Michael Palermo</a> shows us how to add simple content to our <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Windows 8</a> app using HTML5. <br><strong><br>Next Steps:</strong><br><strong>Step #1 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113720" target="_blank">Download the Tools for Windows 8 App Development</a><br><strong>Step #2 –</strong> <a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113721">Download Visual Studio Express for Windows 8</a><br><strong>Step #3 –</strong> <a href="http://aka.ms/30daysToLaunch">Start building your own Apps for Windows 8</a></p><p><strong><a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"></a> Subscribe to our podcast via <a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838">iTunes</a>, <a href="http://social.zune.net/podcast/DevRadio-(Video)-Channel-9/9c81fe03-fee0-4902-b2cc-61339d607af6">Zune</a>, or <a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4">RSS</a></strong></p><p><strong>If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:</strong></p><p><strong>Websites:</strong></p><ul><li><a href="http://msdn.microsoft.com/library/windows/apps/br211386">Getting started with Windows 8 Apps</a> </li><li><a href="http://msdn.microsoft.com/library/windows/apps/br230836">How to Sell Your Apps and Make Money in the Windows Store</a> </li><li><a href="http://www.msdnevents.com/">Attend a Windows 8 Developer Camp and Hackathon in your area!</a> </li></ul><p><strong>Blogs &amp; Articles:</strong></p><ul><li><a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117941">Michael Palermo’s Blog</a> </li></ul><p><strong>Videos:</strong></p><ul><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-time-Part1-Getting-Started">Microsoft DevRadio: Developing for Windows 8 in 1/2 the time (Part1) Getting Started</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-2-Using-a-Blank-Template" target="_blank">Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 2) Using a Blank Template</a> </li><li><a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Why-Wait-Develop-for-Windows-8-Now">Microsoft DevRadio: Why Wait? Develop for Windows 8 Now!</a> </li></ul><p><strong>Virtual Labs:</strong></p><ul><li><a href="http://msdn.microsoft.com/en-us/jj206431">Windows 8 Release Preview Virtual Labs</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:7c8b50eed12449e0a4ada0af00ee2ee1">]]></description>
      <comments>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-3-Adding-HTML5-Content</comments>
      <itunes:summary>Abstract: In today’s episode Michael Palermo shows us how to add simple content to our Windows 8 app using HTML5. Next Steps:Step #1 – Download the Tools for Windows 8 App DevelopmentStep #2 – Download Visual Studio Express for Windows 8Step #3 – Start building your own Apps for Windows 8  Subscribe to our podcast via iTunes, Zune, or RSS If you&#39;re interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information: Websites: Getting started with Windows 8 Apps How to Sell Your Apps and Make Money in the Windows Store Attend a Windows 8 Developer Camp and Hackathon in your area! Blogs &amp;amp; Articles: Michael Palermo’s Blog Videos: Microsoft DevRadio: Developing for Windows 8 in 1/2 the time (Part1) Getting Started Microsoft DevRadio: Developing for Windows 8 in 1/2 the Time (Part 2) Using a Blank Template Microsoft DevRadio: Why Wait? Develop for Windows 8 Now! Virtual Labs: Windows 8 Release Preview Virtual Labs </itunes:summary>
      <itunes:duration>226</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-3-Adding-HTML5-Content</link>
      <pubDate>Thu, 16 Aug 2012 16:11:47 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-3-Adding-HTML5-Content</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content_512.jpg" height="287" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content.mp3" expression="full" duration="226" fileSize="3628288" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content.mp4" expression="full" duration="226" fileSize="22245103" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content.webm" expression="full" duration="226" fileSize="6817466" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content.wma" expression="full" duration="226" fileSize="1840475" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content_high.mp4" expression="full" duration="226" fileSize="50317036" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content_mid.mp4" expression="full" duration="226" fileSize="34900210" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content_Source.wmv" expression="full" duration="226" fileSize="40559045" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/0fdf/12eabfe8-b841-465f-8d8e-365053110fdf/DevRadioW8HTML5Content_Source.wmv" length="40559045" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Michael Palermo, DevRadio, ChrisCaldwell</dc:creator>
      <itunes:author>Michael Palermo, DevRadio, ChrisCaldwell</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Developing-for-Windows-8-in-12-the-Time-Part-3-Adding-HTML5-Content/RSS</wfw:commentRss>
      <category>HTML5</category>
      <category>Tips</category>
      <category>Tips tricks</category>
      <category>Visual Studio</category>
      <category>Visual Studio Express</category>
      <category>Windows</category>
      <category>Windows 8</category>
      <category>WindowsContent</category>
    </item>
  <item>
      <title>3D Game Example</title>
      <description><![CDATA[<p>This video shows how 3D graphics render in a game example.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/windows/RSS&WT.dl=0&WT.entryid=Entry:RSSView:f8074732b07c4b13b7c8a06e014a0eac">]]></description>
      <comments>http://channel9.msdn.com/posts/3D-Game-Example</comments>
      <itunes:summary>This video shows how 3D graphics render in a game example. </itunes:summary>
      <itunes:duration>10</itunes:duration>
      <link>http://channel9.msdn.com/posts/3D-Game-Example</link>
      <pubDate>Wed, 15 Aug 2012 22:34:59 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/3D-Game-Example</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample.mp3" expression="full" duration="10" fileSize="166051" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample.mp4" expression="full" duration="10" fileSize="911001" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample.webm" expression="full" duration="10" fileSize="217947" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample.wma" expression="full" duration="10" fileSize="89143" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample.wmv" expression="full" duration="10" fileSize="2245545" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample_high.mp4" expression="full" duration="10" fileSize="2796411" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample_mid.mp4" expression="full" duration="10" fileSize="1668775" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample_Source.wmv" expression="full" duration="10" fileSize="5373620" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample.ism/manifest" expression="full" duration="10" fileSize="8442" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/0521/028df55c-699b-4e29-b3f9-d5e95cf80521/3DGameExample.wmv" length="2245545" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Roxanne Beaver</dc:creator>
      <itunes:author>Roxanne Beaver</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/3D-Game-Example/rss</wfw:commentRss>
      <category>3D</category>
      <category>Games</category>
      <category>Graphics</category>
      <category>Windows</category>
      <category>Windows 8</category>
    </item>    
</channel>
</rss>