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

<channel>
	<title>Rob Tiffany &#187; Wireless</title>
	<atom:link href="http://robtiffany.com/tag/wireless/feed" rel="self" type="application/rss+xml" />
	<link>http://robtiffany.com</link>
	<description>Author, Software Architect, Speaker, Technology Executive, Former Navy Submariner</description>
	<lastBuildDate>Sat, 04 Feb 2012 22:55:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Current State and Trends of the Mobile Internet</title>
		<link>http://robtiffany.com/mobile-web/the-current-state-and-trends-of-the-mobile-internet</link>
		<comments>http://robtiffany.com/mobile-web/the-current-state-and-trends-of-the-mobile-internet#comments</comments>
		<pubDate>Mon, 31 Oct 2011 17:53:22 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[Smartphone]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[Wireless]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=1153</guid>
		<description><![CDATA[Since 90% of the world's population has mobile network coverage, lets take a look at how they’re using it, where they're using it, and what we should expect from the future...]]></description>
			<content:encoded><![CDATA[<p>Since 90% of the world&#8217;s population has mobile network coverage, lets take a look at how they’re using it, where they&#8217;re using it, and what we should expect from the future&#8230;</p>
<p><a href="http://www.webhostingbuzz.com/blog/2011/10/19/mobile-internet-trends/" _mce_href="http://www.webhostingbuzz.com/blog/2011/10/19/mobile-internet-trends/"><img src="http://www.webhostingbuzz.com/blog/wp-content/uploads/2011/10/IG_Browse_640.jpg" _mce_src="http://www.webhostingbuzz.com/blog/wp-content/uploads/2011/10/IG_Browse_640.jpg" border="0" alt="The State and Trends of Mobile Internet" /></a></p>
<p>Interesting stuff!<br />
-Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/mobile-web/the-current-state-and-trends-of-the-mobile-internet/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sync Framework v4 is now Open Source, and ready to Connect any Device to SQL Server and SQL Azure</title>
		<link>http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure</link>
		<comments>http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure#comments</comments>
		<pubDate>Sun, 11 Sep 2011 20:54:27 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Sync Framework]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Consumerization]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=1014</guid>
		<description><![CDATA[The profound effects of the Consumerization of IT (CoIT) is blurring the lines between consumers and the enterprise.  The fact that virtually every type of mobile device is now a candidate to make employees productive means that cross-platform, enabling technologies are a must.  Luckily, Microsoft has brought the power to synchronize data with either SQL Server [...]]]></description>
			<content:encoded><![CDATA[<p>The profound effects of the Consumerization of IT (CoIT) is blurring the lines between consumers and the enterprise.  The fact that virtually every type of mobile device is now a candidate to make employees productive means that cross-platform, enabling technologies are a must.  Luckily, Microsoft has brought the power to synchronize data with either SQL Server on-premise or SQL Azure in the cloud to the world of mobility.  If you&#8217;ve ever synched the music on your iPhone with iTunes, the calendar on your Android device with Gmail, or the Outlook email on your Windows Phone with Exchange, then you understand the importance of sync.  In my experience architecting and building enterprise mobile apps for the world&#8217;s largest organizations over the last decade, data sync has always been a critical ingredient.</p>
<p><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/sql-azure_rgb_2" rel="attachment wp-att-1027"><img class="alignright size-medium wp-image-1027" title="SQL Azure" src="http://robtiffany.com/wp-content/uploads/2011/09/SQL-Azure_rgb_2-300x92.png" alt="" width="300" height="92" /></a><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/microsoft-sql-server-2008" rel="attachment wp-att-1026"><img class="aligncenter size-medium wp-image-1026" title="SQL Server" src="http://robtiffany.com/wp-content/uploads/2011/09/microsoft-sql-server-2008-300x246.jpg" alt="" width="300" height="246" /></a></p>
<p>The new <strong><a title="Sync Framework Toolkit" href="http://code.msdn.microsoft.com/Sync-Framework-Toolkit-4dc10f0e" target="_blank">Sync Framework Toolkit</a></strong> found on MSDN builds on the existing Sync Framework 2.1&#8242;s ability to create disconnected applications, making it easier to expose data for synchronization to apps running on any client platform.  Where Sync Framework 2.1 required clients to be based on Windows, this free toolkit allows other Microsoft platforms to be used for offline clients such as Silverlight, Windows Phone 7, Windows Mobile, Windows Embedded Handheld, and new Windows Slates.   Additionally, non-Microsoft platforms such as iPhones, iPads, Android phones and tablets, Blackberries and browsers supporting HTML5 are all first-class sync citizens.  The secret is that we no longer require the installation of the Sync Framework runtime on client devices.  When coupled with use of an open protocol like <a title="OData" href="http://www.odata.org/" target="_blank">OData </a>for data transport, no platform or programming language is prevented from synchronizing data with our on-premise and cloud databases.  When the data arrives on your device, you can serialize it as JSON, or insert it into SQL Server Compact or SQLite depending on your platform preferences.</p>
<p><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/sync" rel="attachment wp-att-1032"><img class="aligncenter size-full wp-image-1032" title="sync" src="http://robtiffany.com/wp-content/uploads/2011/09/sync.png" alt="" width="256" height="256" /></a>The Sync Framework Toolkit provides all the features enabled by the<a href="http://blogs.msdn.com/b/sync/archive/2010/11/16/sync-framework-4-0-october-2010-ctp-refreshed-on-11-16.aspx">Sync Framework 4.0 October 2010 CTP</a>.  We are releasing the toolkit as source code samples on MSDN with the source code utilizing Sync Framework 2.1.  Source code provides the flexibility to customize or extend the capabilities we have provided to suit your specific requirements. The client-side source code in the package is released under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache 2.0 license</a> and the server-side source code under the <a href="http://mef.codeplex.com/license">MS-LPL license</a>.  The Sync Framework 2.1 is fully supported by Microsoft and the mobile-enabling source code is yours to use, build upon, and support for the apps you create.</p>
<p><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/windowsslate" rel="attachment wp-att-1051"><img class="alignleft size-full wp-image-1051" title="WindowsSlate" src="http://robtiffany.com/wp-content/uploads/2011/09/WindowsSlate.png" alt="" width="182" height="115" /></a><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/windowsphone" rel="attachment wp-att-1050"><img class="alignleft size-full wp-image-1050" title="WindowsPhone" src="http://robtiffany.com/wp-content/uploads/2011/09/WindowsPhone.png" alt="" width="152" height="153" /></a><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/mc55a0_lg_us-en-2" rel="attachment wp-att-1048"><img class="alignleft size-thumbnail wp-image-1048" title="MC55A0_LG_US-EN" src="http://robtiffany.com/wp-content/uploads/2011/09/MC55A0_LG_US-EN1-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/html5_logo_512" rel="attachment wp-att-1045"><img class="alignleft size-thumbnail wp-image-1045" title="HTML5_Logo_512" src="http://robtiffany.com/wp-content/uploads/2011/09/HTML5_Logo_512-150x150.png" alt="" width="150" height="150" /></a><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/mac" rel="attachment wp-att-1047"><img class="alignleft size-full wp-image-1047" title="Mac" src="http://robtiffany.com/wp-content/uploads/2011/09/Mac.png" alt="" width="184" height="106" /></a><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/blackberry" rel="attachment wp-att-1044"><img class="alignleft size-full wp-image-1044" title="Blackberry" src="http://robtiffany.com/wp-content/uploads/2011/09/Blackberry.png" alt="" width="173" height="173" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/ipad" rel="attachment wp-att-1046"><img class="alignleft size-full wp-image-1046" title="iPad" src="http://robtiffany.com/wp-content/uploads/2011/09/iPad.png" alt="" width="113" height="144" /></a><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/android" rel="attachment wp-att-1043"><img class="alignleft size-full wp-image-1043" title="Android" src="http://robtiffany.com/wp-content/uploads/2011/09/Android.png" alt="" width="154" height="153" /></a><a href="http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/attachment/symbian" rel="attachment wp-att-1049"><img class="alignleft size-full wp-image-1049" title="Symbian" src="http://robtiffany.com/wp-content/uploads/2011/09/Symbian.png" alt="" width="152" height="163" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Now some of you might be wondering why you would use a sync technology to move data rather than SOAP or REST web services.  The reason has to do with performance and bandwidth efficiency.  Using SOA, one would retrieve all the data needed to the device in order to see what has changed in SQL Server.  The same goes for uploading data.  Using the Sync Framework Toolkit, only the changes, or deltas, are transmitted over the air.  The boosts performance and reduces bandwidth usage which saves time and money in a world of congested mobile data networks with capped mobile data plans.  You also get a feature called batching, which breaks up the data sent over wireless networks into manageable pieces.  This not only prevents you from blowing out your limited bandwidth, but it also keeps you from using too much RAM memory both on the server and your memory-constrained mobile device.  When combined with conflict resolution and advanced filtering, I&#8217;m sold!</p>
<p>I think you&#8217;ll find the Sync Framework Toolkit to be an immensely valuable component of your MEAP solutions for the enterprise as well as the ones you build for consumers.</p>
<p>Keep Synching,</p>
<p>Rob</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/sync-framework/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Performance and Memory Management Improvements with Windows Embedded Handheld</title>
		<link>http://robtiffany.com/windows-embedded-handheld/performance-and-memory-management-improvements-with-windows-embedded-handheld</link>
		<comments>http://robtiffany.com/windows-embedded-handheld/performance-and-memory-management-improvements-with-windows-embedded-handheld#comments</comments>
		<pubDate>Sun, 04 Sep 2011 15:49:39 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows Embedded Handheld]]></category>
		<category><![CDATA[.NET Compact Framework]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Device Management]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[RDA]]></category>
		<category><![CDATA[Remote Data Access]]></category>
		<category><![CDATA[SQL CE]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=944</guid>
		<description><![CDATA[It should be no surprise that over 80% of enterprise handhelds shipped are running Windows Mobile or Windows Embedded Handheld. ]]></description>
			<content:encoded><![CDATA[<p>A lot has changed since the launch of Windows Phone in the Fall of 2010.  Microsoft now has a compelling phone platform that targets consumers inside and outside the office.  One thing that that hasn&#8217;t changed is the widespread use of Windows Embedded Handheld to solve tough enterprise mobility problems.  It should be no surprise that over 80% of enterprise handhelds shipped are running Windows Mobile or Windows Embedded Handheld.  They include support for barcode scanning, RFID reading, rugged hardware, every type of wireless, full device encryption, complete over-the-air software distribution and device managment support, FIPS compliance, and both capacitive touch and stylus operation.  On the application platform side of the equation, they have rich support for WinForm development using Visual Studio and the .NET Compact Framework, C++ and a full-featured database with built-in sync capabilities via SQL Server Compact.  They can easily communicate with WCF SOAP and REST web services running on Windows Servers on-premise or with Azure in the cloud.  Support for Merge Replication means faster time to market to get device synchronizing with SQL Server with almost no coding.</p>
<p><a href="http://robtiffany.com/windows-embedded-handheld/performance-and-memory-management-improvements-with-windows-embedded-handheld/attachment/motorola-es400" rel="attachment wp-att-951"><img class="alignleft size-medium wp-image-951" title="Windows Embedded Handheld" src="http://robtiffany.com/wp-content/uploads/2011/09/motorola-es400-144x300.jpg" alt="" width="144" height="300" /></a><a href="http://robtiffany.com/windows-embedded-handheld/performance-and-memory-management-improvements-with-windows-embedded-handheld/attachment/pp-psion-teklogix-12-6-10" rel="attachment wp-att-978"><img class="alignleft size-medium wp-image-978" title="pp-Psion-Teklogix-12-6-10" src="http://robtiffany.com/wp-content/uploads/2011/09/pp-Psion-Teklogix-12-6-10-183x300.jpg" alt="" width="183" height="300" /></a><a href="http://robtiffany.com/windows-embedded-handheld/performance-and-memory-management-improvements-with-windows-embedded-handheld/attachment/dolphin" rel="attachment wp-att-976"><img class="alignleft size-medium wp-image-976" title="dolphin" src="http://robtiffany.com/wp-content/uploads/2011/09/dolphin-163x300.jpg" alt="" width="163" height="300" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://robtiffany.com/windows-embedded-handheld/performance-and-memory-management-improvements-with-windows-embedded-handheld/attachment/intermec" rel="attachment wp-att-979"><img class="alignleft size-medium wp-image-979" title="intermec" src="http://robtiffany.com/wp-content/uploads/2011/09/intermec-140x300.jpg" alt="" width="140" height="300" /></a><a href="http://robtiffany.com/windows-embedded-handheld/performance-and-memory-management-improvements-with-windows-embedded-handheld/attachment/honeywell_99ex" rel="attachment wp-att-977"><img class="alignleft size-medium wp-image-977" title="honeywell_99ex" src="http://robtiffany.com/wp-content/uploads/2011/09/honeywell_99ex-127x300.jpg" alt="" width="127" height="300" /></a></p>
<p>Since Windows Embedded Handheld uses an advanced version of the operating system kernel used by Windows Mobile 6.5.3, many of the techniques and best practices I&#8217;ve taugh customers and developers all over the world still apply.  While it still uses the slotted memory model found in Windows CE 5 with 32 processes and 32 MB of memory per process, you&#8217;ll find that numerous enhancements and tuning has taken place to give your line of business apps more of what they need.  I&#8217;m talking about more memory per process and improved performance.  Therefore, I&#8217;d like you to sit back and watch the video of a presentation I delivered at Tech Ed in Los Angeles a couple of years ago so you can better learn what this mobile platform has to offer in the form of better memory management and improved performance:<br />
<iframe style="width: 512px; height: 384px;" src="http://channel9.msdn.com/Events/TechEd/Europe/2009/MOB401/player?w=512&amp;h=384" frameborder="0" scrolling="no" width="320" height="240"></iframe></p>
<p>A recent Gartner report recommends that organizations should stay with Windows Embedded Handheld as the best mobile platform for enterprise line of business needs.  Great devices are available from OEMs like Intermec, Motorola, Psion, and Honeywell just to name a few.  I hope this video helps you with any memory management or performance issues you may need to deal with in your enterprise mobile apps.</p>
<p>Best Regards,<br />
Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/windows-embedded-handheld/performance-and-memory-management-improvements-with-windows-embedded-handheld/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7 Line of Business App Dev :: Uploading Data back to Azure</title>
		<link>http://robtiffany.com/windows-phone-7/windows-phone-7-line-of-business-app-dev-uploading-data-back-to-azure</link>
		<comments>http://robtiffany.com/windows-phone-7/windows-phone-7-line-of-business-app-dev-uploading-data-back-to-azure#comments</comments>
		<pubDate>Wed, 04 May 2011 05:11:35 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure Queues]]></category>
		<category><![CDATA[Azure Table Storage]]></category>
		<category><![CDATA[Data Contract]]></category>
		<category><![CDATA[Data Member]]></category>
		<category><![CDATA[DataContractJsonSerializer]]></category>
		<category><![CDATA[DELETE]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[GET]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Loosely-coupled]]></category>
		<category><![CDATA[Memcache]]></category>
		<category><![CDATA[MemoryStream]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[POST]]></category>
		<category><![CDATA[PUT]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Slate]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Tablet]]></category>
		<category><![CDATA[URI]]></category>
		<category><![CDATA[UriTemplate]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WebClient]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows Communication Foundation]]></category>
		<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[Windows Slate]]></category>
		<category><![CDATA[Wireless]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XmlSerializer]]></category>

		<guid isPermaLink="false">http://robtiffany.com/windows-phone-7/windows-phone-7-line-of-business-app-dev-uploading-data-back-to-azure</guid>
		<description><![CDATA[Looking back over the last 6 months of this series of articles, you’ve created wireless-efficient WCF REST + JSON Web Services in Azure to download data from SQL Azure tables to Windows Phone.  You’ve maintained in-memory collections of objects in your own local NoSQL object cache.  You&#8217;ve used LINQ to query those collections and bind [...]]]></description>
			<content:encoded><![CDATA[<div>Looking back over the last 6 months of this series of articles, you’ve created wireless-efficient <strong>WCF REST + JSON</strong> Web Services in <strong>Azure</strong> to download data from <strong>SQL Azure</strong> tables to <strong>Windows Phone</strong>.  You’ve maintained in-memory collections of objects in your own local <strong>NoSQL</strong> object cache.  You&#8217;ve used <strong>LINQ</strong> to query those collections and bind results to various <strong>Silverlight</strong> UI elements.  You’ve even serialized those collections to <strong>Isolated Storage</strong> using memory-efficient JSON.  So what’s left to do?</div>
<div><a href="http://robtiffany.com/wp-content/uploads/2011/05/Sub.png"><img class="aligncenter size-medium wp-image-681" title="Submarine" src="http://robtiffany.com/wp-content/uploads/2011/05/Sub-180x300.png" alt="" width="180" height="300" /></a></div>
<div></div>
<div>Oh yeah, I guess you might want to know how to <strong>upload</strong> an object full to data back to a WCF Web Service in Azure.  In order to keep this article simple and to-the-point, I’m going to work with a basic Submarine object and show you how to fill it with data and upload it from a <strong>Windows Phone</strong> or <strong>Slate</strong> to a WCF REST + JSON Web Service.  Let’s take a look at this object:</div>
<div></div>
<div><span style="font-family: Consolas;">using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using System.Runtime.Serialization;</span></div>
<div><span style="font-family: Consolas;">namespace Models<br />
{<br />
[DataContract()]<br />
public class Submarine<br />
{<br />
[DataMember()]<br />
public int Id { get; set; }<br />
[DataMember()]<br />
public string Name { get; set; }<br />
}<br />
}</span></div>
<div></div>
<div>It includes just an integer data type called <strong>Id</strong>, and a string called <strong>Name</strong>.  As in previous articles before, its decorated with a <strong>[DataContract()]</strong> and two <strong>[DataMember()]</strong>s to allow<strong> .NET serialization</strong> to do its thing.  So the next thing we need to do is create and populate this Submarine object with data, serialize it as JSON, and send it on its way using <strong>WebClient</strong>.</div>
<div></div>
<div>Below is the method and its callback that accomplishes this:</div>
<div></div>
<div><span style="font-family: Consolas;">using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Net;<br />
using System.Windows;<br />
using Microsoft.Phone.Controls;<br />
using System.IO;<br />
using System.Runtime.Serialization.Json;<br />
using System.Text;</span></div>
<div><span style="font-family: Consolas;">private void AddSubmarine()<br />
{<br />
Uri uri = new Uri(&#8220;</span><a href="http://127.0.0.1:81/SubService.svc/AddSubmarine&quot;);"><span style="font-family: Consolas;">http://127.0.0.1:81/SubService.svc/AddSubmarine&#8221;);</span></a></div>
<div><span style="font-family: Consolas;"> Models.Submarine submarine = new Models.Submarine() { Id = 3, Name = &#8220;Seawolf&#8221; };<br />
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Models.Submarine));<br />
MemoryStream mem = new MemoryStream();<br />
ser.WriteObject(mem, submarine);<br />
string data = Encoding.UTF8.GetString(mem.ToArray(), 0, (int)mem.Length);</span></div>
<div><span style="font-family: Consolas;"> WebClient webClient = new WebClient();<br />
webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(webClient _UploadStringCompleted);<br />
webClient.Headers["Content-type"] = &#8220;application/json&#8221;;<br />
webClient.Encoding = Encoding.UTF8;<br />
webClient.UploadStringAsync(uri, &#8220;POST&#8221;, data);</span></div>
<div><span style="font-family: Consolas;">}</span></div>
<div><span style="font-family: Consolas;">void webClient_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)<br />
{<br />
var x = e.Result;<br />
}</span></div>
<div></div>
<div>As you can see above, I point the <strong>URI</strong> at a WCF Service called <strong>SubService.svc/AddSubmarine</strong>.  How <strong>RESTful</strong>.  Next, I create an instance of the Submarine object, give it an <strong>Id</strong> of <strong>3</strong> and the <strong>Name</strong> <strong>Seawolf</strong>.  I then use the same <strong>DataContractJsonSerializer</strong> I’ve been using in all the other articles to serialize the Submarine object to a JSON representation.  Using the <strong>MemoryStream</strong>, I write the JSON to a stream and then artfully turn it into a string.  Last but not least, I instantiate a new WebClient object, create an event handler for a callback, and upload the <strong>stringified</strong> Submarine object to the WCF Service.</div>
<div></div>
<div>So where did I upload the Submarine object to?</div>
<div></div>
<div>It takes two to Mango, so let’s take a look.  For starters, it goes without saying that every WCF Service starts with an <strong>Interface</strong>.  This one is called<strong> ISubService.cs</strong>:</div>
<div></div>
<div><span style="font-family: Consolas;">using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Runtime.Serialization;<br />
using System.ServiceModel;<br />
using System.ServiceModel.Web;<br />
using System.Text;</span></div>
<div><span style="font-family: Consolas;">namespace DataSync<br />
{<br />
[ServiceContract]<br />
public interface ISubService<br />
{<br />
</span><span style="font-family: Consolas;">[OperationContract]<br />
[WebInvoke(UriTemplate = "/AddSubmarine", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, Method = "POST")]<br />
bool AddSubmarine(Models.Submarine sub);</span></div>
<div><span style="font-family: Consolas;"> }<br />
}</span></div>
<div></div>
<div>Unlike previous articles where I had you download data with <strong>WebGet</strong>, this time I’m using <strong>WebInvoke</strong> to denote that a <strong>PUT</strong>, <strong>POST</strong>, or <strong>DELETE</strong> <strong>HTTP</strong> <strong>Verb</strong> is being used with our <strong>REST</strong> service.  The <strong>UriTemplate</strong> gives you the RESTful <strong>/AddSubmarine</strong>, and I added the <strong>Method = “POST”</strong> for good measure.  Keep in mind that you’ll need the exact same Submarine class on the server that you had on your Windows Phone to make all this work.</div>
<div></div>
<div>Let’s see what we get when we <strong>Implement this Interface</strong>:</div>
<div></div>
<div><span style="font-family: Consolas;">using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Runtime.Serialization;<br />
using System.ServiceModel;<br />
using System.ServiceModel.Web;<br />
using System.Text;<br />
using Microsoft.WindowsAzure;<br />
using Microsoft.WindowsAzure.Diagnostics;<br />
using Microsoft.WindowsAzure.ServiceRuntime;<br />
using Microsoft.WindowsAzure.StorageClient;<br />
using System.Configuration;<br />
using System.Xml.Serialization;<br />
using System.IO;</span></div>
<div><span style="font-family: Consolas;">namespace DataSync<br />
{<br />
public class SubService : ISubService<br />
{<br />
public SubService()<br />
{ </span></div>
<div><span style="font-family: Consolas;"></p>
<div>}</div>
<p></span></div>
<div><span style="font-family: Consolas;"> public bool AddSubmarine(Models.Submarine submarine)<br />
{<br />
try<br />
{<br />
if (submarine != null)<br />
{<br />
//Do something with your Deserialized .NET Submarine Object<br />
//… = submarine.Id </span><span style="font-family: Consolas;"> //… = submarine.Name</span></div>
<div><span style="font-family: Consolas;"> return true;<br />
}<br />
else<br />
{<br />
return false;<br />
}<br />
}<br />
catch<br />
{<br />
return false;<br />
}<br />
}</span></div>
<div><span style="font-family: Consolas;"> }<br />
}</span></div>
<div></div>
<div>Here we end up with <strong>SubService.svc</strong> with the simple <strong>AddSubmarine</strong> method where you pass in a Submarine object as a parameter.  What you do with this object, I’ll leave to you.  Some might be tempted to INSERT it into <strong>SQL Azure</strong>.  I’d prefer that you drop it into an <strong>Azure Queue</strong> and have a <strong>Worker Role</strong> do the INSERTing later so you can stay <strong>loosely-coupled</strong>.  Just in case you need a refresher on a REST-based <strong>Web.config</strong> file, here’s one below:</div>
<div></div>
<div><span style="font-family: Consolas;">&lt;?xml version=&#8221;1.0&#8243;?&gt;<br />
&lt;configuration&gt;<br />
&lt;!&#8211;  To collect diagnostic traces, uncomment the section below.<br />
To persist the traces to storage, update the DiagnosticsConnectionString setting with your storage credentials.<br />
To avoid performance degradation, remember to disable tracing on production deployments.<br />
&lt;system.diagnostics&gt;<br />
&lt;sharedListeners&gt;<br />
&lt;add name=&#8221;AzureLocalStorage&#8221; type=&#8221;DataSync.AzureLocalStorageTraceListener, DataSync&#8221;/&gt;<br />
&lt;/sharedListeners&gt;<br />
&lt;sources&gt;<br />
&lt;source name=&#8221;System.ServiceModel&#8221; switchValue=&#8221;Verbose, ActivityTracing&#8221;&gt;<br />
&lt;listeners&gt;<br />
&lt;add name=&#8221;AzureLocalStorage&#8221;/&gt;<br />
&lt;/listeners&gt;<br />
&lt;/source&gt;<br />
&lt;source name=&#8221;System.ServiceModel.MessageLogging&#8221; switchValue=&#8221;Verbose&#8221;&gt;<br />
&lt;listeners&gt;<br />
&lt;add name=&#8221;AzureLocalStorage&#8221;/&gt;<br />
&lt;/listeners&gt;<br />
&lt;/source&gt;<br />
&lt;/sources&gt;<br />
&lt;/system.diagnostics&gt; &#8211;&gt;<br />
&lt;system.diagnostics&gt;<br />
&lt;trace&gt;<br />
&lt;listeners&gt;<br />
&lt;add type=&#8221;Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&#8243;<br />
name=&#8221;AzureDiagnostics&#8221;&gt;<br />
&lt;filter type=&#8221;" /&gt;<br />
&lt;/add&gt;<br />
&lt;/listeners&gt;<br />
&lt;/trace&gt;<br />
&lt;/system.diagnostics&gt;<br />
&lt;system.web&gt;<br />
&lt;compilation debug=&#8221;true&#8221; targetFramework=&#8221;4.0&#8243; /&gt;</span></div>
<div><span style="font-family: Consolas;"> &lt;/system.web&gt;</span></div>
<div><span style="font-family: Consolas;"> &lt;!&#8211;Add Connection Strings&#8211;&gt;<br />
&lt;connectionStrings&gt; </span></div>
<div><span style="font-family: Consolas;"></p>
<div>&lt;/connectionStrings&gt;</div>
<p></span></div>
<div><span style="font-family: Consolas;"> &lt;system.serviceModel&gt;<br />
&lt;behaviors&gt;<br />
&lt;serviceBehaviors&gt;<br />
&lt;behavior&gt;<br />
&lt;!&#8211; To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment &#8211;&gt;<br />
&lt;serviceMetadata httpGetEnabled=&#8221;true&#8221;/&gt;<br />
&lt;!&#8211; To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information &#8211;&gt;<br />
&lt;serviceDebug includeExceptionDetailInFaults=&#8221;false&#8221;/&gt;<br />
&lt;/behavior&gt;<br />
&lt;/serviceBehaviors&gt;</span></div>
<div><span style="font-family: Consolas;"> &lt;!&#8211;Add REST Endpoint Behavior&#8211;&gt;<br />
&lt;endpointBehaviors&gt;<br />
&lt;behavior name=&#8221;REST&#8221;&gt;<br />
&lt;webHttp /&gt;<br />
&lt;/behavior&gt;<br />
&lt;/endpointBehaviors&gt;</span></div>
<div><span style="font-family: Consolas;"> &lt;/behaviors&gt;</span></div>
<div><span style="font-family: Consolas;"> &lt;!&#8211;Add Service with webHttpBinding&#8211;&gt;<br />
&lt;services&gt;<br />
&lt;service name=&#8221;DataSync.SubService&#8221;&gt;<br />
&lt;endpoint address=&#8221;" behaviorConfiguration=&#8221;REST&#8221; binding=&#8221;webHttpBinding&#8221;<br />
contract=&#8221;DataSync.ISubService&#8221; /&gt;<br />
&lt;/service&gt;<br />
&lt;/services&gt;</span></div>
<div><span style="font-family: Consolas;"> &lt;serviceHostingEnvironment aspNetCompatibilityEnabled=&#8221;true&#8221; multipleSiteBindingsEnabled=&#8221;true&#8221; /&gt;</span></div>
<div><span style="font-family: Consolas;"> &lt;!&#8211;&lt;serviceHostingEnvironment multipleSiteBindingsEnabled=&#8221;true&#8221; /&gt;&#8211;&gt;<br />
&lt;/system.serviceModel&gt;<br />
&lt;system.webServer&gt;<br />
&lt;modules runAllManagedModulesForAllRequests=&#8221;true&#8221;/&gt;<br />
&lt;/system.webServer&gt;<br />
&lt;/configuration&gt;</span></div>
<div></div>
<div>This Web.Config gives you the <strong>webHttpBinding</strong> you’re looking for to do a <strong>REST</strong> service.  I even left you a spot to add your own database or Azure storage <strong>connection strings</strong>.</div>
<div>This article wraps up the <strong>Windows Phone 7 Line of Business App Dev series</strong> that I’ve been delivering to you since last September.  Who knew I would make fun of <strong>OData</strong> or have you create your own <strong>NoSQL</strong> database to run on your phone along the way?  I think I actually wrote the first article in this series from a hotel room in <strong>Nantes, France</strong>.</div>
<div></div>
<div>But have no fear, this isn’t the end.</div>
<div></div>
<div>In preparation for <strong>Tech Ed 2010 North America</strong> coming up on May 16th in Atlanta, I’ve been building the <strong>next-gen</strong>, <strong>super-fast</strong>, <strong>super-scalable Azure architecture</strong> designed for <strong>mobile devices roaming on wireless data networks</strong>.  I’ve spent the last decade building the world’s largest and most scalable mobile infrastructures for Microsoft’s wonderful global customers.  Now it’s time to make the jump from supporting <strong>enterprise-level scalability</strong> to the much bigger <strong>consumer-level scalability</strong>.</div>
<div></div>
<div>Yes, I’m talking <strong>millions</strong> of devices.</div>
<div></div>
<div>No, you won’t have to recreate <strong>Facebook’s</strong> servers, <strong>NoSQL</strong>, <strong>Memcache</strong>, or <strong>Hadoop</strong> infrastructure to make it happen.  I’m going to show you how to make it happen with Azure in just two weeks so I’m looking forward to seeing everyone in Atlanta in two weeks.</div>
<div></div>
<div>Keep coding,</div>
<div>Rob</div>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/windows-phone-7/windows-phone-7-line-of-business-app-dev-uploading-data-back-to-azure/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Top Ten Mobile Internet Trends</title>
		<link>http://robtiffany.com/mobile/top-ten-mobile-internet-trends</link>
		<comments>http://robtiffany.com/mobile/top-ten-mobile-internet-trends#comments</comments>
		<pubDate>Mon, 28 Feb 2011 20:32:32 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=619</guid>
		<description><![CDATA[Our friends at Kleiner Perkins have some great insights into where things are going with the Mobile Internet: Top 10 Mobile Internet Trends (Feb 2011) View more presentations from Kleiner Perkins Caufield &#038; Byers]]></description>
			<content:encoded><![CDATA[<p>Our friends at Kleiner Perkins have some great insights into where things are going with the Mobile Internet:</p>
<div style="width:425px" id="__ss_6872807"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/kleinerperkins/kpcb-top-10-mobile-trends-feb-2011" title="Top 10 Mobile Internet Trends (Feb 2011)">Top 10 Mobile Internet Trends (Feb 2011)</a></strong> <object id="__sse6872807" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=kpcbtop10mobiletrends021011finalpdf-110210002130-phpapp02&#038;stripped_title=kpcb-top-10-mobile-trends-feb-2011&#038;userName=kleinerperkins" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse6872807" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=kpcbtop10mobiletrends021011finalpdf-110210002130-phpapp02&#038;stripped_title=kpcb-top-10-mobile-trends-feb-2011&#038;userName=kleinerperkins" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px"> View more presentations from <a href="http://www.slideshare.net/kleinerperkins">Kleiner Perkins Caufield &#038; Byers</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/mobile/top-ten-mobile-internet-trends/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile Web Facts and Best Practices</title>
		<link>http://robtiffany.com/mobile-web/mobile-web-facts-and-best-practices</link>
		<comments>http://robtiffany.com/mobile-web/mobile-web-facts-and-best-practices#comments</comments>
		<pubDate>Thu, 24 Feb 2011 02:50:47 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=563</guid>
		<description><![CDATA[&#60;what is the mobile web? /&#62; It’s growing faster than the desktop web Faster growth than desktop web during 1990’s There&#8217;s been a 2000% increase in mobile websites since 2008 The mobile web is: The mobile web is not: The mobile web is glanceable info for people on the go The desktop web is for [...]]]></description>
			<content:encoded><![CDATA[<h1><span style="color: #ff0000;">&lt;what is the mobile web? /&gt;</span></h1>
<p><span style="color: #ff0000;"><br />
</span></p>
<ul>
<li><strong>It’s growing faster than the desktop web</strong></li>
<li><strong>Faster growth than desktop web during 1990’s</strong></li>
<li><strong>There&#8217;s been a 2000% increase in mobile websites since 2008</strong></li>
<li><strong>The mobile web <span style="text-decoration: underline;">is</span>:</strong></li>
</ul>
<p><a href="http://robtiffany.com/wp-content/uploads/2011/02/mobilenyt.png"><img class="aligncenter size-medium wp-image-570" title="New York Times" src="http://robtiffany.com/wp-content/uploads/2011/02/mobilenyt-158x300.png" alt="New York Times" width="158" height="300" /></a></p>
<ul>
<li><strong>The mobile web <span style="text-decoration: underline;">is not</span>:</strong></li>
</ul>
<p><a href="http://robtiffany.com/wp-content/uploads/2011/02/nytimebig.png"><img class="aligncenter size-medium wp-image-573" title="New York Times" src="http://robtiffany.com/wp-content/uploads/2011/02/nytimebig-158x300.png" alt="New York Times" width="158" height="300" /></a></p>
<ul>
<li><strong>The mobile web is glanceable info for people on the go</strong></li>
<li><strong>The desktop web is for people who aren’t going anywhere</strong></li>
<li><strong>The mobile web can reach half the planet</strong></li>
<li><strong>The desktop web reaches ~1 billion users</strong></li>
<li><strong>The mobile web browser is the #1 app used on most phones</strong></li>
<li><strong>The mobile web browser consumes 13% of user face time</strong></li>
<li><strong>The mobile web browser accounts for 50% of all phone data traffic</strong></li>
<li><strong>There are around 326,000 touchable mobile web sites</strong></li>
<li><strong>Most of the top mobile web sites focus on shopping, services, social and news</strong></li>
<li><strong>Retailers can increase consumer engagement by 85% by having mobile-specific website</strong></li>
<li><strong>But only 4.8% of U.S. retailers have a mobile website</strong></li>
<li><strong>9 out of 10 mobile shoppers use the mobile web while in-store</strong></li>
<li><strong>50% of users in-store mobile web activity is shopping related</strong></li>
<li><strong>51% of in-store mobile research has led to a purchase</strong></li>
<li><strong>Amazon took in &gt; $1 billion via its mobile commerce site</strong></li>
<li><strong>Google says mobile shopping searches are up 3,000% over last 3 years</strong></li>
<li><strong>Most native device attributes will reach HTML5 by 2013, enabling UX that rivals native apps</strong>
<ul>
<li><strong>Geo-location 2010</strong></li>
</ul>
<ul>
<li><strong>Camera 2011</strong></li>
<li><strong>Motion detection 2011</strong></li>
</ul>
<ul>
<li><strong>Calendar 2012</strong></li>
</ul>
<ul>
<li><strong>Contacts 2012</strong></li>
</ul>
<ul>
<li><strong>SMS2012</strong></li>
</ul>
<ul>
<li><strong>Files 2013</strong></li>
</ul>
</li>
</ul>
<h1><span style="color: #ff0000;">&lt;markup differences /&gt;</span></h1>
<p><span style="color: #ff0000;"><br />
</span></p>
<ul>
<li><strong>Today’s mobile web is XHTML Basic 1.1Second Edition</strong>
<ul>
<li><strong>W3C recommendation in November 2010</strong></li>
</ul>
<ul>
<li><strong>http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/</strong></li>
</ul>
<ul>
<li><strong>Supersedes XHTML-MP 1.2 from Open Mobile Alliance (OMA)</strong></li>
</ul>
<ul>
<li><strong>Similar to HTML 4.01</strong></li>
</ul>
<ul>
<li><strong>Not WAP</strong></li>
</ul>
</li>
<li><strong>Yes, it’s XML</strong>
<ul>
<li><strong>XML parsing rules enforced</strong></li>
</ul>
<ul>
<li><strong>&lt;?xml version = &#8217;1.0&#8242; encoding = &#8216;UTF-8&#8242;?&gt;</strong></li>
</ul>
<ul>
<li><strong>Every tag name and attribute must be in lowercase</strong></li>
</ul>
<ul>
<li><strong>All attributes must have a value</strong></li>
</ul>
<ul>
<li><strong>Every tag must be closed</strong></li>
</ul>
</li>
<li><strong>You must have a document type definition (DTD)<img src="file:///C:/Users/ROBTIF%7E1/AppData/Local/Temp/moz-screenshot.png" alt="" /></strong>
<ul>
<li><strong>&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML Basic 1.1//EN&#8221; &#8220;http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd&#8221;&gt;</strong></li>
</ul>
<ul>
<li><strong>Your markup must stick to the definition</strong></li>
</ul>
</li>
<li><strong>You need an XML namespace for your document</strong>
<ul>
<li><strong>&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; xml:lang=&#8221;en&#8221;&gt;</strong></li>
</ul>
</li>
<li><strong>You need a mime type</strong>
<ul>
<li><strong>@Response.AddHeader(&#8220;Content-Type&#8221;, &#8220;application/xhtml+xml&#8221;);</strong></li>
</ul>
</li>
<li><strong>There are no frames, no framesets and no iframes</strong></li>
<li><strong>No Java applets</strong></li>
<li><strong>No Flash</strong></li>
<li><strong>No image maps</strong></li>
<li><strong>Simple tables</strong>
<ul>
<li><strong>Not for layout (Use CSS)</strong></li>
<li><strong>No table nesting (Tables within tables)</strong></li>
<li><strong>No thead</strong></li>
<li><strong>No tbody</strong></li>
<li><strong>No tfoot</strong></li>
</ul>
</li>
</ul>
<h1><span style="color: #ff0000;">&lt;user experience /&gt;</span></h1>
<p><span style="color: #ff0000;"><br />
</span></p>
<ul>
<li><strong>CSS Mobile Profile</strong>
<ul>
<li><strong>Subset of CSS2</strong></li>
<li><strong>Must specify units</strong></li>
</ul>
</li>
<li><strong>Keep your &lt;title&gt;&lt;/title&gt; short, description and &lt; 20 characters</strong></li>
<li><strong>Stack everything in a single column</strong>
<ul>
<li><strong>No left/right horizontal scrolling</strong></li>
<li><strong>Minimize up/down vertical scrolling</strong></li>
</ul>
</li>
<li><strong>Include just the top 20% most important content from the desktop web</strong></li>
<li><strong>Use minimal, lightweight advertisements</strong></li>
<li><strong>Link to the desktop website</strong></li>
<li><strong>Use short URLs that fit on a single line and don&#8217;t disappear off the side of your phone</strong></li>
<li><strong>Accommodate different device dimensions</strong>
<ul>
<li><strong>Width = 100%</strong></li>
<li><strong>Height = Auto</strong></li>
</ul>
</li>
<li><strong>No hovering or mouse-overs needed for touch</strong></li>
<li><strong>Limit the need for text entry</strong>
<ul>
<li><strong>Use checkboxes</strong></li>
<li><strong>Use drop-down combo boxes</strong></li>
<li><strong>Use lists</strong></li>
<li><strong>Use radio buttons</strong></li>
<li><strong>Use pre-filled text</strong></li>
</ul>
<ul>
<li><strong>Maintain reusable session data in a cookie</strong></li>
</ul>
</li>
<li><strong>Each page must only provide a single function or idea</strong></li>
<li><strong>Use larger fonts because people can&#8217;t read small screens with high resolution</strong></li>
<li><strong>Use large touchable UI elements</strong>
<ul>
<li><strong>Fingertips are up to 80 pixels wide</strong></li>
</ul>
<ul>
<li><strong>Touchable elements must be 40+ high/wide</strong></li>
</ul>
<ul>
<li><strong>Touchable elements must be 20+ pixels apart</strong></li>
</ul>
</li>
<li><strong>Navigation should be at the top of each page (Also use breadcrumbs for one-click access)</strong></li>
<li><strong>Just say no to background images</strong>
<ul>
<li><strong>Makes pages harder to read</strong></li>
</ul>
<ul>
<li><strong>Increases page size</strong></li>
</ul>
</li>
<li><strong>No pop-up windows</strong></li>
<li><strong>Don’t use absolute values for measurements</strong>
<ul>
<li><strong>You&#8217;ll get unexpected results on different mobile browsers</strong></li>
</ul>
<ul>
<li><strong>Use ems</strong></li>
</ul>
<ul>
<li><strong>Use percentages</strong></li>
</ul>
</li>
<li><strong><span style="text-decoration: underline;">Do not</span> use images for:</strong>
<ul>
<li><strong>Icons for links or menus</strong></li>
<li><strong>Buttons</strong></li>
</ul>
<ul>
<li><strong>Visual separators</strong></li>
</ul>
</li>
<li><strong><span style="text-decoration: underline;">Do </span>use small images:</strong>
<ul>
<li><strong>For maps</strong></li>
</ul>
<ul>
<li><strong>For an article</strong></li>
<li><strong>As a product logo</strong></li>
</ul>
<ul>
<li><strong>If they are smaller than device screen</strong></li>
</ul>
<ul>
<li><strong>As long as they are lightweight thumbnails</strong></li>
</ul>
<ul>
<li><strong>Only when absolutely necessary</strong></li>
</ul>
</li>
<li><strong>Click to call  &lt;a href=&#8221;tel:+12065551212&#8243;&gt;Call Rob&lt;/a&gt;</strong></li>
<li><strong>Click to email  &lt;a href=&#8221;mailto:+rtif@ms.com?subject=Hi&amp;body=Rob&gt;email rob&lt;/a&gt;</strong></li>
<li><strong>Access keys for fast access to list items</strong>
<ul>
<li><strong>For phones with keyboards</strong></li>
</ul>
<ul>
<li><strong>&lt;a href=&#8221;Products.cshtml“ accesskey=&#8221;1&#8243;&gt;Products&lt;/a&gt;</strong></li>
</ul>
</li>
</ul>
<h1><span style="color: #ff0000;">&lt;adaptability /&gt;</span></h1>
<p><span style="color: #ff0000;"><br />
</span></p>
<ul>
<li><strong>Server-side device capability databases</strong>
<ul>
<li><strong>Wireless universal resource file (WURFL)</strong></li>
</ul>
<ul>
<li><strong>Device Atlas</strong></li>
</ul>
<ul>
<li><strong>51 Degrees (points to WURFL)</strong></li>
</ul>
</li>
<li><strong>Client-side device capability detection</strong>
<ul><strong>browser name == navigator.appName</strong></p>
<p><strong>var screenSize = screen.width + &#8221; x &#8221; + screen.height;</strong></p>
<p><strong>cookies == navigator.cookieEnabled</strong></p>
<p><strong>browser version == navigator.appVersion</strong></p>
<p><strong>user agent header == navigator.userAgent</strong></ul>
</li>
<li><strong>Detect modern DOM</strong></li>
</ul>
<p style="padding-left: 60px;"><strong>function hasModernDOM()</strong></p>
<p style="padding-left: 60px;"><strong>{</strong></p>
<p style="padding-left: 90px;"><strong> // Check for support of DOM Level 1 functions</strong></p>
<p style="padding-left: 90px;"><strong> if (document.getElementById &amp;&amp; document.getElementsByTagName)</strong></p>
<p style="padding-left: 90px;"><strong> return true;</strong></p>
<p style="padding-left: 90px;"><strong> return false;</strong></p>
<p style="padding-left: 60px;"><strong>}</strong></p>
<ul>
<li><strong>Don’t assume…test for object existence</strong></li>
</ul>
<p style="padding-left: 60px;"><strong>if (object)</strong></p>
<p style="padding-left: 60px;"><strong>{</strong></p>
<p style="padding-left: 90px;"><strong> // object available</strong></p>
<p style="padding-left: 60px;"><strong>}</strong></p>
<ul>
<li><strong>Determine device orientation</strong></li>
</ul>
<p style="padding-left: 60px;"><strong>if (window.orientation)</strong></p>
<p style="padding-left: 60px;"><strong>{</strong></p>
<p style="padding-left: 90px;"><strong> if (window.orientation == 90 || window.orientation == -90)</strong></p>
<p style="padding-left: 90px;"><strong> return “landscape”;</strong></p>
<p style="padding-left: 90px;"><strong> else return “portrait”;</strong></p>
<p style="padding-left: 60px;"><strong>}</strong></p>
<ul>
<li><strong>Detect AJAX capabilities</strong></li>
</ul>
<p style="padding-left: 60px;"><strong>if (window.XMLHttpRequest)</strong></p>
<p style="padding-left: 60px;"><strong>{</strong></p>
<p style="padding-left: 90px;"><strong> return new XMLHttpRequest();</strong></p>
<p style="padding-left: 60px;"><strong>} else try {</strong></p>
<p style="padding-left: 90px;"><strong> return new ActiveXObject(‘Msxml2.XMLHTTP’);</strong></p>
<p style="padding-left: 60px;"><strong>}catch(e) {</strong></p>
<p style="padding-left: 90px;"><strong> try {</strong></p>
<p style="padding-left: 120px;"><strong> return new ActiveXObject(“Microsoft.XMLHTTP”);</strong></p>
<p style="padding-left: 90px;"><strong> } catch (e) {</strong></p>
<p style="padding-left: 90px;"><strong> return null;</strong></p>
<p style="padding-left: 90px;"><strong> }</strong></p>
<p style="padding-left: 60px;"><strong>}</strong></p>
<ul>
<li><strong>Viewport</strong>
<ul>
<li><strong>Prevent mobile browsers from displaying desktop-optimized markup</strong></li>
</ul>
<ul>
<li><strong>&lt;meta name=&#8221;viewport&#8221; content=&#8221;width=device-width, initial-scale=1.0, user-scalable=no&#8221; /&gt;</strong></li>
</ul>
</li>
<li><strong>Internet Explorer Mobile adaptation  &lt;meta name=&#8221;MobileOptimized&#8221; content=&#8221;width&#8221; /&gt;</strong></li>
<li><strong>Blackberry adaptation  &lt;meta name=&#8221;HandheldFriendly&#8221; content=&#8221;true&#8221; /&gt;</strong></li>
</ul>
<p>&nbsp;</p>
<h1><span style="color: #ff0000;">&lt;optimizations /&gt;</span></h1>
<p><span style="color: #ff0000;"><br />
</span></p>
<ul>
<li><strong>Minify XHTML, CSS and JavaScript</strong>
<ul>
<li><strong>Remove non-useful tags</strong></li>
</ul>
<ul>
<li><strong>Remove comments</strong></li>
</ul>
<ul>
<li><strong>Remove spaces</strong></li>
</ul>
<ul>
<li><strong>Use YUI compressor to compress HTML</strong></li>
<li><strong>Use jsmin to compress JavaScript</strong></li>
</ul>
</li>
<li><strong>Use Yahoo YSlow to analyze website performance</strong></li>
<li><strong>Validate your site with W3C mobileOK Checker at http://validator.w3.org/mobile/</strong></li>
<li><strong>Some DOM thoughts</strong>
<ul>
<li><strong>Avoid large DOM frameworks like JQuery</strong></li>
</ul>
<ul>
<li><strong>Most DOM frameworks lock you into Webkit</strong></li>
</ul>
<ul>
<li><strong>DOM frameworks use extra system memory and JavaScript libraries and CSS take longer to download</strong></li>
</ul>
<ul>
<li><strong>Keep small and uncomplex DOM for fast manipulation</strong></li>
</ul>
</li>
<li><strong>Enable Web server compression (GZip/Deflate)</strong></li>
<li><strong>Cache for performance</strong></li>
</ul>
<p style="padding-left: 60px;"><strong>//Timed caching for freshness since last request:</strong></p>
<p style="padding-left: 60px;"><strong>Response.AddHeader(&#8220;Cache-Control&#8221;, “max-age=3600&#8243;);</strong></p>
<p style="padding-left: 60px;"><strong>Response.OutputCache(3600);</strong></p>
<p style="padding-left: 60px;"><strong>//Request always goes to origin server for validation:</strong></p>
<p style="padding-left: 60px;"><strong>Response.AddHeader(&#8220;Cache-Control&#8221;, &#8220;no-cache&#8221;);</strong></p>
<p style="padding-left: 60px;"><strong>//Instructs caches not to store sensitive data:</strong></p>
<p style="padding-left: 60px;"><strong>Response.AddHeader(&#8220;Cache-Control&#8221;, &#8220;no-store&#8221;);</strong></p>
<ul>
<li><strong>Conserve battery life</strong>
<ul>
<li><strong>No auto-refreshing</strong></li>
</ul>
<ul>
<li><strong>Be smart about JavaScript usage</strong></li>
</ul>
</li>
<li><strong>The scourge of Transcoders</strong>
<ul>
<li><strong>They are proxies that reformat desktop web pages</strong></li>
</ul>
<ul>
<li><strong>They might add mobile operator navigation bar to each page</strong></li>
</ul>
<ul>
<li><strong>They might inject advertising from unknown sources</strong></li>
</ul>
<ul>
<li><strong>They might replace original graphics with smaller/low res images</strong></li>
</ul>
<ul>
<li><strong>Maintain your page integrity:</strong></li>
</ul>
</li>
</ul>
<p style="padding-left: 60px;"><strong>Response.AddHeader(&#8220;Cache-Control&#8221;, &#8220;no-transform&#8221;)</strong></p>
<ul>
<li><strong>Reduce number of linked resources</strong>
<ul>
<li><strong>Use only one JavaScript file</strong></li>
</ul>
<ul>
<li><strong>Use only one CSS file</strong></li>
</ul>
<ul>
<li><strong>Use only one Cookie</strong></li>
</ul>
<ul>
<li><strong>Check for and eliminate duplicate scripts</strong></li>
</ul>
</li>
<li><strong>No client-side redirecting</strong></li>
<li><strong>Empty strings can cause unnecessary HTTP requests to the server</strong>
<ul>
<li><strong>&lt;script src=” ”&gt;</strong></li>
</ul>
<ul>
<li><strong>&lt;link href=” ”&gt;</strong></li>
</ul>
<ul>
<li><strong>&lt;img src=” ”&gt;</strong></li>
</ul>
</li>
<li><strong>Link to JavaScript at bottom of page so page loads before download/loading JavaScript file</strong></li>
<li><strong>Above all, keep pages &lt; 20 k  (Yeah, I said 20 k)</strong></li>
</ul>
<p>&nbsp;</p>
<h1><span style="color: #ff0000;">&lt;what do I like best about the mobile web /&gt;</span></h1>
<p><span style="color: #ff0000;"><br />
</span></p>
<ul>
<li><strong>It allows me to bypass App Stores and Marketplaces to reach consumers and the enterprise directly</strong></li>
<li><strong>I can reach more users, at a lower cost, with just a single web app</strong></li>
<li><strong>It taps into the HTML, CSS, JavaScript and ASP.NET skills that more people have</strong></li>
<li><strong>It&#8217;s a real W3C Recommendation unlike HTML5 which means it&#8217;s supported by more smartphones and feature phones</strong></li>
<li><strong>It allows me to reach the billions of people in the developing world that can&#8217;t afford an iPhone</strong></li>
<li><strong>It brings simple mobile commerce to everyone</strong></li>
<li><strong>It allows me to push educational content to any child with a mobile phone (there&#8217;s a landfill of feature phones for the kids who don&#8217;t already have one)</strong></li>
<li><strong>Oh, and this lightweight, simple, and fast content is great for XO Laptops (OLPC) and underpowered Netbooks (that same landfill has old laptops too)</strong></li>
</ul>
<h1><span style="color: #ff0000;">&lt;we&#8217;re done /&gt;</span></h1>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/mobile-web/mobile-web-facts-and-best-practices/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7 Demo Fest Tech Ed Video</title>
		<link>http://robtiffany.com/windows-phone-7/windows-phone-7-demo-fest-tech-ed-video</link>
		<comments>http://robtiffany.com/windows-phone-7/windows-phone-7-demo-fest-tech-ed-video#comments</comments>
		<pubDate>Mon, 15 Nov 2010 21:21:55 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=398</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object class="player" width="645" height="363" type="application/x-silverlight-2" data="data:application/x-silverlight-2,"><param value="http://www.msteched.com/ClientBin/players/VideoPlayer2009_03_27.xap" name="source" /><param value="m=http://ecn.channel9.msdn.com/o9/te/Europe/2010/wmv/wph103-lnc.wmv,thumbnail=http://www.msteched.com/Skins/TechEdOnline/Styles/images/DefaultPlayerBackground.png,autohide=true,showembed=true" name="initParams" /><param value="#00000000" name="background" /><param name="minRuntimeVersion" value="3.0.50106.0" /><param name="windowless" value="true" /><param name="enableGPUAcceleration" value="true" /><param name="autoUpgrade" value="true" /><a href="http://go.microsoft.com/fwlink/?LinkID=149156&#038;v=3.0.50106.0" style="text-decoration:none"><br />
	  <img src="http://www.msteched.com/Skins/TechEdOnline/Styles/images/NoSilverlight.jpg" alt="Get Microsoft Silverlight" style="border-style:none"/><br />
  </a><br />
</object></p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/windows-phone-7/windows-phone-7-demo-fest-tech-ed-video/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://ecn.channel9.msdn.com/o9/te/Europe/2010/wmv/wph103-lnc.wmv" length="139729637" type="video/asf" />
		</item>
		<item>
		<title>The Windows Phone 7 Mobile Enterprise Application Platform (MEAP) Tech Ed Video</title>
		<link>http://robtiffany.com/mobile-enterprise-application-platform/the-windows-phone-7-mobile-enterprise-application-platform-meap-tech-ed-video</link>
		<comments>http://robtiffany.com/mobile-enterprise-application-platform/the-windows-phone-7-mobile-enterprise-application-platform-meap-tech-ed-video#comments</comments>
		<pubDate>Mon, 15 Nov 2010 21:11:29 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[Windows Phone 7 Developer Tools]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile Middleware]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[Sync Framework]]></category>
		<category><![CDATA[Visual Studio 2010 Express for Windows Phone]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=395</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object class="player" width="645" height="363" type="application/x-silverlight-2" data="data:application/x-silverlight-2,"><param value="http://www.msteched.com/ClientBin/players/VideoPlayer2009_03_27.xap" name="source" /><param value="m=http://ecn.channel9.msdn.com/o9/te/Europe/2010/wmv/wph212-lnc.wmv,thumbnail=http://www.msteched.com/Skins/TechEdOnline/Styles/images/DefaultPlayerBackground.png,autohide=true,showembed=true" name="initParams" /><param value="#00000000" name="background" /><param name="minRuntimeVersion" value="3.0.50106.0" /><param name="windowless" value="true" /><param name="enableGPUAcceleration" value="true" /><param name="autoUpgrade" value="true" /><a href="http://go.microsoft.com/fwlink/?LinkID=149156&#038;v=3.0.50106.0" style="text-decoration:none"><br />
	  <img src="http://www.msteched.com/Skins/TechEdOnline/Styles/images/NoSilverlight.jpg" alt="Get Microsoft Silverlight" style="border-style:none"/><br />
  </a><br />
</object></p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/mobile-enterprise-application-platform/the-windows-phone-7-mobile-enterprise-application-platform-meap-tech-ed-video/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://ecn.channel9.msdn.com/o9/te/Europe/2010/wmv/wph212-lnc.wmv" length="65167819" type="video/asf" />
		</item>
		<item>
		<title>Developing Windows Phone 7 Web Applications with WebMatrix Tech Ed Video</title>
		<link>http://robtiffany.com/windows-phone-7-developer-tools/developing-windows-phone-7-web-applications-with-webmatrix-tech-ed-video</link>
		<comments>http://robtiffany.com/windows-phone-7-developer-tools/developing-windows-phone-7-web-applications-with-webmatrix-tech-ed-video#comments</comments>
		<pubDate>Fri, 12 Nov 2010 15:03:23 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Windows Phone 7 Developer Tools]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[IIS Express]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[WebMatrix]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=385</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object class="player" width="645" height="363" type="application/x-silverlight-2" data="data:application/x-silverlight-2,"><param value="http://www.msteched.com/ClientBin/players/VideoPlayer2009_03_27.xap" name="source" /><param value="m=http://ecn.channel9.msdn.com/o9/te/Europe/2010/wmv/wph309.wmv,thumbnail=http://www.msteched.com/Skins/TechEdOnline/Styles/images/DefaultPlayerBackground.png,autohide=true,showembed=true" name="initParams" /><param value="#00000000" name="background" /><param name="minRuntimeVersion" value="3.0.50106.0" /><param name="windowless" value="true" /><param name="enableGPUAcceleration" value="true" /><param name="autoUpgrade" value="true" /><a href="http://go.microsoft.com/fwlink/?LinkID=149156&#038;v=3.0.50106.0" style="text-decoration:none"><br />
	  <img src="http://www.msteched.com/Skins/TechEdOnline/Styles/images/NoSilverlight.jpg" alt="Get Microsoft Silverlight" style="border-style:none"/><br />
  </a><br />
</object></p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/windows-phone-7-developer-tools/developing-windows-phone-7-web-applications-with-webmatrix-tech-ed-video/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://ecn.channel9.msdn.com/o9/te/Europe/2010/wmv/wph309.wmv" length="76103415" type="video/asf" />
		</item>
		<item>
		<title>Come and Meet the Windows Phone 7 Team @ Tech Ed Europe 2010</title>
		<link>http://robtiffany.com/windows-phone-7/come-and-meet-the-windows-phone-7-team-tech-ed-europe-2010</link>
		<comments>http://robtiffany.com/windows-phone-7/come-and-meet-the-windows-phone-7-team-tech-ed-europe-2010#comments</comments>
		<pubDate>Thu, 04 Nov 2010 15:52:10 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Expression Blend]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[Mobile Middleware]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010 Express for Windows Phone]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Wireless]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=369</guid>
		<description><![CDATA[Do you have a burning question related to Windows Phone?  Are you unsure, confused or need more information?  Do you have feedback you want to share?  Whatever your motivation, this session is not to be missed.  For one time only at Tech Ed Europe 2010, you will have virtually all the Windows Phone speakers in [...]]]></description>
			<content:encoded><![CDATA[<div>Do you have a burning question related to <strong>Windows Phone</strong>?  Are you unsure, confused or need more information?  Do you have feedback you want to share?  Whatever your motivation, this session is not to be missed.  For one time only at Tech Ed Europe 2010, you will have virtually all the Windows Phone speakers in one room to answer your questions, listen to your feedback and discuss anything Windows Phone 7!  This session has proven to be very lively in the past and with such a great platform to talk about, we expect it to be even more so this year!</div>
<p></p>
<div>Come spend some time with <strong>me</strong>, <strong>Augusto Valdez</strong>, <strong>Daniel Bouie</strong>, <strong>Jaime Rodriguez</strong>, <strong>Larry Lieberman</strong>, and <strong>Maarten Struys</strong> at session <strong>WPH117-IS</strong>  next week in <strong>Berlin at <a href="http://europe.msteched.com/default.aspx" target="_blank">Tech Ed Europe 2010</a></strong>!</div>
<div>-Rob</div>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/windows-phone-7/come-and-meet-the-windows-phone-7-team-tech-ed-europe-2010/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

