<?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; Windows Mobile</title>
	<atom:link href="http://robtiffany.com/tag/windows-mobile/feed/" rel="self" type="application/rss+xml" />
	<link>http://robtiffany.com</link>
	<description>Author, Mobility Strategist at Microsoft, Speaker, Advisor, Technology Executive, Former Navy Submariner</description>
	<lastBuildDate>Sun, 20 May 2012 04:39:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Books and Taxes</title>
		<link>http://robtiffany.com/books-and-taxes/</link>
		<comments>http://robtiffany.com/books-and-taxes/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 22:55:29 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[Apress]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Hood Canal Press]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[SQL CE]]></category>
		<category><![CDATA[SQL Compact]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SQLCE]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=1376</guid>
		<description><![CDATA[Wow!  Just opened a 1099 tax document for 2011 from Apress.  People must still be buying my old books on eMbedded Visual Basic, the .NET Compact Framework 2.0, and SQL Server Compact 2.0.  The Pocket PC and Windows Mobile live &#8230; <a href="http://robtiffany.com/books-and-taxes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wow!  Just opened a 1099 tax document for 2011 from Apress.  People must still be buying my old books on eMbedded Visual Basic, the .NET Compact Framework 2.0, and SQL Server Compact 2.0.  The Pocket PC and Windows Mobile live on!</p>
<p>A separate 1099 for Hood Canal Press tells me that my SQL Server Merge Replication books are still killing it!  Our world of disconnected devices require efficient data sync now more than ever.  Despite a variety of sync technologies out there, Merge is still the best!</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/books-and-taxes/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-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/</link>
		<comments>http://robtiffany.com/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 &#8230; <a href="http://robtiffany.com/sync-framework-v4-is-now-open-source-and-ready-to-connect-any-device-to-sql-server-and-sql-azure/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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-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/performance-and-memory-management-improvements-with-windows-embedded-handheld/</link>
		<comments>http://robtiffany.com/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.  <a href="http://robtiffany.com/performance-and-memory-management-improvements-with-windows-embedded-handheld/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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/performance-and-memory-management-improvements-with-windows-embedded-handheld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Not to Present a Session at a Techical Conference</title>
		<link>http://robtiffany.com/how-not-to-present-a-session-at-a-techical-conference/</link>
		<comments>http://robtiffany.com/how-not-to-present-a-session-at-a-techical-conference/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 22:38:02 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[MEDC]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=823</guid>
		<description><![CDATA[Prior to the Mobile and Embedded Developer Conference (MEDC) back in 2007, my teammates Loke Uei Tan, Mike Hall, James Pratt, Derek Snyder and I made a movie that illustrates presentation worst practices... <a href="http://robtiffany.com/how-not-to-present-a-session-at-a-techical-conference/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Prior to the Mobile and Embedded Developer Conference (MEDC) back in 2007, my teammates Loke Uei Tan, Mike Hall, James Pratt, Derek Snyder and I made a movie that illustrates presentation worst practices&#8230;</p>
<p><iframe width="425" height="349" src="http://www.youtube.com/embed/qZOL878CwfM" frameborder="0" allowfullscreen></iframe></p>
<p>Enjoy,<br />
Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/how-not-to-present-a-session-at-a-techical-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confronting the Consumerization of IT with Microsoft MEAP</title>
		<link>http://robtiffany.com/confronting-the-consumerization-of-it-with-microsoft-meap/</link>
		<comments>http://robtiffany.com/confronting-the-consumerization-of-it-with-microsoft-meap/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 06:42:46 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[.NET Compact Framework]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mobile Middleware]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=509</guid>
		<description><![CDATA[CIOs are asking for help in confronting the tidal wave of mobile devices entering the enterprise.  IT departments have raised the white flag as attempts to block consumer-focused smartphones and tablets have failed.  The Consumerization of IT has been a &#8230; <a href="http://robtiffany.com/confronting-the-consumerization-of-it-with-microsoft-meap/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">CIOs are asking for help in confronting the tidal wave of mobile devices entering the enterprise.  IT departments have raised the white flag as attempts to block consumer-focused smartphones and tablets have failed.  The Consumerization of IT has been a growing trend fueled by cloud-delivered services and compelling mobile devices with wireless capabilities.  This trend snowballs more and more each year, meaning it&#8217;s time to embrace it rather than put your head in the sand.  Microsoft MEAP is the answer.  I&#8217;ve been talking to you about how Microsoft aligns with Gartner&#8217;s Mobile Enterprise Application Platform (MEAP) for years now, and I wanted to update you on how we&#8217;ve evolved with respect to Gartner&#8217;s Critical Capabilities.  As a refresher, MEAP is Software + Services that allow IT orgs to extend corporate apps to mobile employees and business partners.  This platform must support:</p>
<ol>
<li>
<div style="text-align: left;">Multiple mobile applications</div>
</li>
<li>
<div style="text-align: left;">Multiple mobile operating systems</div>
</li>
<li>
<div style="text-align: left;">Multiple backend systems maximizing ROI vs. tactical solutions</div>
</li>
</ol>
<p style="text-align: left;">It&#8217;s already a $1 Billion business and 95% of orgs will choose MEAP over point solutions by 2012.   The picture below represents some of our familiar cloud and on-premise servers on top and a wide spectrum of mobile devices from Microsoft and other manufacturers on the bottom: </p>
<p style="text-align: left;"><a href="http://robtiffany.com/wp-content/uploads/2011/01/MEAP7.png"><img class="aligncenter size-full wp-image-512" title="Microsoft MEAP" src="http://robtiffany.com/wp-content/uploads/2011/01/MEAP7.png" alt="Microsoft MEAP" width="1032" height="542" /></a></p>
<p>Let&#8217;s do a quick rundown of Gartner&#8217;s Critical Capability list so you can see how we rise to their challenge:</p>
<ol>
<li>Integrated Development Environment for composing server and client-side logic: Microsoft Visual Studio supports on-premise and cloud server development and targets clients such as Windows, Windows Phone 7, Windows Mobile, the Web, Nokia S60, and the Macintosh. </li>
<li>Application Client Runtime: Various flavors of Microsoft .NET (Silverlight, .NET, Compact Framework) run on <a title="Windows Azure" href="http://www.microsoft.com/windowsazure/" target="_blank">Azure</a>, Windows Server, Windows, the Mac, Windows Phone 7, Windows Mobile, and Nokia S60.  Guess what, you can use <a title="MonoTouch" href="http://monotouch.net/" target="_blank">MonoTouch </a>to take your .NET skills to the iPhone, iPad and iPod Touch.  <a title="MonoDroid" href="http://monodroid.net/" target="_blank">MonoDroid </a>is in the preview stage and will bring .NET to Android phones and tablets in the future.</li>
<li>Enterprise Application Integration Tools: Connecting mobile devices to a variety of backend packages like Dynamics or SAP is critical.  Microsoft supports this integration in the cloud via Windows Azure AppFabric and on-premise though SQL Server Integration Services and dozens of adapters.  Tools like our Business Intelligence Dev Studio make EAI a repeatable, drag and drop exercise.</li>
<li>Packaged Mobile Apps: Microsoft delivers the Office suite across Windows, Windows Phone 7, Windows Mobile, the Web and the Mac.  Office will be coming to Nokia in the future and One Note just arrived on iOS.</li>
<li>Multichannel Servers: Windows Server + SQL Server on-premise and Windows Azure + SQL Azure in the cloud represents Microsoft&#8217;s mobile middleware platforms.  Windows Communication Foundation (WCF) delivers cross-platform SOAP &amp; REST Web Services and cross-platform wire protocols like XML, JSON and OData.</li>
<li>Software Distribution: Microsoft System Center Configuration Manager supports pushing software out to Windows and Windows Mobile.  Windows Phone 7 has Marketplace for this function.</li>
<li>Security: Data-in-transit is secured by SSL across all platforms.  Data-at-Rest security for apps is facilitated on Windows by BitLocker, Windows Mobile through encryption policies and Windows Phone 7 through <a title="Windows Phone 7 Encryption" href="http://robtiffany.com/windows-phone-7/dont-forget-to-encrypt-your-windows-phone-7-data" target="_blank">AESManaged </a>in Silverlight.  Cross-platform auth is facilitated by Microsoft Windows Identity Foundation so devices can access resources via a Windows Live ID, Facebook, Google, Yahoo, ADFS and others.</li>
<li>Hosting: It goes without saying the Microsoft knocks the hosting requirement out of the park with Azure.</li>
</ol>
<p>So what do I want you to take away from all this?</p>
<p>Microsoft has a great MEAP stack comprised of servers and skillsets you probably already have at your company.  You get maximum reuse on our servers and in our cloud which means you save money when it&#8217;s time to build and deploy your second, third and fourth mobile app without new training, new servers, and different technologies each time.  I hope you&#8217;re pleasantly surprised to see that our .NET application runtime lives on so many mobile platforms.  Again, this means that your existing .NET skills can be reused on Microsoft devices, the Web, Mac, Nokia and even the iPad.  Who knew?  I&#8217;m looking forward to bring Android into the .NET camp as well. </p>
<p>It&#8217;s a brave new world of disparate devices connected to the cloud.  Companies have no choice but to target most all of them when constructing B2C apps to sell products or bring in new customers.  They&#8217;ve also found that this is the case in supporting their own employees and business partners with B2E and B2B apps.  No single company has so many different skillsets and competencies to pull this off.</p>
<p>There is one thing that most companies do have though.  A Microsoft infrastructure in their data center or the cloud, Windows on desktops, laptops and tablets, plus teams of .NET developers.  As I&#8217;ve just shown you, these .NET developers armed with Visual Studio or MonoTouch can be unleashed to allow you to reach almost every mobile platform.  This dramatically reduces the amount of extra Java and Eclipse skills that you&#8217;ll consider bringing in-house or outsourcing in order to target platforms like Android or the Blackberry.  Through the magic of WCF, all these platforms can connect to your critical Microsoft back-end resources and beyond.  You save money on training, use the servers you already have, resuse business logic and get to market faster.  No matter what platform you need to target, Microsoft and its partners want to help you reach your goals.</p>
<p>Looks like you&#8217;re already ahead of the game in taking on the Consumerization of IT.</p>
<p>-Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/confronting-the-consumerization-of-it-with-microsoft-meap/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Reducing SQL Server I/O Contention during Sync :: Tip 1</title>
		<link>http://robtiffany.com/reducing-sql-server-io-contention-during-sync-tip-1/</link>
		<comments>http://robtiffany.com/reducing-sql-server-io-contention-during-sync-tip-1/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 06:16:55 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[I/O]]></category>
		<category><![CDATA[LUN]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[RAID]]></category>
		<category><![CDATA[Remote Data Access]]></category>
		<category><![CDATA[SAN]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Sync Framework]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[tempdb]]></category>
		<category><![CDATA[Transaction Logs]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=447</guid>
		<description><![CDATA[The act of tracking changes made by each SQL Server Compact or Silverlight sync subscriber can cause a lot of locking and blocking on the server. <a href="http://robtiffany.com/reducing-sql-server-io-contention-during-sync-tip-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h5>RAID</h5>
<p>Sync technologies like Merge Replication and the Sync Framework track changes on SQL Server using triggers, stored procedures and special tracking tables.  The act of tracking changes made by each SQL Server Compact or Silverlight sync subscriber can cause a lot of locking and blocking on the server.  This diminishes performance and sometimes leads to deadlocks. <a href="http://robtiffany.com/wp-content/uploads/2011/01/x3_wss-storageserver2_2.jpg"><img class="alignleft size-full wp-image-450" title="SAN Storage" src="http://robtiffany.com/wp-content/uploads/2011/01/x3_wss-storageserver2_2.jpg" alt="SAN Storage" width="540" height="186" /></a></p>
<p>Therefore, don&#8217;t listen to your SAN administrator when he says the RAID 5 will do.  RAID 1 or 10 must always be used for all databases, tempdb, and transaction logs.  Furthermore, each of these database objects must be placed on their own dedicated RAID arrays.  No sharing!  Remembers, as a DBA and sync expert, knowledge of SAN configuration must always be part of your skillset.</p>
<p>Keeping synching,</p>
<p>Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/reducing-sql-server-io-contention-during-sync-tip-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7: If at first you don&#8217;t succeed &#8230;</title>
		<link>http://robtiffany.com/windows-phone-7-if-at-first-you-dont-succeed/</link>
		<comments>http://robtiffany.com/windows-phone-7-if-at-first-you-dont-succeed/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 17:22:15 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[CTIA]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[FoxBusiness]]></category>
		<category><![CDATA[Gerry Purdy]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Live Tiles]]></category>
		<category><![CDATA[Micosoft Office]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MobileTrax]]></category>
		<category><![CDATA[One Note]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Panoramas]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Steve Ballmer]]></category>
		<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[Xbox Live]]></category>

		<guid isPermaLink="false">http://robtiffany.com/windows-phone-7/windows-phone-7-if-at-first-you-dont-succeed</guid>
		<description><![CDATA[Written by: J. Gerry Purdy 10/20/2010&#160; You have to hand it to Microsoft.&#160;&#160; They have certainly fulfilled the old saying, “If at first you don’t succeed, try, try again.”&#160; Microsoft has had a number of previous attempts to build a &#8230; <a href="http://robtiffany.com/windows-phone-7-if-at-first-you-dont-succeed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">Written by: J. Gerry Purdy        <br />10/20/2010&#160; </font></font><a style="cursor: auto" href="http://www.mobiletrax.com/Newsletters/tabid/115/rssid/1/Default.aspx" target="_blank"><span style="text-underline: none"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001[6]" border="0" alt="clip_image001[6]" src="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0016.gif" width="12" height="12" /></span></a></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><a href="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0026.jpg"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002[6]" border="0" alt="clip_image002[6]" src="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0026_thumb.jpg" width="131" height="77" /></a></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">You have to hand it to Microsoft.&#160;&#160; They have certainly fulfilled the old saying, “If at first you don’t succeed, try, try again.”&#160; Microsoft has had a number of previous attempts to build a successful operating system for the mobile market with WinPad, Windows Mobile and Win CE.&#160; These efforts – simply because they were Microsoft – generated some market presence but nowhere near the market share achieved by major players such as RIM (BlackBerry), Apple (iPhone) and Google (Android).        </p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0036.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003[6]" border="0" alt="clip_image003[6]" align="left" src="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0036_thumb.jpg" width="137" height="104" /></a></font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000"></font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">I thought it was poignant when Rob Tiffany, Mobility Architect at Microsoft, told me at CTIA that Microsoft went back to the drawing board to develop a new mobile OS from the ground up.&#160; Steve Ballmer, Microsoft CEO, introduced Windows Phone 7 on Monday, Oct. 11 at a press conference in New York.        </p>
<p></font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000"></font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000"></font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">The reviews on Windows Phone 7 (WP7) have generally been positive.&#160; I appeared on Brian Sullivan’s show on FoxBusiness to explain why I thought Microsoft would succeed with WP7, especially in the enterprise space.        </p>
<p>One of the most important changes that WP7 provides over past Windows Mobile efforts is a re-architecture of the user interface.&#160;&#160; Microsoft abandoned the desktop metaphor of the Start menu driving a list of applications.&#160;&#160; While that was acceptable on the desktop, it wasn’t well-received in the mobile environment.         </p>
<p>There are a number of user interface and technical innovations that WP7 brings to the mobile market, including:</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l6 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Calibri"><font color="#000000"><u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">New platform</font></span></u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt"> – WP7 is not an enhancement to previous Windows mobile efforts. It’s developed from the ‘ground up’ – no more forcing people to go through the Windows Start menu. It was designed to provide users with easy access to the information they want and need. </font></span></font></font></li>
</ul>
<p style="margin: 0in 0in 0pt; mso-list: l3 level1 lfo2; tab-stops: list .5in" class="MsoNormal"><a href="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0046.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="clip_image004[6]" border="0" alt="clip_image004[6]" src="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0046_thumb.jpg" width="92" height="179" /></a></p>
<p> <span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font face="Calibri"><font color="#000000"><u><font style="font-size: 11pt"></font></u></font></font></span>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l3 level1 lfo2; tab-stops: list .5in" class="MsoNormal"><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font face="Calibri"><font color="#000000"><u><font style="font-size: 11pt">Active tiles</font></u><font style="font-size: 11pt"> – users can decide what’s important to them and allocate tiles to give them the information they need, e.g. a tile for messaging, a tile for social, a tile for news, etc. Take a look at the sample home screen on a sample WP7 phone.&#160; It shows a number of Active Tiles that are user defined to make the initial images on the phone’s start up screen comfortable and personal to the user. </font></font></font></span></li>
</ul>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l7 level1 lfo3; tab-stops: list .5in" class="MsoNormal"><font face="Calibri"><font color="#000000"><u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">Panoramas</font></span></u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt"> – with panoramas, you swipe left and right to get more information.&#160; This is a new user paradigm much like flip/scroll has become in the iPhone and Android for looking through lists by swiping up and down. This allows you to swipe left and right – a very cool concept. Take a look at the wide panoramas below.&#160; Notice that the phone image at the top can sweep to the right to cover all the information about a topic and the sweep back to the left.&#160; This allows applications to present a lot of information that appears the way the eye looks at the world – in a panoramic fashion.&#160; Vertical scrolling is good for lists where panoramas are good for showing more of one kind of information such as a photo or image or set of items in a group.</font></span></font></font> </li>
</ul>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l2 level1 lfo4; tab-stops: list .5in" class="MsoNormal"><font face="Calibri"><font color="#000000"><u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">Apps</font></span></u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt"> – Microsoft has created solid development tools to make it easy for (consumer and enterprise) developers to build exciting apps, e.g. extending X-Box for gaming, etc. and then publishing them in the Windows Phone Marketplace.</font></span></font></font> </li>
</ul>
<p style="line-height: normal; margin: 0in 0in 0pt 0.5in" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><a href="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0056.jpg"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image005[6]" border="0" alt="clip_image005[6]" src="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0056_thumb.jpg" width="278" height="180" /></a></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">Phones will be produced using WP7 by Samsung, HTC, LG and Dell.&#160; I suspect that Motorola may follow along as well in 2011.&#160; Windows Phones will be distributed through AT&amp;T Mobility and T-Mobile in the US at first and then via Verizon and Sprint&#160; in 2011.&#160; Some Windows Phones will have integrated keyboards and others will be touch screen only.&#160; For example, the Samsung Omnia 7 incorporates a Super AMOLED screen, a 4-inch display, 5-mp camera with HD video and support of Xbox Live gaming and media content.</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">Microsoft has implemented multiple processes in the first rendition of Windows Phone which allows each app to switch back and forth.&#160; Some developers may need full-scale multi-tasking for background operation which Microsoft will likely support at some future time.&#160; They store the last place the user was in an application and then re-store it back when the app is re-launched to give the feel of being multi-tasking.&#160; But, Microsoft wanted to make sure the first version was solid and, therefore, they deferred true multi-tasking to a later version.</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">Microsoft has made WP7 work well for both consumers and enterprise.&#160; Consumers get a good user experience right out of the box that they can then personalize with Live Tiles.&#160; Consumers will also get a streaming music service based on Microsoft’s Zune efforts.</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">I believe that WP7 will be received well in the enterprise for a number of reasons, including:</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l4 level1 lfo5; tab-stops: list .5in" class="MsoNormal"><font face="Calibri"><font color="#000000"><u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">Microsoft Office</font></span></u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">. Right out of the box, WP7 will support opening and editing Word, Excel and PowerPoint files in a mobile edition of MS Office. </font></span></font></font></li>
</ul>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l1 level1 lfo6; tab-stops: list .5in" class="MsoNormal"><font face="Calibri"><font color="#000000"><u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">Outlook</font></span></u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">. Because Outlook is included as well, enterprise users who already are using Exchange/Outlook will get a friendly, familiar user interface for email.&#160; </font></span></font></font></li>
</ul>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l5 level1 lfo7; tab-stops: list .5in" class="MsoNormal"><font face="Calibri"><font color="#000000"><u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">OneNote</font></span></u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">.&#160; This is a note taking application that has seen very little adoption in the desktop but may find a much larger following in WP7 especially when joined with sharing of notes from a meeting with co-workers. </font></span></font></font></li>
</ul>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l8 level1 lfo8; tab-stops: list .5in" class="MsoNormal"><font face="Calibri"><font color="#000000"><u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">Security</font></span></u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">. Microsoft has invested a great deal of effort ‘under the covers’ to incorporate end to end security to make sure that enterprise IT professionals will be comfortable deploying WP7. </font></span></font></font></li>
</ul>
<ul style="line-height: normal; margin-top: 0in; margin-bottom: 0in; margin-left: 30pt" type="square">
<li style="margin: 0in 0in 0pt; mso-list: l0 level1 lfo9; tab-stops: list .5in" class="MsoNormal"><font face="Calibri"><font color="#000000"><u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">Enterprise Development</font></span></u><span style="mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 11pt">.&#160; Microsoft has provided the same development tools that many enterprises have used to create mobile applications. </font></span></font></font></li>
</ul>
<p style="line-height: normal; margin: 0in 0in 0pt 0.5in" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">Personally, I would have preferred if Microsoft had made a further separation from Windows by calling the new platform Microsoft Phone (with different version numbers) so that they could then have Windows 7 (for desktop and laptops) and then Phone 7 without the reference to Windows (for phones).</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">As for the tablet arena, most firms are leveraging the personal user interfaces and environments from the mobile world for tablets.&#160; Apple has done this by using iOS from the iPhone with enhancements in the iPad (rather than using the Mac desktop OS).&#160; A number of tablets (including the Samsung Galaxy TAB) are using Google’s Android mobile OS.&#160; Thus, it seems likely to me that Microsoft will eventually develop a version of Windows Phone that they might dub Windows Tablet to support larger screens, gestures and the application Windows Phone Marketplace in the tablet arena.</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">I think RIM should be worried with the introduction of Windows Phone. The BlackBerry user interface has not changed much in the past 10 years.&#160; BlackBerry devices are rock solid and work well but don’t provide the ‘sex appeal’ provided in Apple’s iOS or Google’s Android.&#160; Also, Microsoft has great relationships with enterprise IT. They make it easy for enterprises to roll out Windows Phone instead of just BlackBerry phones. It will be interesting to see how RIM responds to Windows Phone over time.</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">Overall, Microsoft is back in the game with Windows Phone 7.&#160; I look forward to spending some time with a Windows Phone and getting some hands-on experience.&#160; In the end, it’s the users and enterprises that vote with their pocketbook, but it seems highly likely that Microsoft will earn significant market share over the next few years as they evolve Windows Phone.&#160; Kudos to the Microsoft team to give the mobile world another good user experience.</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font color="#000000" face="Calibri"></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">We’ll look back on the mobile market 20-30 years from now and see how important it was to provide a number of different user interfaces and then to see how customers declare what they like the most.&#160;&#160; </font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">&#160;</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><font face="Calibri"><font style="font-size: 11pt" color="#000000">Written By:</font></font></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><a href="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0066.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image006[6]" border="0" alt="clip_image006[6]" src="http://robtiffany.com/wp-content/uploads/2010/10/clip_image0066_thumb.jpg" width="112" height="128" /></a></p>
<p> <span style="line-height: normal; font-family: ; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"><font face="Calibri"><font color="#000000"><font style="font-size: 11pt">J. Gerry Purdy, Ph.D.          <br />Principal Analyst           <br />Mobile &amp; Wireless           <br />MobileTrax LLC</font></font><font style="font-size: 11pt">        <br /></font></font><font style="font-size: 11pt"><a style="cursor: auto" href="javascript:location.href='mailto:'+String.fromCharCode(103,101,114,114,121,46,112,117,114,100,121,64,109,111,98,105,108,101,116,114,97,120,46,99,111,109)+'?'"><font color="#0000ff" face="Calibri"><u>gerry.purdy@mobiletrax.com</u></font></a>       <br /></font><font face="Calibri"><font style="font-size: 11pt" color="#000000">404-406-5309</font></font></span></p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/windows-phone-7-if-at-first-you-dont-succeed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile Merge Replication Performance and Scalability Cheat Sheet</title>
		<link>http://robtiffany.com/mobile-merge-replication-performance-and-scalability-cheat-sheet/</link>
		<comments>http://robtiffany.com/mobile-merge-replication-performance-and-scalability-cheat-sheet/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 21:06:00 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Sync]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Distributor]]></category>
		<category><![CDATA[Enterprise Data Synchronization]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Internet Information Services]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[Mobile Middleware]]></category>
		<category><![CDATA[Publication]]></category>
		<category><![CDATA[Publisher]]></category>
		<category><![CDATA[SQL CE]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Subscriber]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://robtiffany.com/sql-server-compact/meap-mobile-merge-replication-performance-and-scalability-cheat-sheet</guid>
		<description><![CDATA[If your Mobile Enterprise Application Platform (MEAP) is using SQL Server Merge Replication to provide the mobile middleware and reliable wireless wire protocol for SQL Server Compact (SSCE) running on Windows Mobile 5/6.x devices + Windows XP/Vista/7 laptops, desktops and tablets; below is a guide to help you build the fastest, most scalable systems: <a href="http://robtiffany.com/mobile-merge-replication-performance-and-scalability-cheat-sheet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If your Mobile Enterprise Application Platform (MEAP) is using SQL Server <em><strong>Merge Replication</strong></em> to provide the mobile middleware and reliable wireless wire protocol for SQL Server Compact (SSCE) running on Windows Mobile and Windows Embedded Handheld devices + Windows XP/Vista/7 tablets, laptops, desktops, slates, and netbooks; below is a guide to help you build the fastest, most scalable systems:</p>
<h2>Active Directory</h2>
<ul>
<li>Since your clients will be passing in their Domain\username + password credentials when they sync, both IIS and SQL Server will make auth requests of the Domain Controller. Ensure that you have at least a primary and backup Domain Controller, that the NTDS.dit disk drives are big enough to handle the creation of a large number of new AD DS objects (mobile users and groups), and that your servers have enough RAM to cache all those objects in memory.</li>
</ul>
<h2>Database Schema</h2>
<ul>
<li>Ensure your schema is sufficiently de-normalized so that you never have to perform more than a 4-way JOIN across tables. This affects server-side JOIN filters as well as SSCE performance.</li>
<li>To ensure uniqueness across all nodes participating in the sync infrastructure, use GUIDs for your primary keys so that SQL Server doesn’t have to deal with the overhead of managing Identity ranges. Make sure to mark your GUIDs as <strong>ROWGUIDCOL</strong> for that table so that Merge won’t try to add an additional <strong>Uniqueidentifier</strong> column to the table.  Don&#8217;t create clustered indexes when using GUIDs as primary keys because they will suffer horrible fragmentation that will rapidly degrade performance.  Just use a normal index.</li>
<li>Create clustered indexes for your primary keys when using Indentity columns, Datetime, or other natural keys.  Ensure that every column in every table that participates in a WHERE clause is indexed.</li>
</ul>
<h2>Distributor</h2>
<ul>
<li>If your network connection is fast and reliable like Wi-Fi or Ethernet, your SSCE client has more than 32 MB of free RAM, and SQL Server isn&#8217;t experiencing any deadlocks due to contention with ETL operations or too many concurrent Merge Agents, create a new Merge Agent Profile based on the <strong>High Volume Server-to-Server Profile</strong> so that SQL Server will perform more work per round-trip and speed up your synchronizations.</li>
<li>If you&#8217;re using a 2G/3G Wireless Wide Area Network connection, create a Merge Agent Profile based on the <strong>Default Profile</strong> so that SQL Server will perform less work and use fewer threads per round-trip during synchronization than the <strong>High Volume Server to Server Profile</strong> which will help to reduce server locking contention and perform less work per round trip which will make your synchronizations more likely to succeed.</li>
<li>In order to prevent SQL Server from performing Metadata Cleanup every time a Subscriber synchronizes, set the <strong>–MetadataRetentionCleanup</strong> parameter to <strong>0</strong>.</li>
<li>As SQL Server has to scale up to handle a higher number of concurrent users in the future, locking contention will increase due to more Merge Agents trying to perform work at the same time.  When this happens, adjust the parameters of the <strong>Default Profile</strong> so that both <strong> –SrcThreads</strong> and <strong>–DestThreads</strong> are equal to <strong>1</strong>.</li>
</ul>
<h2>Publication</h2>
<ul>
<li>When defining the Articles you’re going to sync, only check the minimum tables and columns needed by the Subscriber to successfully perform its work.</li>
<li>For Lookup/Reference tables that aren’t modified by the Subscriber, mark those as <strong>Download-only</strong> to prevent change-tracking metadata from being sent to the Subscriber.</li>
<li>Despite the fact the <strong>column-level</strong> tracking sends less data over the air, stick with <strong>row-level</strong> tracking so SQL Server won’t have to do as much work to track the changes.</li>
<li>Use the default conflict resolver where the “Server wins” unless you absolutely need a different manner of picking a winner during a conflict.</li>
<li>Use Static Filters to reduce the amount of server data going out to all Subscribers.</li>
<li>Make limited use of Parameterized Filters which are designed to reduce and further specify the subset of data going out to a particular Subscriber based on a HOST_NAME() which creates data partitions.  This powerful feature slows performance and reduces scalability with each additional filter, so it must be used sparingly.</li>
<li><em><strong>Keep filter queries simple</strong></em> and don’t use IN clauses, sub-selects or any kind of circular logic.</li>
<li>Strive to always create &#8220;well-partitioned&#8221; Articles where all changes that are uploaded/downloaded are mapped to only the single partition ID for best performance and scalability.
<ul>
<li>When using Parameterized Filters, always create non-overlapping data partitions where each row from a filtered table only goes to a single Subscriber instead of more than one which will avoid the use of certain Merge metadata tables.</li>
<li>Each Article in this scenario can only be pubished to a single Publication</li>
<li>A Subscriber cannot insert rows that do not belong to its partition ID.</li>
<li>A Subscriber cannot update columns that are involved in filtering.</li>
<li>In a join filter hierarchy, a regular article cannot be the parent of a &#8220;well-partitioned&#8221; article.</li>
<li>The join filter in which a well-partitioned article is the child must have the join_unique_key set to a value of 1 which relates to the <strong>Unique key</strong> check box of the Add Join dialog.  This means there&#8217;s a one-to-one or one-to-many relationship with the foreign key.</li>
<li>Each &#8220;well-partitioned&#8221; Article can have only one subset or join filter. The article can have a subset filter and be the parent of a join filter, but cannot have a subset filter and be the child of a join filter.</li>
</ul>
</li>
<li>Never extend a filter out to more than 4 joined tables.</li>
<li>Do not filter tables that are primarily lookup/reference tables, small tables, and tables with data that does not change.</li>
<li>Schedule the Snapshot Agent to run once per day to create an unfiltered schema Snapshot.</li>
<li>Set your Subscriptions to expire as soon as possible to keep the amount change-tracking metadata SQL Server has to manage to an absolute minimum. Normally, set the value to 2 to accommodate 3-day weekends since 24 hours are automatically added to the time to account for multiple time zones. If server-side change tracking isn’t needed and Subscribers are pulling down a new database every day and aren’t uploading data, then set the expiration value to 1.</li>
<li>Set <strong>Allow parameterized filters</strong> equal to True.</li>
<li>Set <strong>Validate Subscribers</strong> equal to HOST_NAME().</li>
<li>Set <strong>Precompute partitions</strong> equal to True to allow SQL Server to optimize synchronization by computing in advance which data rows belong in which partitions.</li>
<li>Set <strong>Optimize synchronization</strong> equal to False if <strong>Precompute partitions</strong> is equal to True.  Otherwise set it to True to optimize filtered Subscriptions by storing more metadata at the Publisher.</li>
<li>Set <strong>Limit concurrent processes</strong> equal to True.</li>
<li>Set <strong>Maximum concurrent processes</strong> equal to the number of SQL Server processor cores.  If exceesive locking contention occurs, reduce the number of concurrent processes until the problem is fixed.</li>
<li>Set <strong>Replicate schema changes</strong> equal to True.</li>
<li>Check <strong>Automatically define a partition and generate a snapshot if needed when a new Subscriber tries to synchronize</strong>. This will reduce Initialization times since SQL Server creates and applies snapshots using the fast BCP utility instead of a series of slower SELECT and INSERT statements.</li>
<li>Add data partitions based on unique HOST_NAMEs and schedule the Snapshot Agent to create those filtered Snapshots nightly or on the weekend so they’ll be built using the fast BCP utility and waiting for new Subscribers to download in the morning.</li>
<li>Ensure that SQL Server has 1 processor core and 2 GB of RAM for every 100 concurrent Subscribers utilizing bi-directional sync. Add 1 core and 2 GB of RAM server for every additional 100 concurrent Subscribers you want to add to the system.  Never add more Subscribers and/or IIS servers without also adding new cores and RAM to the Publisher.</li>
<li>Turn off <strong>Hyperthreading</strong> in the BIOS of the SQL Server as it has been known to degrade SQL Server performance.</li>
<li>Do not add your own user-defined triggers to tables on a Published database since Merge places 3 triggers on each table already.</li>
<li>Add one or more <strong>Filegroups</strong> to your database to contain multiple, secondary database files spread out across many physical disks.</li>
<li>Limit use of large object types such as text, ntext, image, varchar(max), nvarchar(max) or varbinary(max) as they require a significant memory allocation and will negatively impact performance.</li>
<li>Set SQL Servers’s minimum and maximum memory usage to within 2 GB of total system memory so it doesn’t have to allocate more memory on-demand.</li>
<li>Always use SQL Server 2008 R2 and Windows Server 2008 R2 since they work better together because they take advantage of the next generation networking stack which dramatically increases network throughput. They can also scale up as high as 256 cores.</li>
<li>Due to how Merge Replication tracks changes with triggers, Merge Agents, and tracking tables, it will create locking contention withDML/ ETL operations.  This contention degrades server performance which negatively impacts sync times with devices.  This contention should be mitgated by performing large INSERT/UPDATE/DELETE DML/ETL operations during a nightly maintenance window when Subscribers aren’t synchronizing.</li>
<li>Since Published databases result in slower DML/ETL operations, perform changes in bulk by using XML Stored Procedures to boost performance.</li>
<li>To improve the performance of pre-computed partitions when DML/ETL operations result in lots of data changes, ensure that changes to a Parent table in a join filter are made before corresponding changes in the child tables.  This means that when DML/ETL operations are pushing new data into SQL Server, they must add master data to the parent filter table first, and then add detail data to all the related child tables second, in order for that data to be pre-computed and optimized for sync.</li>
<li>Create filter partitions based on things that don’t change every day.  Partitions that are added and deleted from SQL Server and Subscribers that move from one partition to another is very disruptive to the performance of Merge Replication.</li>
<li>Always perform initializations and re-initializations over Wi-Fi or Ethernet when the device is docked because this is the slowest operation where the entire database must be downloaded instead of just deltas.  To determine rough estimates for initialization, multiply the size of the resulting SSCE .sdf file <strong>x</strong> the bandwidth speed available to the device.  A file copy over the expected network will also yield estimates for mininum sync times.  These times don&#8217;t include the work SQL Server and IIS must perform to provide the data or data INSERT times on SSCE.</li>
<li>If your SQL Server Publisher hits a saturation point with too many concurrent mobile Subscribers, you can scale it out creating a Server/Push Republishing hierarchy. Put the primary SQL Server Publisher at the top of the pyramid and have two or more SQL Servers subscribe to it. These can be unfiltered Subscriptions where all SQL Servers get the same data or the Subscribers can filter their data feeds by region for example. Then have the Subscribing SQL Servers Publish their Subscription for consumption by mobile SSCE clients.</li>
<li>Create just a single Publication.</li>
</ul>
<h2>Internet Information Services</h2>
<ul>
<li>Use the x64 version of the <strong>SQL Server Compact 3.5 SP2 Server Tools</strong> with Windows Server 2008 R2 running inside IIS 7.5.</li>
<li>Use a single Server Agent in a single Virtual Directory.</li>
<li>Ensure the IIS Virtual Directory where the Server Agent resides is on a fast solid-state drive that’s separate from the disk where Windows Server is installed to better support file I/O.</li>
<li>Use a low-end server with 2 processor cores and 2 GB of RAM to support 400 concurrent Subscribers queued at the same time.</li>
<li>Set the MAX<strong>_THREADS_PER_POOL </strong>Server Agent registry key equal to 2 to match the IIS processor cores and RAM. Do not set this value to a higher number than the number of cores.</li>
<li>Set the <strong>MAX_PENDING_REQUEST</strong> Server Agent registry key equal to 400 which means the Server Agent will queue up to 400 concurrent Subscribers waiting for one of the 2 worker threads to become available to sync with SQL Server.</li>
<li>Set the <strong>IIS Connection Limits</strong> property to 400 to prevent an unlimited number of connections reaching the Server Agent.</li>
<li>Add a new load-balanced IIS server for every additional 400 concurrent Subscribers you want to add to the system.</li>
</ul>
<h2>Subscriber</h2>
<ul>
<li>Use the appropriate x64, x86 or ARM version of SQL Server Compact 3.5 SP2 to take advantage of the <strong>PostSyncCleanup</strong> property of the <strong>SqlCeReplication</strong> object that can reduce the time it takes to perform an initial synchronization. Set the <strong>PostSyncCleanup</strong> property equal to 3 where neither <strong>UpdateStats</strong> nor <strong>CleanByRetention</strong> are performed.</li>
<li>Increase the <strong>Max Buffer Size</strong> connection string parameter to <strong>1024</strong> on a phone and <strong>4096</strong> on a PC to boost both replication and SQL query processing performance. If you have more RAM available, set those values even higher until you reach the law of diminishing returns.</li>
<li>Keep your SSCE database compact and fast by setting the <strong>Autoshrink Threshold</strong> connection string parameter to 10 so it starts reclaiming empty data pages once the database has become 10% fragmented.</li>
<li>Replication performance testing must be performed using actual PDAs to observe how available RAM, storage space and CPU speed affect moving data into the device’s memory area and how quickly this data is inserted into the SSCE database tables.  Since the SSCE database doubles in size during replication, the device must have enough storage available or the operation will fail.  Having plenty of available RAM is important so that SSCE can utilize its memory buffer to complete a Merge Replication operation more quickly.  With plenty of available RAM and storage, a fast CPU will make all operations faster.</li>
<li>The PDA must have at least an extra 32 MB of available free RAM that can be used by the .NET Compact Framework (NETCF) application.  If additional applications are running on the device at the same time, even more RAM is needed.  If a NETCF application has insufficient RAM is will discard its compiled code and run in interpreted mode which will slow the application down.  If the NETCF app is still under memory pressure after discarding compiled code, Windows Mobile will first tell the application to return free memory to the operating system and then will terminate the app if needed.</li>
<li>Set the <strong>CompressionLevel</strong> property of the <strong>SqlCeReplication </strong>object to 0 for fast connections and increment it from 1 to 6 on slower connections like GPRS to increase speed and reduce bandwidth consumption.</li>
<li>Tune the <strong>ConnectionRetryTimeout</strong>, <strong>ConnectTimeout</strong>, <strong>ReceiveTimeout</strong> and <strong>SendTimeout</strong> properties of the <strong>SqlCeReplication</strong> object based on expected bandwidth speeds:</li>
</ul>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="160"><strong>Property</strong></td>
<td valign="top" width="160"><strong>High Bandwidth</strong></td>
<td valign="top" width="160"><strong>Medium Bandwidth</strong></td>
<td valign="top" width="160"><strong>Low Bandwidth</strong></td>
</tr>
<tr>
<td valign="top" width="160">ConnectionRetryTimeout</td>
<td valign="top" width="160">30</td>
<td valign="top" width="160">60</td>
<td valign="top" width="160">120</td>
</tr>
<tr>
<td valign="top" width="160">ConnectTimeout</td>
<td valign="top" width="160">3000</td>
<td valign="top" width="160">6000</td>
<td valign="top" width="160">12000</td>
</tr>
<tr>
<td valign="top" width="160">ReceiveTimeout</td>
<td valign="top" width="160">1000</td>
<td valign="top" width="160">3000</td>
<td valign="top" width="160">6000</td>
</tr>
<tr>
<td valign="top" width="160">SendTimeout</td>
<td valign="top" width="160">1000</td>
<td valign="top" width="160">3000</td>
<td valign="top" width="160">6000</td>
</tr>
</tbody>
</table>
<ul>
<li>You can decrease potentially slow SSCE file I/O by adjusting the Flush Interval connection string parameter to write committed transactions to disk less often than the default of every 10 seconds.  Test longer intervals between flushes like 20 or 30 seconds. Keep in mind that these transactions can be lost if the disk or system fails before flushing occurs so be careful.</li>
<li>When replicating data that has been captured in the field by the device, perform Upload-only syncs to shorten the duration.</li>
</ul>
<h2>Storage</h2>
<ul>
<li>Use a Fibre Channel SAN with 15k RPM or solid-state disks for best I/O performance.</li>
<li>Databases should reside on a RAID 10, unshared LUN comprised of at least 6 disks.</li>
<li>Database logs should reside on a RAID 10, unshared LUN comprised of at least 6 disks.</li>
<li>Tempdb should reside on a RAID 10, unshared LUN comprised of at least 6 disks.</li>
<li>The Tempdb log should reside on a RAID 10, unshared LUN comprised of at least 6 disks.</li>
<li>The Snapshot share should reside on a RAID 10, unshared LUN comprised of at least 6 disks.  This disk array should be large enough to accommodate a growing number of filtered Snapshots. Snapshot folders for Subscribers that no longer use the system must be manually deleted.</li>
<li>Merge Replication metadata tables should reside on a RAID 10, unshared LUN comprised of at least 6 disks.</li>
<li>Increase your Host Bus Adapter (HBA) queue depths to 64.</li>
<li>Your Publication database should be broken up into half the number of files as the SQL Server has processor cores. Each file must be the same size.</li>
<li>Tempdb should be pre-sized with an auto-growth increment of 10%. It should be broken up into the same number of files as the SQL Server has processor cores. Each file must be the same size.</li>
</ul>
<h2>High Availability</h2>
<ul>
<li>Load-balance the IIS servers to scale them out. Enable Server Affinity (stickiness) since the <strong>Replication Session Control Blocks</strong> that transmit data between the Server Agent and SSCE are stateful. Test to ensure that your load-balancer is actually sending equal amounts of Subscriber sync traffic to each IIS server.  Some load-balancers can erroneously send all traffic to a single IIS server if not properly configured.</li>
<li>Implement Windows Clustering so that SQL Server can failover to a second node.</li>
<li>Using SQL Server Mirroring so that your Published database will failover to a standby server.</li>
<li>Make a second SQL Server into an unfiltered Subscriber to your Publisher so that it can take over Merge Replication duties for mobile clients as a Republisher if the primary SQL Server fails. SSCE clients would just have to reinitialize their Subscriptions to begin synchronizing with the new Republisher.</li>
</ul>
<h2>Ongoing Maintenance</h2>
<ul>
<li>Use the Replication Monitor to have a real-time view of the synchronization performance of all your Subscribers.</li>
<li>Use the web-based SQL Server Compact Server Agent Statistics and Diagnostics tools to monitor the health and activity of the Server Agent running on IIS.</li>
<li>Create a SQL Job to execute the <strong>sp_MSmakegeneration</strong> stored procedure after large DML operations. Regular execution after INSERTING/UPDATING/DELETING data from either DML/ETL operations or after receiving lots of changes from Subscribers will maintain subsequent sync performance. Executing this stored procedure from the server-side is preferable to having it executed as a result of a Subscriber sync which would block all other Subscribers.</li>
<li>During your nightly maintenance window, rebuild the indexes and update the statistics of the following Merge Replication metadata tables:
<ul>
<li><strong>MSmerge_contents</strong></li>
<li><strong>MSmerge_tombstone</strong></li>
<li><strong>MSmerge_genhistory</strong></li>
<li><strong>MSmerge_current_partition_mappings</strong></li>
<li><strong>MSmerge_past_partition_mappings</strong></li>
<li><strong>MSmerge_generation_partition_mappings</strong></li>
</ul>
</li>
<li>If you notice performance degradation during the day due to a large number of Subscribers making large changes to the database, you can updates the statistics (with fullscan) of the Merge Replication metadata tables more frequently throughout the day to force stored proc recompiles to get a better query plan.
<ul>
<li>UPDATE STATISTICS MSmerge_generation_partition_mappings WITH FULLSCAN</li>
<li>UPDATE STATISTICS MSmerge_genhistory WITH FULLSCAN</li>
</ul>
</li>
<li>Rebuild/defrag indexes on your database tables and Merge Replication metadata tables throughout the day to reduce locking contention and maintain performance.</li>
<li>Use the Missing Indexes feature of SQL Server to tell you which indexes you could add that would give your system a performance boost. Do not add recommended indexes to Merge system tables.</li>
<li>Use the Database Engine Tuning Advisor to give you comprehensive performance tuning recommendations that cover every aspect of SQL Server.</li>
<li>Monitor the performance of the following counters:
<ul>
<li><strong>Processor Object: % Processor Time: </strong>This counter represents the percentage of processor utilization. A value over 80% is a CPU bottleneck.</li>
<li><strong>System Object: Processor Queue Length: </strong>This counter represents the number of threads that are delayed in the processor Ready Queue and waiting to be scheduled for execution. A value over 2 is bottleneck and shows that there is more work available than the processor can handle. Remember to divide the value by the number of processor cores on your server.</li>
<li><strong>Memory Object: Available Mbytes: </strong>This counter represents the amount of physical memory available for allocation to a process or for system use. Values below 10% of total system RAM indicate that you need to add additional RAM to your server.</li>
<li><strong>PhysicalDisk Object: % Disk Time: </strong>This counter represents the percentage of time that the selected disk is busy responding to read or write requests. A value greater than 50% is an I/O bottleneck.</li>
<li><strong>PhysicalDisk Object: Average Disk Queue Length: </strong>This counter represents the average number of read/write requests that are queued on a given physical disk. If your disk queue length is greater than 2, you’ve got an I/O bottleneck with too many read/write operations waiting to be performed.</li>
<li><strong>PhysicalDisk Object: Average Disk Seconds/Read and Disk Seconds/Write: </strong>These counters represent the average time in seconds of a read or write of data to and from a disk. A value of less than 10 ms is what you’re shooting for in terms of best performance. You can get by with subpar values between 10 – 20 ms but anything above that is considered slow. Times above 50 ms represent a very serious I/O bottleneck.</li>
<li><strong>PhysicalDisk Object: Average Disk Reads/Second and Disk Writes/Second: </strong>These counters represent the rate of read and write operations against a given disk. You need to ensure that these values stay below 85% of a disk’s capacity by adding disks or reducing the load from SQL Server. Disk access times will increase exponentially when you get beyond 85% capacity.</li>
</ul>
</li>
<li>A limited number of database schema changes can be made and synchronized down to SSCE Subscribers without any code changes which makes it easier to update your system as it evolves over time.</li>
<li>Use a Merge Replication Test Harness to stress test the entire system.  The ability to simulate hundreds or thousands of concurrent synchronizing Subscribers allows you to monitor performance and the load on the system.  This is helpful in properly configuring and tuning SQL Server, IIS, and the Windows Mobile devices.  It will tell you where you’re having problems and it will let you predict how much server hardware you will need to support growing numbers of Subscribers over time.  It’s also very important to simulate worst-case scenarios that you never expect to happen.</li>
</ul>
<p>I hope this information sufficiently empowers you to take on the largest MEAP solutions that involve SQL Server Merge Replication and SQL Server Compact.  If you need a deeper dive, go check out my book on Enterprise Data Synchronization <a title="http://www.amazon.com/Enterprise-Synchronization-Microsoft-Compact-Replication/dp/0979891213/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1271964573&amp;sr=1-1" href="http://www.amazon.com/Enterprise-Synchronization-Microsoft-Compact-Replication/dp/0979891213/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1271964573&amp;sr=1-1">http://www.amazon.com/Enterprise-Synchronization-Microsoft-Compact-Replication/dp/0979891213/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1271964573&amp;sr=1-1</a> over at Amazon.  Now go build a fast and scalable solution for your company or your customers.</p>
<p>Best Regards,</p>
<p>Rob</p>
<p>P.S.  If your solution doesn&#8217;t require all the advanced features found in Merge Replication, I highly recommend you use Remote Data Access (RDA).  This is a much simpler sync technology that&#8217;s extremely fast, scalable, and easier to manage.</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/mobile-merge-replication-performance-and-scalability-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Making MEAP Real</title>
		<link>http://robtiffany.com/making-meap-real/</link>
		<comments>http://robtiffany.com/making-meap-real/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 23:53:03 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[.NET Compact Framework]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[Laptop]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mobile Middleware]]></category>
		<category><![CDATA[Netbook]]></category>
		<category><![CDATA[Slate]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Tablet]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>
		<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[Windows XP]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=107</guid>
		<description><![CDATA[After all the logical diagrams of Microsoft MEAP and spelling out how it meets Gartner&#8217;s critical capabilities, I thought I’d show you a picture that provides a more concrete view of what our MEAP offering looks like. Hopefully, this will &#8230; <a href="http://robtiffany.com/making-meap-real/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After all the logical diagrams of Microsoft MEAP and spelling out how it meets Gartner&#8217;s critical capabilities, I thought I’d show you a picture that provides a more concrete view of what our MEAP offering looks like.  Hopefully, this will better crystallize how Microsoft lines up with those critical capabilities and how our reusable mobile application platform plugs into a customer’s enterprise.  I think we have a great story here that shows customers how we can save them money on a platform that:</p>
<p>1. Works the same across laptops, tablets, Netbooks and phones.<br />
2. Gives them reusable mobile middleware that can support multiple simultaneous applications rather than needing something different for each point solution<br />
3. Lowers risk to their projects by reducing the amount of custom code needed to build any given solution.<br />
4. Gives them adapters that plug into the existing enterprise packages they use to run their business.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/02/MEAPPhysical.png"><img src="http://robtiffany.com/wp-content/uploads/2010/02/MEAPPhysical.png" alt="MEAP Physical Diagram" title="MEAPPhysical" width="520" height="420" class="alignleft size-full wp-image-106" /></a></p>
<p>Regards,<br />
Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/making-meap-real/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finding your Windows phone on the CBS Early Show</title>
		<link>http://robtiffany.com/finding-your-windows-phone-on-the-cbs-early-show/</link>
		<comments>http://robtiffany.com/finding-your-windows-phone-on-the-cbs-early-show/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 05:41:29 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[My Phone]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=99</guid>
		<description><![CDATA[Microsoft&#8217;s My Phone service got its first public showing on the CBS Early Show when CNET&#8217;s Senior Editor Natali Del Conte put the system through its paces in New York.  Natali tossed her HTC Pure running Windows Mobile 6.5 into a &#8230; <a href="http://robtiffany.com/finding-your-windows-phone-on-the-cbs-early-show/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Microsoft&#8217;s My Phone service got its first public showing on the CBS Early Show when CNET&#8217;s Senior Editor Natali Del Conte put the system through its paces in New York.  Natali tossed her HTC Pure running Windows Mobile 6.5 into a taxi to simulate a real-world scenario where a passenger loses her phone. </p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="324" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="linkUrl=http://www.cbsnews.com/video/watch/?id=6013655n&amp;tag=related;photovideo&amp;releaseURL=http://cnettv.cnet.com/av/video/cbsnews/atlantis2/player-dest.swf&amp;videoId=50081307,50081392,50081391,50081390,50081389,50081380,50081376&amp;partner=news&amp;vert=News&amp;si=254&amp;autoPlayVid=false&amp;name=cbsPlayer&amp;allowScriptAccess=always&amp;wmode=transparent&amp;embedded=y&amp;scale=noscale&amp;rv=n&amp;salign=tl" /><param name="src" value="http://cnettv.cnet.com/av/video/cbsnews/atlantis2/player-dest.swf" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="324" src="http://cnettv.cnet.com/av/video/cbsnews/atlantis2/player-dest.swf" allowfullscreen="true" flashvars="linkUrl=http://www.cbsnews.com/video/watch/?id=6013655n&amp;tag=related;photovideo&amp;releaseURL=http://cnettv.cnet.com/av/video/cbsnews/atlantis2/player-dest.swf&amp;videoId=50081307,50081392,50081391,50081390,50081389,50081380,50081376&amp;partner=news&amp;vert=News&amp;si=254&amp;autoPlayVid=false&amp;name=cbsPlayer&amp;allowScriptAccess=always&amp;wmode=transparent&amp;embedded=y&amp;scale=noscale&amp;rv=n&amp;salign=tl"></embed></object></p>
<p>While you probably knew that My Phone backs up your photos, contacts, text messages, music, documents and IE favorites to the cloud, you might not have known that My Phone can be used to locate and secure a lost phone.  You can ring, lock, erase, and locate your lost phone on a map.  On the CBS Early Show, Natali was able to display a message on her lost Windows phone instructing whoever found it to contact her and return it.  Pretty cool stuff and a great example of Microsoft tying the cloud to the third screen.</p>
<p>Best Regards,</p>
<p>Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/finding-your-windows-phone-on-the-cbs-early-show/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview with Rob @ Tech Ed Europe 2009</title>
		<link>http://robtiffany.com/interview-with-rob-tech-ed-europe-2009/</link>
		<comments>http://robtiffany.com/interview-with-rob-tech-ed-europe-2009/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 20:45:42 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[.NET Compact Framework]]></category>
		<category><![CDATA[Adapter]]></category>
		<category><![CDATA[Application Management]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Mobile Middleware]]></category>
		<category><![CDATA[Reverse Proxy]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Business Intelligence Development Studio]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=49</guid>
		<description><![CDATA[Check out the interview I did with David Goon at Tech Ed Europe 2009 in Berlin.  I discuss Microsoft&#8217;s Mobile Enterprise Application Platform and talk about how it aligns with Gartner&#8217;s MEAP critical capabilities and how it can save money for companies. &#8230; <a href="http://robtiffany.com/interview-with-rob-tech-ed-europe-2009/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Check out the interview I did with David Goon at Tech Ed Europe 2009 in Berlin.  I discuss Microsoft&#8217;s Mobile Enterprise Application Platform and talk about how it aligns with Gartner&#8217;s MEAP critical capabilities and how it can save money for companies.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="180" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.facebook.com/v/241564376017" /><embed type="application/x-shockwave-flash" width="320" height="180" src="http://www.facebook.com/v/241564376017" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>With the tidal wave of mobile and wireless technologies sweeping across both the consumer and enterprise landscapes, I believe MEAP offerings give us a glimpse of a new standard for designing all future infrastructures.</p>
<p>-Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/interview-with-rob-tech-ed-europe-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yes, Microsoft does have a Mobile Enterprise Application Platform (MEAP)</title>
		<link>http://robtiffany.com/yes-microsoft-does-have-a-mobile-enterprise-application-platform-meap/</link>
		<comments>http://robtiffany.com/yes-microsoft-does-have-a-mobile-enterprise-application-platform-meap/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 22:54:55 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[BitLocker]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[ISA Server]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Reverse Proxy]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Business Intelligence Development Studio]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[WCF Strore and Forward]]></category>
		<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=15</guid>
		<description><![CDATA[Gartner says that the Mobile Enterprise Application Platform (MEAP) market will top $1 Billion by the end of 2010 and that more than 95% of organizations will choose MEAP instead of point solutions through 2012.  The big takeaway here is &#8230; <a href="http://robtiffany.com/yes-microsoft-does-have-a-mobile-enterprise-application-platform-meap/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="mceTemp" style="text-align: left;">Gartner says that the Mobile Enterprise Application Platform (MEAP) market will top $1 Billion by the end of 2010 and that more than 95% of organizations will choose MEAP instead of point solutions through 2012.  The big takeaway here is that companies have been building tactical mobile application silos that support only one application and now they want to save money by going with a reusable platform capable of supporting multiple applications.  Oh and along the way it needs to support multiple device and OS platforms while providing security, device management, and a single IDE to build apps and logic to integrate with back end systems.</div>
<div class="mceTemp" style="text-align: left;">Gartner has a &#8220;rule of three&#8221; that states that a MEAP offers significant advantages in three situations:</div>
<ol>
<li>When there are 3 or more mobile applications</li>
<li>When there are 3 or more targeted operating systems or platforms</li>
<li>When they involve the integration of 3 or more back-end systems</li>
</ol>
<p>Leaders in this space have included Sybase iAnywhere, Antenna, Dexterra, Syclo and Spring Wireless.  Microsoft goes from a large Mobile General Store with myriad solutions to a player in this space with a MEAP solution of our own:  <img class="aligncenter size-full wp-image-39" title="Microsoft Mobile Enterprise Application Platform" src="http://robtiffany.com/wp-content/uploads/2009/10/MEAPsm.jpg" alt="Microsoft Mobile Enterprise Application Platform" width="448" height="278" />Visual Studio is used to build the mobile logic and UI.  Merge Replication provides occasionally-connected data synchronization between SQL Server Compact on the mobile device and SQL Server in the data center.  SQL Server Business Intelligence Development Studio is used to visually create connections to back-end systems like SAP or databases like Oracle.  Data in transit is secured via SSL or VPN, data at rest is encrypted via device encryption, SQL Server Compact, BitLocker or programmatically through the Crypto API.  Integration packages that communicate with back-end systems are encrypted and digitally signed. </p>
<p>We already have the best mobile email, calendaring, and contacts product in the business where Exchange Active Sync keeps Outlook and Outlook Mobile always up to date with Exchange Server.  Server-to-device as well as peer-to-peer device notifications are facilitated through WCF Store and Forward on Exchange.  Software and patch distribution along with device settings and policy management is accompished via System Center Configuration Manager.  ISA Server provides both VPN and Reverse Proxy access to roaming applications on the Internet on any platform.</p>
<p>When you put this stack in place and resuse it for multiple mobile applications instead of going with point solutions, ROI savings increase as the need for POCs, Pilots and training are reduced and the need for extra client access licenses is eliminated.  That&#8217;s Gartner&#8217;s first requirement.  We hit Gartner&#8217;s second requirement by uniformly supporting 3 mobile operating systems in the form of Windows, Windows CE, and Windows Mobile.  Last but not least, our SQL Server Integration Services technology combined with dozens of connectors mean we can connect your mobile devices with almost any back-end package or database.</p>
<p>Yes, Microsoft does have a Mobile Enterprise Application Platform that&#8217;s already proven to scale to tens of thousands of devices and it will definitely save you time and money.</p>
<p>- Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/yes-microsoft-does-have-a-mobile-enterprise-application-platform-meap/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Enterprise Data Synchronization with Microsoft SQL Server 2008 and SQL Server Compact 3.5 Mobile Merge Replication</title>
		<link>http://robtiffany.com/enterprise-data-synchronization-with-microsoft-sql-server-2008-and-sql-server-compact-3-5-mobile-merge-replication/</link>
		<comments>http://robtiffany.com/enterprise-data-synchronization-with-microsoft-sql-server-2008-and-sql-server-compact-3-5-mobile-merge-replication/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 00:46:53 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[ISA Server]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[RDA]]></category>
		<category><![CDATA[Remote Data Access]]></category>
		<category><![CDATA[Reverse Proxy]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=62</guid>
		<description><![CDATA[I’m happy to say that my latest book is now available on Amazon. With the world&#8217;s largest organizations rolling out tens of thousands of Windows® phones, laptops, tablets and Netbooks to empower their respective mobile workforces, the ability to create &#8230; <a href="http://robtiffany.com/enterprise-data-synchronization-with-microsoft-sql-server-2008-and-sql-server-compact-3-5-mobile-merge-replication/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I’m happy to say that my latest book is now available on <a title="Enterprise Data Synchronization" href="http://www.amazon.com/Enterprise-Synchronization-Microsoft-Compact-Replication/dp/0979891213/ref=sr_1_4?ie=UTF8&amp;s=books&amp;qid=1248893911&amp;sr=1-4" target="_blank">Amazon</a>.</p>
<p>With the world&#8217;s largest organizations rolling out tens of thousands of Windows® phones, laptops, tablets and Netbooks to empower their respective mobile workforces, the ability to create mobile line of business solutions that support large numbers of users is absolutely critical. In my fourth book on mobile infrastructure and development, I show you how to take the SQL Server data you use to run your organization and make it available to all of your mobile employees.</p>
<p>Step-by-step, I’ll walk you through the process of building a secure, performant, n-tier, mobile enterprise application platform architecture designed to scale to thousands of users. You&#8217;ll also learn how to create occasionally-connected .NET applications designed to thrive in unreliable wireless conditions.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2009/10/CoverSM.png"><img class="aligncenter size-full wp-image-82" title="CoverSM" src="http://robtiffany.com/wp-content/uploads/2009/10/CoverSM.png" alt="Enterprise Data Synchronization with Microsoft SQL Server 2008 and SQL Server Compact=" height="300" /></a></p>
<ul>
<li>Learn how to &#8220;Mobilize&#8221; your organization by making your enterprise data available to employees carrying Windows® phones, laptops, Netbooks and tablets in the field.</li>
<li>Learn how to build an N-Tier Mobile Sync infrastructure that will scale to thousands of users.</li>
<li>Learn how to create occasionally-connected .NET applications designed to thrive in unreliable wireless conditions.</li>
<li>Learn best practices in security, reliability, performance, load-balancing, reverse proxy and hardware configuration.</li>
<li>Learn how to implement this technology in real world scenarios like supply chain management, retail, sales force automation, healthcare and emergency management.</li>
</ul>
<p> </p>
<p>Keep in mind that the knowledge you gain from this book didn’t come from me dreaming this stuff up in an Ivory Tower.  It came from building some of the worlds largest and most complex data synchronization systems for the world’s largest companies.  In addition to the hands-on experience that went into this book, I’d also like to thank some of my colleagues for their invaluable contributions:</p>
<ul>
<li>Liam Cavanagh is a Senior Lead Program Manager for Microsoft’s Sync Framework and Cloud Data Services and he wrote the forward.</li>
<li>Catherine Wyatt is the Managing Editor for Hood Canal Press who made the publishing of the book possible.</li>
<li>Darren Shaffer is the CEO of Handheld Logic and he wrote the Chapter on building the Mobile Subscriber. </li>
<li>Michael Jimenez is a Mobility Architect at Microsoft and he wrote the Appendix that shows you how to create an ISA Server 2006 Reverse Proxy to publish your sync infrastructure to the Internet.</li>
</ul>
<p> </p>
<p>It’s my sincere hope that this book will encourage you to un-tether your workforce from their desktop computers and boost your organization’s agility by pushing out critical business functions to the point of activity where employees are empowered to make timely decisions and perform tasks that best serve the interests of their customers and their company.</p>
<p>This repudiation of the traditional “connected” software application model increases customer satisfaction, boosts worker efficiency, reduces “missed opportunities” and results in cost savings as “un-wired” employees get their jobs done wherever they happen to be.</p>
<p>Best Regards,</p>
<p>Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/enterprise-data-synchronization-with-microsoft-sql-server-2008-and-sql-server-compact-3-5-mobile-merge-replication/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The Windows Phones have arrived!</title>
		<link>http://robtiffany.com/the-windows-phones-have-arrived/</link>
		<comments>http://robtiffany.com/the-windows-phones-have-arrived/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 20:49:06 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=10</guid>
		<description><![CDATA[I’m pleased to announce that today we’re launching a new line of Windows® phones around the world that are available in a broad range of styles and prices. With a Windows phone, you can navigate easily with the touch of &#8230; <a href="http://robtiffany.com/the-windows-phones-have-arrived/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I’m pleased to announce that today we’re launching a new line of <strong>Windows<sup>®</sup> phones</strong> around the world that are available in a broad range of styles and prices. With a Windows phone, you can navigate easily with the touch of a finger and browse the Internet on a great mobile browser. You can also connect to two new services that allow you to back up and share data from your phone to the Web and buy a variety of useful applications from the Windows Marketplace for Mobile. Microsoft expects partners to deliver more than 30 new phones in more than 20 countries by the end of 2009.</p>
<p><img class="alignnone size-full wp-image-11" title="Windows phone" src="http://robtiffany.com/wp-content/uploads/2009/10/pure.jpg" alt="Windows phone" width="360" height="614" /></p>
<p><strong>One Phone for Work and Play</strong></p>
<p>With a Windows phone, people can rely on their phone to balance their lives, from work to home to play. Whether it’s editing a document or sharing several vacation updates through a social networking application, Windows phones help people stay connected to the people and information they care about most. Because people’s phones often match their personality and unique needs, Microsoft now offers the Windows phone Custom Theme Creator. People can create personalized themes for their Windows phone by choosing the color and design that suits their style at <a href="http://www.windowsphone.com/theme">http://www.windowsphone.com/theme</a>.</p>
<p>With a Windows phone, people will have familiar work and play experiences right from their Start button, including these:</p>
<p>• A new enhanced Windows Live experience with What’s New feeds and improved Windows Live photo sharing across major social networking sites (such as Twitter, Facebook, MySpace and Flickr)</p>
<p>• A best-in-class e-mail experience and the ability to manage multiple accounts right from their phone with Outlook Mobile and Exchange Server synchronization not to mention Hotmail</p>
<p>• The ability to use PowerPoint and open and edit Word and Excel documents from their phone with Microsoft Office Mobile</p>
<p>• The power to sync files on the phone through Windows Live Media Manager and play media files seamlessly with Windows Media Player</p>
<p>• A redesigned Windows Internet Explorer mobile browser with Adobe Flash Lite that brings the mobile Web browsing experience closer to what people have come to expect from their PC</p>
<p><strong>Powerful Mobile Services</strong></p>
<p>With the launch of these new Windows phones, Microsoft debuts new services that bring added value to people.</p>
<p><strong>My Phone</strong> is a free service that helps people manage and back up the invaluable information stored on their phone and provides peace of mind and an easy restore option in the event of a lost or damaged phone. My Phone automatically synchronizes the specific types of a phone’s content the user chooses — from contacts and appointments to texts, photos and more — to a password-protected Web site. People can also publish their photos from the My Phone Web site or their phone directly to Windows Live, Facebook, MySpace and Flickr. As part of the free service, people can go online and map the last known location of their phone from when it was last synchronized. In addition, a set of more advanced “lost phone” features are being offered as a premium package that people can activate as needed. The My Phone Premium package includes the ability to immediately locate the phone’s current location on a map (in the U.S. only); remotely lock a phone and post an “if found” message to its screen; loudly ring the phone even if it is set to vibrate or silent mode; and ultimately, if needed, completely erase the phone to protect personal data from falling into the wrong hands. People using My Phone on their phone running either Windows Mobile 6.0, 6.1 or 6.5 can access the premium package free of charge until Nov. 30, 2009. After that date, seven-day access to the premium package will be available for purchase for $4.99 in the U.S.</p>
<p>Also launching today is <strong>Windows Marketplace for Mobile</strong>, which offers people an easy way to find and purchase high-quality mobile applications for both work and play, while creating a new opportunity for developers to reach millions of people using Windows phones worldwide. Microsoft is pleased today to introduce 246 quality mobile applications initially in Windows Marketplace for work and play, with more than 753 ISVs worldwide on board to continue building out the catalog. People will have access to not only important line-of-business applications for work, but also popular mobile applications for play such as Facebook, MySpace, Netflix, Twikini, WunderRadio and ZAGAT, as well as leading game titles including Sudoku, “Guitar Hero World Tour” and the “PAC-MAN” series, all of which can be easily purchased and installed directly on a Windows phone. All purchased applications are certified by Microsoft to run on Windows phones and are backed by a simple return policy. Over the next few months, Microsoft will continue to evolve Windows Marketplace for Mobile to bring to market a fresh take on the app store that delivers strong value for developers and a great shopping experience for people.</p>
<p><strong>Choice and Availability: A Phone for Everyone</strong></p>
<p>Windows phones give people the power to choose the phone that best fits their style and budget by offering phones with a full physical QWERTY keyboard, others with just a large touch screen, and some with both touch screen and keyboard.</p>
<p><strong>So what’s new for Developers?</strong></p>
<p>Web developers can now target <strong>Internet Explorer</strong> <strong>Mobile</strong> for their applications.  Not only does this browser provide full desktop fidelity, but it also includes the fast IE8 Javascript engine to speed up code execution, DOM manipulation and Ajax calls.  Don’t take my word for it, test it out over at <a href="http://asp.net">http://asp.net</a> and watch it accurately render all the Ajax controls.</p>
<p>Both Native and Managed code developers get to take advantage of the new <strong>Gesture API</strong> to add panning and flicking to their apps.  The built-in physics engine allows developers to add smooth, finger-friendly scrolling.</p>
<p>For developers that are more at home with Cascading Style Sheets, HTML, Javascript and Ajax, Windows Mobile 6.5 introduces <strong>Widgets</strong> as an alternative to C++ or .NET.  These programs take advantage of the new Internet Explorer Mobile to render Rich Internet Applications that run outside the browser but take advantage of the power of the Web.</p>
<p><strong>Any changes under the Hood?</strong></p>
<p>Yes, since the launch of Windows Mobile 6, we’ve been progressively enhancing the Windows CE 5 kernel that powers the Windows Mobile platform.  You should expect better application stability, much more virtual memory available to running apps, and faster execution.</p>
<p>Have fun with your new phones!</p>
<p>- Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/the-windows-phones-have-arrived/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Hidden Message Queue on your Windows phone</title>
		<link>http://robtiffany.com/the-hidden-message-queue-on-your-windows-phone/</link>
		<comments>http://robtiffany.com/the-hidden-message-queue-on-your-windows-phone/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 20:05:26 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Message Queuing]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Message Queue]]></category>
		<category><![CDATA[MSMQ]]></category>
		<category><![CDATA[RDA]]></category>
		<category><![CDATA[Remote Data Access]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=8</guid>
		<description><![CDATA[The ability to be “offline” and “occasionally-connected” is a critical component of successful mobile apps.  Wireless data networks lack complete coverage and exhibit a level of unreliability that immediately disqualify permanently-connected apps like you might see on a corporate LAN.  &#8230; <a href="http://robtiffany.com/the-hidden-message-queue-on-your-windows-phone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The ability to be “offline” and “occasionally-connected” is a critical component of successful mobile apps.  Wireless data networks lack complete coverage and exhibit a level of unreliability that immediately disqualify permanently-connected apps like you might see on a corporate LAN.  For a mobile app to be successful, it must allow the user to keep working in the absence of a data network.  It must also be able to transparently sync data changes from the mobile client to the server whenever a wireless data network is detected.  The primary means of accomplishing that today is via one of Microsoft’s sync technologies that allows SQL Server Compact on the mobile client to replicate data to and from SQL Server in the data center or the cloud.  Since SQL Server Compact runs almost anywhere, your mobile client could be a Windows phone, a laptop, a desktop or even a Netbook.</p>
<p>Besides synchronizing the tables, rows and columns of a complete database between mobile clients and servers, the use of message queuing should be considered for many scenarios due to its high-reliability by ensuring that a critical message arrives at its destination.  Products like MSMQ, MQ Series, Tibco and JMS are used all over the world in the most mission-critical environments to ensure a high level of availability and reliability.  They’re asynchronous by nature and use store and forward mechanisms so that messages get from point A to B to C.  A typical queue message includes the <strong>Destination</strong> which tells the messge where to go, a <strong>Label</strong> which describes the message, a <strong>Body</strong> which contains the message, and a <strong>Body Length</strong> so the receiver can verify that it received everything.</p>
<p>So how does any of this relate to Windows phones?  A number of years ago, an MSMQ client was made available for download and installation on Windows phones.  Additionally, the .NET Compact Framework 2.0 included classes to work with MSMQ.  Unfortunately, the installation of MSMQ was far from seamless which inhibited its adoption by customers.  More recently, functionality was included in the .NET Compact Framework 3.5 that facilitated store and forward messaging using Exchange 2007 as a transport.  This is a good solution for customers running the newest version of Exchange, have an unlimited data plan for their phones, and don’t mind running line of business applications over their email infrastructure.</p>
<p>So what do we do for customers that have found the Windows Mobile MSMQ client too much of a hassle, don’t have Exchange 2007 or don’t want to use it as a mobile message queue server?  I think the answer has been under our noses all along.  Burned in the ROM of every Windows Mobile 6.x device is SQL Server Compact + a lightweight data sync solution called Remote Data Access (RDA).  For those of you running Windows Mobile 5, XP, Vista or 7, you can easily download these bits to your mobile client.  SQL Server Compact is you local queue, RDA is your transport and SQL Server in the cloud or data center is your message queue server.  So let’s break this down and see how it will work.</p>
<p>A mobile application that captures data in the field would want to drop that info in a local queue.  SQL Server Compact becomes that local queue and the message format is actually a table with the following structure:</p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td width="200" valign="top"><strong>Table name</strong></td>
<td width="200" valign="top">Message</td>
</tr>
<tr>
<td width="200" valign="top"><strong>MessageId</strong></td>
<td width="200" valign="top">Uniqueidentifier</td>
</tr>
<tr>
<td width="200" valign="top"><strong>Destination</strong></td>
<td width="200" valign="top">NVarchar(whatever)</td>
</tr>
<tr>
<td width="200" valign="top"><strong>Label</strong></td>
<td width="200" valign="top">NVarchar(whatever)</td>
</tr>
<tr>
<td width="200" valign="top"><strong>Body</strong></td>
<td width="200" valign="top">NVarchar(4000)</td>
</tr>
<tr>
<td width="200" valign="top"><strong>BodyLength</strong></td>
<td width="200" valign="top">int</td>
</tr>
</tbody>
</table>
<p>This table would be created inside a <strong>MessgeQueue</strong> database in SQL Server and RDA would pull it down to SQL Server Compact.  In the <strong>Pull</strong> method you call from .NET on the client, you would add “<strong>WHERE 1=0</strong>” to the SQL statement.  This filter has the effect of pulling down an empty shell of the table without retrieving any data to the client since that’s all you want.  It also means that when you insert local data into the table and call the <strong>Push</strong> method, the data will be removed from the client at the completion of a successful sync.</p>
<p>So you’re probably wondering, what makes this so special and message queue-like vs. anything else?  The secret is that unlike other sync technologies, RDA can wrap the upload of data into a transaction.  As the data is being uploaded over wireless, if any of the INSERTs into SQL Server fail for whatever reason, everything gets rolled-back and the original data remains in the local SQL Server Compact queue.  This is the kind of guaranteed commit that you expect from a message queuing system.  It’s an “all or nothing” success or rollback. </p>
<p>It actually gets better.  A property of both RDA and Merge Replication is called ConnectionRetryTimeout.  This feature is designed to help you with unreliable wireless coverage where you have signal one minute and then lose it the next.  Let’s say you have this timeout value set to 2 minutes and you begin your <strong>Push</strong> upload of queued data.  Everything is working fine for the first few seconds but then you lose wireless coverage from your mobile operator.  If you regain coverage before the 2 minute time-out, the upload will resume where it left off.  Since both RDA and Merge send and receive data between the SQL Server Compact and IIS in tiny blocks, you never have to worry about running out of memory and you can pick up where you left off in case of a network dropout.</p>
<p>So the big takeaway here is that we do in fact have a<strong> Mobile Message Queue</strong> solution hidden on our Windows phones.  We have a message format that lets us drop text/xml/whatever data into the body, a label that a server process or SQL trigger can key off of to perform an action, and a transactional upload mechanism that ensures your critical data will cross the wireless chasm and make it to the other side intact.</p>
<p>So what’s next?  Now that you can capture data in a local queue and safely upload it, you might be wondering how queued messages from someone else can be pushed to your device.  Don’t worry, that will be in my next post.  Also, this isn’t just an article on how to solve a big problem in the mobile space, I’m actually building the necessary client and server pieces as well.  We’re all looking for a reliable and unified way to connect mobile devices to corporate assets and this just might be the simple answer we’re looking for.</p>
<p>- Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/the-hidden-message-queue-on-your-windows-phone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

