<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Rob Tiffany's Windows Mobile Accelerator : Merge</title><link>http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx</link><description>Tags: Merge</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>What ever happened to RDA?</title><link>http://blogs.msdn.com/robtiffany/archive/2009/09/22/what-ever-happened-to-rda.aspx</link><pubDate>Wed, 23 Sep 2009 03:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9898243</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/9898243.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=9898243</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;Who remembers using Remote Data Access to synchronize data between SQL Server and SQL Server Compact?&amp;nbsp; I certainly do!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Before I dove head first into the world of Merge Replication, I always used RDA to get my customers up and running quickly.&amp;nbsp; Mobilizing an organization’s workforce quickly and easily is what it’s all about so they can start reaping the benefits.&amp;nbsp; In addition to a speedy time to market, there’s no faster or more scalable mobile sync technology on the market anywhere.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;So why wouldn’t I always use RDA?&amp;nbsp; Here’s a quick list:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;You’re using Identity columns. &lt;/LI&gt;
&lt;LI&gt;You want to replicate schema changes to the client. &lt;/LI&gt;
&lt;LI&gt;You want change tracking on both the client and server to perform diffs of each of the tables during a sync instead of re-downloading the entire table. &lt;/LI&gt;
&lt;LI&gt;You want to automatically resolve conflicts that arise when 2 people update the same data. &lt;/LI&gt;
&lt;LI&gt;You want referential integrity constraints to be pushed down to the client database from SQL Server. &lt;/LI&gt;
&lt;LI&gt;You don’t want to write code to perform synchronization or filter data. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;If anything on the above list applied to you, you would shift to Merge Replication because it could manage ranges of Identity columns, push down schema changes, only sync data differences, resolve conflicts and push down a database’s referential integrity constraints.&amp;nbsp; Merge requires almost no code to get started and tables and columns are filtered visually via a wizard.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;So why might you choose to use RDA?&amp;nbsp; Here’s another list:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Your Primary Keys use GUIDs instead of Identity columns. &lt;/LI&gt;
&lt;LI&gt;Users don’t overwrite each other’s data so you don’t need conflict resolution.&amp;nbsp; The rule of “Last in Wins” works for you. &lt;/LI&gt;
&lt;LI&gt;While you want indexes to be pushed down, you don’t care if your local SSCE database has referential integrity constraints applied. &lt;/LI&gt;
&lt;LI&gt;You want to wrap the changes you upload to SQL Server in a transaction so that all changes are applied or none of them are. &lt;/LI&gt;
&lt;LI&gt;Change tracking on the client is good enough and re-downloading updated server tables doesn’t take too long. &lt;/LI&gt;
&lt;LI&gt;You developers don’t mind writing some sync code. &lt;/LI&gt;
&lt;LI&gt;Be able to execute SQL and Stored Procedures directly against SQL Server via IIS.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;If your solution meets the criteria in the list above, you’re probably a good candidate for using RDA instead of Merge.&amp;nbsp; Are there any other choices out there?&lt;/P&gt;
&lt;P&gt;Back at MEDC 2007, we announced a new data replication technology for devices called Occasionally Connected Sync that would sit somewhere between RDA and Merge.&amp;nbsp; OCS as it used to be called was renamed Sync Services for ADO.NET and then was eventually merged into the Sync Framework.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The Sync Framework is a developer-focused technology:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Supports conflict resolution. &lt;/LI&gt;
&lt;LI&gt;Change tracking on the server as well as the client so that only data differences are exchanged. &lt;/LI&gt;
&lt;LI&gt;Peer to Peer sync in the forthcoming v2 of Sync Framework. &lt;/LI&gt;
&lt;LI&gt;Sync with databases other than SQL Server. &lt;/LI&gt;
&lt;LI&gt;Best suited for SSCE running on a desktop or laptop. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;The clearest differentiation that the Sync Framework has over Merge is its provider model which allows it to sync with other ADO.NET databases like Oracle or DB2.&amp;nbsp; SQL Server supports built-in P2P Transactional replication and v2 of the Sync Framework will allow you to do this via WCF.&amp;nbsp; If you development team doesn’t mind writing lots of sync code and needs to support scenarios like synchronizing with other databases from SSCE on the desktop, then the Sync Framework might be the way to go for you.&amp;nbsp; I wouldn’t yet recommend the Sync Framework for device sync since its wire protocol is currently based on the DataSet which may cause out of memory errors on Windows phones with limited working sets.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;So where does this leave RDA?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The reason I’m writing this blog post is because time and time again I run into customer sync scenarios that don’t always need the power of Merge or the extra flexibility of the Sync Framework.&amp;nbsp; Most field service applications follow the same kind of pattern:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Lots of download-only lookup/reference tables that aren’t changed by the user. &lt;/LI&gt;
&lt;LI&gt;Tables that are pushed down to the device that tell a user where to go and what to do. &lt;/LI&gt;
&lt;LI&gt;Tables (sometimes empty) that are used to capture data from the user in the field that are upload-only. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;These kinds of schemas don’t require conflict resolvers or server change tracking and are therefore well suited for RDA.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What’s the big benefit of using RDA if a sync scenario meets its criteria?&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;You won’t modify SQL Server’s schema with GUIDs and Triggers. &lt;/LI&gt;
&lt;LI&gt;You won’t degrade the performance of SQL Server by having it track changes and maintain extra metadata. &lt;/LI&gt;
&lt;LI&gt;You will have the fastest and most scalable sync solution with least amount of hardware. &lt;/LI&gt;
&lt;LI&gt;Time to market is shorter. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;The big takeaway here is that I want you to consider your sync solution carefully before choosing a technology.&amp;nbsp; If your customer’s needs are met by RDA, then you should use it and reap the benefits of developing and deploying a simpler solution with fewer moving parts.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Remember Occam's Razor.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;-Rob&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9898243" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+Compact/default.aspx">SQL Server Compact</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync/default.aspx">Sync</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Framework/default.aspx">Sync Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Services+for+ADO.NET/default.aspx">Sync Services for ADO.NET</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge+Replication/default.aspx">Merge Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Pocket+PC/default.aspx">Pocket PC</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/RDA/default.aspx">RDA</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Remote+Data+Access/default.aspx">Remote Data Access</category></item><item><title>Mobile Architecture Pocket Guide v1.1</title><link>http://blogs.msdn.com/robtiffany/archive/2009/01/17/mobile-architecture-pocket-guide-v1-1.aspx</link><pubDate>Sat, 17 Jan 2009 21:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9336308</guid><dc:creator>robtiffany</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/9336308.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=9336308</wfw:commentRss><description>&lt;P&gt;Just wanted to let everyone know that version 1.1 of the &lt;SPAN class=CodePlexPageHeader id=ctl00_ctl00_MasterContent_Content_TitleLabel&gt;Mobile Architecture Pocket Guide&lt;/SPAN&gt; is now available on CodePlex at &lt;A href="http://www.codeplex.com/AppArch/Release/ProjectReleases.aspx?ReleaseId=19798" mce_href="http://www.codeplex.com/AppArch/Release/ProjectReleases.aspx?ReleaseId=19798"&gt;http://www.codeplex.com/AppArch/Release/ProjectReleases.aspx?ReleaseId=19798&lt;/A&gt;.&amp;nbsp; This is the first patterns &amp;amp; practices update to this guide since 2002 so it's a welcome sight to to have it out there for all our Windows Mobile developers.&lt;/P&gt;
&lt;P&gt;I've spent the last couple of months working with J.D. Meier, Rabi Satter, Rob Boucher and the rest of the P&amp;amp;P team&amp;nbsp;to tune, tweak and update the new Mobile Architecture Pocket Guide to ensure that it's as accurate and relevant to today's Windows Mobile platform and runtimes as possible.&amp;nbsp; The guide's chapters include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Ch 01&amp;nbsp;&amp;gt; Mobile Application Architecture 
&lt;LI&gt;Ch 02&amp;nbsp;&amp;gt; Architecture and Design Guidelines 
&lt;LI&gt;Ch 03&amp;nbsp;&amp;gt; Presentation Layer Guidelines 
&lt;LI&gt;Ch 04&amp;nbsp;&amp;gt; Business Layer Guidelines 
&lt;LI&gt;Ch 05&amp;nbsp;&amp;gt; Data Access Layer Guidelines 
&lt;LI&gt;Ch 06&amp;nbsp;&amp;gt; Service Layer Guidelines 
&lt;LI&gt;Ch 07&amp;nbsp;&amp;gt; Communication Guidelines 
&lt;LI&gt;Ch 08&amp;nbsp;&amp;gt; Deployment Patterns &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Our goal is to empower our Windows Mobile developer community as much as possible, and while this guide may seem like it's targeted exclusively to developers, I ensured that the IT Pro side of the house is &lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; 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; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;accommodated &lt;/SPAN&gt;as well.&amp;nbsp; Mobile infrastructure elements of this guide include System Center Mobile Device Manager (Deployment), SQL Server (Sync Services&amp;nbsp;+ Merge), IIS (Web Services +&amp;nbsp;Sync + WCF), Exchange (WCF Store and Forward) and Active Directory (Auth).&lt;/P&gt;
&lt;P&gt;Download it,&amp;nbsp;take if for a spin, and give us your feedback so we can keep improving it.&lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9336308" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Wireless/default.aspx">Wireless</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Custom+Controls/default.aspx">Custom Controls</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Mobile+Web/default.aspx">Mobile Web</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+Compact/default.aspx">SQL Server Compact</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync/default.aspx">Sync</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Framework/default.aspx">Sync Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Services+for+ADO.NET/default.aspx">Sync Services for ADO.NET</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge+Replication/default.aspx">Merge Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Pocket+PC/default.aspx">Pocket PC</category></item><item><title>See you in Barcelona for Tech Ed EMEA Dev</title><link>http://blogs.msdn.com/robtiffany/archive/2008/11/07/see-you-in-barcelona-for-tech-ed-emea-dev.aspx</link><pubDate>Fri, 07 Nov 2008 19:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9052478</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/9052478.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=9052478</wfw:commentRss><description>&lt;P&gt;&lt;IMG title="Tech Ed EMEA" style="WIDTH: 554px; HEIGHT: 74px" height=79 alt="Tech Ed EMEA" src="http://farm4.static.flickr.com/3026/3010814268_02d772bb84.jpg?v=0" width=500 mce_src="http://farm4.static.flickr.com/3026/3010814268_02d772bb84.jpg?v=0"&gt;&lt;/P&gt;
&lt;P&gt;Looking forward to seeing lots of familiar faces and meeting new ones starting December 10th at Tech Ed EMEA!&amp;nbsp; While I ran the Windows Mobile track for Tech Ed North America last June in Orlando, this time around I'll just be delivering a couple of presentations and spending most of my time helping empower delegates to create incredible mobile applications.&amp;nbsp; I'll be delivering the following breakout&amp;nbsp;sessions:&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class="" style="WIDTH: 555px; BORDER-COLLAPSE: collapse; HEIGHT: 396px" width=555 border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND: lightgrey" colSpan=5&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top&gt;&lt;!--&lt;a href="vcal.aspx?SessionID=65987321-8208-452a-b4bc-befcb98f5156"&gt;&lt;img src="resources/images/addcal.gif" border=0&gt;&lt;/a&gt;--&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=100&gt;&lt;B&gt;MBL301&lt;/B&gt; &lt;/TD&gt;
&lt;TD class="" vAlign=top&gt;&lt;B&gt;What's New in the Windows Mobile Line of Business Solution Accelerator 2008&lt;/B&gt; &lt;/TD&gt;
&lt;TD class="" vAlign=top&gt;November 10 16:00 - 17:15 &lt;/TD&gt;
&lt;TD class="" vAlign=top&gt;Room 121 &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" colSpan=5&gt;&lt;I&gt;This session walks through the new features that we have added to the Windows Mobile Line of Business Accelerator 2008; features such as adapting your application to any device or screen size with a single binary, sync services, store and forward, and advanced data access objects with Microsoft .NET CF 3.5.&lt;/I&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" colSpan=5&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND: lightgrey" colSpan=5&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top&gt;&lt;!--&lt;a href="vcal.aspx?SessionID=e952d144-33e4-4602-8339-0350d5834668"&gt;&lt;img src="resources/images/addcal.gif" border=0&gt;&lt;/a&gt;--&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=100&gt;&lt;B&gt;MBL310&lt;/B&gt; &lt;/TD&gt;
&lt;TD class="" vAlign=top&gt;&lt;B&gt;Mobilize your Enterprise and Achieve Global Scalability with Windows Mobile and SQL Server Compact&lt;/B&gt; &lt;/TD&gt;
&lt;TD class="" vAlign=top&gt;November 11 15:15 - 16:30 &lt;/TD&gt;
&lt;TD class="" vAlign=top&gt;Room 121 &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" colSpan=5&gt;&lt;I&gt;With the world's largest organizations rolling out tens of thousands of Windows Mobile devices to empower their respective workforces, the ability to create mobile line-of-business solutions that can support large user populations is critical. Based on his third book on Windows Mobile development, Rob Tiffany shows you how to take the Microsoft SQL Server data you use to run your organization and make it available to all your mobile employees. Utilizing the performance, scale-out, and filtering capabilities of Merge Replication Republishing, Rob shows you how to build an n-tier mobile synchronization architecture designed to scale to hundreds of thousands of devices. Take the guesswork out of mobilizing your enterprise by tapping into the experience of one of the world's foremost authorities on Windows Mobile infrastructure and development.&lt;/I&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" colSpan=5&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class="" style="BACKGROUND: lightgrey" colSpan=5&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;See you there!&lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9052478" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Wireless/default.aspx">Wireless</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Book/default.aspx">Book</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Author/default.aspx">Author</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Publisher/default.aspx">Publisher</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/MEDC/default.aspx">MEDC</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/MVP/default.aspx">MVP</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Tech+Ed/default.aspx">Tech Ed</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+Compact/default.aspx">SQL Server Compact</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync/default.aspx">Sync</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Framework/default.aspx">Sync Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Services+for+ADO.NET/default.aspx">Sync Services for ADO.NET</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Republishing/default.aspx">Republishing</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Pocket+PC/default.aspx">Pocket PC</category></item><item><title>Chapter 1 of my new Book is Ready!</title><link>http://blogs.msdn.com/robtiffany/archive/2008/10/23/chapter-1-of-my-new-book-is-ready.aspx</link><pubDate>Fri, 24 Oct 2008 04:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9013958</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/9013958.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=9013958</wfw:commentRss><description>&lt;H3&gt;Mobile Data Synchronization with Microsoft SQL Server 2005 and SQL Server Compact &amp;gt; Second Edition&lt;/H3&gt;
&lt;H4&gt;&lt;STRONG&gt;Achieving Global Scalability via Merge Replication Republishing&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Download and review the PDF from my Windows Live SkyDrive @ &lt;/P&gt;
&lt;P&gt;&lt;A href="http://cid-8b9c82da88af61fc.skydrive.live.com/self.aspx/Sync/Ch%201.pdf" mce_href="http://cid-8b9c82da88af61fc.skydrive.live.com/self.aspx/Sync/Ch%201.pdf"&gt;http://cid-8b9c82da88af61fc.skydrive.live.com/self.aspx/Sync/Ch%201.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/robtiffany/WindowsLiveWriter/Chapter1ofmynewBookisReady_FFFA/ContosoSM_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=484 alt=ContosoSM src="http://blogs.msdn.com/blogfiles/robtiffany/WindowsLiveWriter/Chapter1ofmynewBookisReady_FFFA/ContosoSM_thumb.jpg" width=364 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The new book shows you how to scale out your Merge Replication Architecture with Republishing.&amp;nbsp; It's chock full of new insight to show you how to get the most performance and scalability out of your system.&amp;nbsp; It also shows you how to make replication Subscriptions available to the Internet via ISA Server 2006 or System Center Mobile Device Manager.&lt;/P&gt;
&lt;P&gt;Check it out and let me know what you think.&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Rob&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9013958" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Wireless/default.aspx">Wireless</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/CDMA/default.aspx">CDMA</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/GSM/default.aspx">GSM</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/UMTS/default.aspx">UMTS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/EV-DO/default.aspx">EV-DO</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/RSA/default.aspx">RSA</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Book/default.aspx">Book</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Publisher/default.aspx">Publisher</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Apple/default.aspx">Apple</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+Compact/default.aspx">SQL Server Compact</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync/default.aspx">Sync</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Framework/default.aspx">Sync Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Services+for+ADO.NET/default.aspx">Sync Services for ADO.NET</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge+Replication/default.aspx">Merge Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Republishing/default.aspx">Republishing</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Pocket+PC/default.aspx">Pocket PC</category></item><item><title>Listen to Rob's Windows Mobile Interview on .NET Rocks!</title><link>http://blogs.msdn.com/robtiffany/archive/2008/10/09/listen-to-rob-s-windows-mobile-interview-on-net-rocks.aspx</link><pubDate>Thu, 09 Oct 2008 23:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8993275</guid><dc:creator>robtiffany</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/8993275.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=8993275</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&lt;A href="http://www.dotnetrocks.com/"&gt;&lt;IMG src="http://www.dotnetrocks.com/slices/top.jpg" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I was recently interviewed by Carl Franklin and Richard Campbell who run one of the Internet's most popular developer sites, .NET Rocks!&amp;nbsp; You can catch the interview at &lt;A href="http://www.dotnetrocks.com/default.aspx?showNum=384"&gt;http://www.dotnetrocks.com/default.aspx?showNum=384&lt;/A&gt;&amp;nbsp;where you can either listen to it live via the website, or download it to your favorite device to listen later.&lt;/P&gt;
&lt;P&gt;I cover the current state of Windows Mobile + the entire ecosystem including OEMs, Mobile Operators, developers and who does what within&amp;nbsp;Microsoft's Mobile Commications Business in Redmond&amp;nbsp;and the Mobile Development Center in &lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'; 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"&gt;Hyderabad&lt;/SPAN&gt;.&amp;nbsp; I take Carl and Richard on a deep dive of our latest mobile development technologies and techniques with the .NET Compact Framework, SQL Server Compact, and WCF Store and Forward just to name a few.&amp;nbsp; I also cover all the features of System Center Mobile Device Manager including OTA software distribution, Group Policies, Mobile VPN security and Domain join.&lt;/P&gt;
&lt;P&gt;Download it and give it a listen &lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8993275" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Wireless/default.aspx">Wireless</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/GSM/default.aspx">GSM</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/EV-DO/default.aspx">EV-DO</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/AES/default.aspx">AES</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Direct3D+Mobile/default.aspx">Direct3D Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Graphics/default.aspx">Graphics</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/iPhone/default.aspx">iPhone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/MEDC/default.aspx">MEDC</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+Compact/default.aspx">SQL Server Compact</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync/default.aspx">Sync</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Framework/default.aspx">Sync Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Sync+Services+for+ADO.NET/default.aspx">Sync Services for ADO.NET</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge+Replication/default.aspx">Merge Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Pocket+PC/default.aspx">Pocket PC</category></item><item><title>Mobile Scalability + Staggering Performance</title><link>http://blogs.msdn.com/robtiffany/archive/2008/01/15/mobile-scalability-staggering-performance.aspx</link><pubDate>Wed, 16 Jan 2008 08:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7127587</guid><dc:creator>robtiffany</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/7127587.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=7127587</wfw:commentRss><description>&lt;P&gt;As you know from my recent posts, I've been hanging out at 1,200 concurrent Subscribers trying to boost performance. When I first hit the 1,200 Subscriber mark, I was able to change and replicate ~13 million rows per hour.&amp;nbsp; I was happy with the scalability, but the performance was no better than what I achieved with 600 concurrent Subscribers.&amp;nbsp; Rather than push the scalability envelope out to 1,800 or 2,400 Subscribers, I decided to tweak, poke and prod my portable data center until I could get better performance at the 1,200 level.&amp;nbsp; I succeeded with the architecture you see below:&lt;/P&gt;
&lt;P&gt;&lt;IMG title="1200 Concurrent Subscribers" style="WIDTH: 500px; HEIGHT: 381px" height=381 alt="1200 Concurrent Subscribers" src="http://farm3.static.flickr.com/2128/2196169553_d6708c501e.jpg?v=0" width=500 mce_src="http://farm3.static.flickr.com/2128/2196169553_d6708c501e.jpg?v=0"&gt;&lt;/P&gt;
&lt;P&gt;Sometimes more is more.&amp;nbsp; Sometimes less is more.&lt;/P&gt;
&lt;P&gt;Knowing that the ISAPI DLL running on IIS is the biggest bottleneck in the system, I decided to scale out to 6 IIS servers in addition to my separate SQL Publisher and SQL Distributor servers.&amp;nbsp; The 2 SQL Servers have 8 cores and 16 GB of RAM while the 6 IIS servers contain 2 cores and 2 GB of RAM.&amp;nbsp; Each IIS server would accomodate 200 concurrent clients each.&amp;nbsp; In the last week of December 2007, I throttled back the MAX_THREADS_PER_POOL registry setting on the IIS servers from the default of 20 to just 3 and ran my test harness.&amp;nbsp; This resulted in the changing and replicating of ~15 millions rows per hour; a boost of 2 million rows per hour over my previous test.&amp;nbsp; Using fewer threads on each IIS box meant lower memory and CPU utilization across the board.&amp;nbsp; Instead of overwhelming SQL Server will lots of threads trying to perform work all at the same time, SQL Server got to chill out and thus processed each sync much faster.&amp;nbsp; This was great news so I pushed the fewer threads experiment even further.&amp;nbsp; I executed my test harness with 2 threads and then just 1 thread per IIS server.&amp;nbsp; Using just 1 thread resulted in the changing and replicating of ~18 million rows per hour; a 3 million row per hour boost over using 3 threads per IIS server.&lt;/P&gt;
&lt;P&gt;At ~21 million row changes per hour, 2 threads per IIS server is the sweet spot!&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Rows changed:&amp;nbsp;&amp;nbsp;5,826 per second | 349,600 per minute | 20,976,000 per hour&amp;nbsp;|&amp;nbsp;503,424,000 per day 
&lt;LI&gt;Bytes per row: 116 
&lt;LI&gt;Data replicated:&amp;nbsp;&amp;nbsp;2.3&amp;nbsp;GB per hour&amp;nbsp; |&amp;nbsp;&amp;nbsp;55 GB per day&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The longest and average sync times dropped significantly over the first&amp;nbsp;results I got with 1,200 concurrent Subscribers:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Longest sync time: 14 minutes 
&lt;LI&gt;Shortest sync time: .6 seconds 
&lt;LI&gt;Average sync time:&amp;nbsp;3 minutes,&amp;nbsp;38 seconds&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The IIS&amp;nbsp;didn't break a sweat:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;IIS1: CPU: 11%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;172 MB&amp;nbsp; |&amp;nbsp; Network Utilization: 89% &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Disk I/O: OS: .3%, ISAPI: 3.8% &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;IIS2: CPU: 8%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;167 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .91%&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Disk I/O: OS: .2%, ISAPI: 3% &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;IIS3: CPU: 6%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;171 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .82% &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Disk I/O: OS: .2%, ISAPI: 2.8% &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;IIS4: CPU: 7% | Mem: 171 MB | Network Utilization: .71% &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Disk I/O: OS: .5%, ISAPI: 3.4% &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;IIS5: CPU: 6% | Mem: 152 MB | Network Utilization: .92% &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Disk I/O: OS: .3%, ISAPI: 2.3% &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;IIS6: CPU: 8% | Mem: 151 MB | Network Utilization: 1% &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Disk I/O: OS: .3%, ISAPI: 2.6%&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;The CPU was finally well-utilized (after dozens of tests that never went higher than 35%)&amp;nbsp;on the SQL Publisher and the SQL Distributor's disk that held the transaction log was pegged (which means it could use some RAID 0 or 10 medicine).&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SQL Distributor: CPU: 9%&amp;nbsp; | Mem:&amp;nbsp;2.32 GB&amp;nbsp; |&amp;nbsp; Network Utilization: .64%&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Disk I/O: OS: .7%, SQL: 1%, DB: 16.8%, LOG: 100%, Snapshot Share: 1%&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;SQL Publisher:&amp;nbsp;CPU: 74%&amp;nbsp; |&amp;nbsp; Mem: 4.19 GB&amp;nbsp; |&amp;nbsp; Network Utilization: 4%&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Disk I/O: OS: 1.1%, SQL: 13.7%, DB: 1%, LOG: 22.6%&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;I'm very pleased with these results as they represent the kind of scalability and performance that our clients are looking for when they're considering building and rolling out a mobile line of business application.&amp;nbsp; As usual, the low memory and CPU utilizaiton on the IIS servers will lead architects to think that using 6 load-balanced boxes is wasteful and they deserve to be consolidated.&amp;nbsp; I've been down that path and the place that I've arrived at today tells me that the ISAPI DLLs are exhausted long before you can detect any strain on the IIS server.&amp;nbsp; That being said, the use of fewer threads means that I don't need the memory and CPU power I once thought I needed.&amp;nbsp; Lower-end IIS servers could be purchased or perhaps consolidation could happen by deploying them as virtual images inside Hyper-V on Longhorn or Virtual Server on Windows Server 2003.&amp;nbsp; Definitely something worth looking at.&lt;/P&gt;
&lt;P&gt;In the near term, you should expect to see me push the scalability envelope to the 1,800 and/or 2,400 concurrent Subscriber level in an effort to see what it takes to saturate a single SQL Server box.&amp;nbsp; Along the way, I will take a look at virtualization options to see how well they work out.&amp;nbsp; Lastly, you'll see me persue "Republishing" architectures with SQL Server in an effort to make Mobile Merge Replication scalable enough to support hundreds of thousands or millions of Windows Mobile devices.&amp;nbsp; Only then could you consider using this technology for&amp;nbsp;large-scale consumer applications with a national or global reach.&amp;nbsp; Remember, Windows Mobile 6 comes with a built-in content synchronization engine called SQL Server Compact 3.1.&amp;nbsp; When you start thinking big, you realize that we could use this technology to push intelligent advertising to devices or build the next global social networking platform designed for people on the go.&lt;/P&gt;
&lt;P&gt;See you at TechReady 6!&lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7127587" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>My New Book is Now Available!</title><link>http://blogs.msdn.com/robtiffany/archive/2008/01/07/my-new-book-is-now-available.aspx</link><pubDate>Tue, 08 Jan 2008 01:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7020885</guid><dc:creator>robtiffany</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/7020885.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=7020885</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT size=3&gt;"Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1" is now available&amp;nbsp;in print!&amp;nbsp; Those of you in the continental U.S. can just buy it directly from the Hood Canal Press site at &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;&lt;A href="http://www.hoodcanalpress.com/catalog.htm"&gt;http://www.hoodcanalpress.com/catalog.htm&lt;/FONT&gt;&lt;/A&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT size=3&gt;&amp;nbsp;and get free ground&amp;nbsp;shipping.&amp;nbsp; It's on&amp;nbsp;Amazon in the U.S. so you can order it at &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;&lt;A href="http://www.amazon.com/Windows-Mobile-Synchronization-Server-Compact/dp/0979891205/ref=sr_1_13?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199744085&amp;amp;sr=1-13"&gt;http://www.amazon.com/Windows-Mobile-Synchronization-Server-Compact/dp/0979891205/ref=sr_1_13?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199744085&amp;amp;sr=1-13&lt;/A&gt;&amp;nbsp;as well&lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT size=3&gt;.&amp;nbsp; At&amp;nbsp;Amazon UK you can find it&amp;nbsp;here &lt;A href="http://www.amazon.co.uk/Windows-Mobile-Synchronization-Server-Compact/dp/0979891205/ref=sr_1_7?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199744162&amp;amp;sr=1-7"&gt;http://www.amazon.co.uk/Windows-Mobile-Synchronization-Server-Compact/dp/0979891205/ref=sr_1_7?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199744162&amp;amp;sr=1-7&lt;/A&gt;.&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT size=3&gt;Go buy it and start building large-scale line of business and consumer applications for Windows Mobile!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT size=3&gt;-Rob&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7020885" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Wireless/default.aspx">Wireless</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Book/default.aspx">Book</category></item><item><title>Yes, We Can Scale to 1,200 Concurrent Subscribers!</title><link>http://blogs.msdn.com/robtiffany/archive/2007/12/23/yes-we-can-scale-to-1-200-concurrent-subscribers.aspx</link><pubDate>Mon, 24 Dec 2007 07:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6850860</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/6850860.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=6850860</wfw:commentRss><description>&lt;P&gt;Yet again, I've&amp;nbsp;doubled the number of concurrent Subscribers to 1,200 where each Subscriber is equivalant to a&amp;nbsp;Windows Mobile device.&amp;nbsp; I used&amp;nbsp;6 servers running 200 Subscribers each to create client load, plus&amp;nbsp;3 load-balanced&amp;nbsp;IIS servers, and a separate&amp;nbsp;SQL Server Distributor and&amp;nbsp;Publisher.&amp;nbsp; Each IIS server had&amp;nbsp;its MAX_THREAD_PER_POOL registry setting set to 10 and had to&amp;nbsp;handle 400 concurrent Subscribers.&amp;nbsp;&amp;nbsp;With 1,200 concurrent Subscribers contending for resources on every tier,&amp;nbsp;the system&amp;nbsp;performed 10,693 syncs per hour, which is half the&amp;nbsp;22,401 syncs per hour that&amp;nbsp;I saw when running 600 Subscribers back at the Partner Summit.&amp;nbsp; That being said, the system held steady at the number of rows it could change and replicate per hour:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Rows changed:&amp;nbsp;&amp;nbsp;12,831,600 per hour&amp;nbsp; |&amp;nbsp;&amp;nbsp;307,958,400 per day 
&lt;LI&gt;Bytes per row: 116 
&lt;LI&gt;Data replicated:&amp;nbsp;&amp;nbsp;1.42 GB per hour&amp;nbsp; |&amp;nbsp;&amp;nbsp;34 GB per day&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The longest and average sync times jumped significantly over the results I got with 600 concurrent Subscribers:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Longest sync time: 17 minutes&lt;/LI&gt;
&lt;LI&gt;Shortest sync time: .5 seconds&lt;/LI&gt;
&lt;LI&gt;Average sync time: 6 minutes, 38 seconds&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Just like in Vegas and at the Partner Summit,&amp;nbsp;the IIS and SQL Servers are chilling out throughout this test with the IIS servers and Distributor using more memory:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;IIS1: CPU: 8%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;229 MB&amp;nbsp; |&amp;nbsp; Network Utilization: 1% 
&lt;LI&gt;IIS2: CPU: 14%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;225 MB&amp;nbsp; |&amp;nbsp; Network Utilization: 1% 
&lt;LI&gt;IIS3: CPU: 8%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;226 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .89% 
&lt;LI&gt;SQL Distributor: CPU: 5%&amp;nbsp; | Mem:&amp;nbsp;2.95 GB&amp;nbsp; |&amp;nbsp; Network Utilization: .32% 
&lt;LI&gt;SQL Publisher:&amp;nbsp;CPU: 36%&amp;nbsp; |&amp;nbsp; Mem: 4.12 GB&amp;nbsp; |&amp;nbsp; Network Utilization: 1%&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The obvious takeaway from this test is that we can scale to 1,200 concurrent Subscribers but we're no longer sustaining an upward curve in performance.&amp;nbsp; In fact, the curve has started heading downward.&amp;nbsp; Does performance always head northward in a linear fashion forever in other systems?&amp;nbsp; Of course not, so don't be bummed.&amp;nbsp; I think a system that can change and replicate almost 14 million rows per hour while accomodating 1,200 Subscribers that are making 1,200 row changes per sync is pretty incredible!&amp;nbsp; Remember, real-world systems don't have each Windows Mobile device make 1,200 rows changes every time they sync.&amp;nbsp; My portable data center and test harness is designed to dramatically exceed what one would see in the real world!&lt;/P&gt;
&lt;P&gt;I might be crazy, but I don't want to give up on pushing the performance of this system higher without a fight!&amp;nbsp; Therefore, I'm going to run this test again with 1,200 concurrent Subscribers, except next time I'll use 6 IIS servers.&amp;nbsp; If you remember, I didn't just double the number of Subscribers replicating against SQL Server, I also doubled the number of Subscribers hitting each IIS server.&amp;nbsp; I went from 200 to 400.&amp;nbsp; By adding 3 more IIS servers, I'll be backing the number of Subscribers per IIS server down to 200 again.&amp;nbsp; Don't be fooled by those low CPU numbers on the 3 IIS servers.&amp;nbsp; The ISAPI DLL gets all it can handle long before you begin to stress the server as a whole.&amp;nbsp; Also, reading to and writing from all those .IN and .OUT files creates a lot of I/O.&amp;nbsp; Stay tuned to see what happens...&lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6850860" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Publisher/default.aspx">Publisher</category></item><item><title>Windows Mobile Partner Summit Day 1</title><link>http://blogs.msdn.com/robtiffany/archive/2007/12/12/windows-mobile-partner-summit-day-1.aspx</link><pubDate>Wed, 12 Dec 2007 22:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6750384</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/6750384.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=6750384</wfw:commentRss><description>&lt;P&gt;The Windows Mobile Partner Summit is going great&amp;nbsp;and the event looks to be twice as big as last year.&amp;nbsp; It's always nice to reconnect with our partner community.&amp;nbsp; Steve Hegenderfer was kind&amp;nbsp;enough to allow me to bring&amp;nbsp;my rack of servers to his event.&amp;nbsp; This time, I have a much lighter, 24U half rack which is much easier to move around.&amp;nbsp; At the Dev Connections conference, I used a new stress test designed to push the number of row changes per sync.&amp;nbsp; At that event, I used 300 concurrent Subscribers to perform 23,330 syncs per hour and&amp;nbsp;make changes to 7,000,000 rows per hour.&amp;nbsp; Each complete row change consisted of 116 bytes of data which meant I changed and replicated 812 MB of data per hour.&lt;/P&gt;
&lt;P&gt;This time around I decided to double the number of concurrent Subscribers to 600.&amp;nbsp;&amp;nbsp;Keep in mind that each Subscriber is equivalant to a&amp;nbsp;Windows Mobile device.&amp;nbsp; I used&amp;nbsp;6 servers running 100 Subscribers each to create client load, 3 load-balanced&amp;nbsp;IIS servers, and a separate&amp;nbsp;SQL Server Distributor and&amp;nbsp;Publisher.&amp;nbsp;&amp;nbsp;With 600 concurrent Subscribers contending for resources, I managed to perform 22,401 syncs per hour which is slightly fewer syncs than I saw when running only 300 Subscribers back in Vegas.&amp;nbsp; The important story here is that I almost doubled the number of rows I changed and replicated per hour:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Rows changed:&amp;nbsp;&amp;nbsp;13,440,600 per hour&amp;nbsp; |&amp;nbsp;&amp;nbsp;322,574,400 per day &lt;/LI&gt;
&lt;LI&gt;Data replicated:&amp;nbsp;&amp;nbsp;1.45 GB per hour&amp;nbsp; |&amp;nbsp;&amp;nbsp;34.8 GB per day&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Just like in Vegas,&amp;nbsp;the IIS and SQL Servers where just chilling out throughout this test:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;IIS1: CPU: 7%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;188 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .69% 
&lt;LI&gt;IIS2: CPU: 8%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;187 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .88% 
&lt;LI&gt;IIS3: CPU: 5%&amp;nbsp; |&amp;nbsp; Mem:&amp;nbsp;185 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .95% 
&lt;LI&gt;SQL Distributor: CPU: 5%&amp;nbsp; | Mem:&amp;nbsp;994 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .77% 
&lt;LI&gt;SQL Publisher:&amp;nbsp;CPU: 36%&amp;nbsp; |&amp;nbsp; Mem: 4.11 GB&amp;nbsp; |&amp;nbsp; Network Utilization: 1%&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This is truly incredible and further proves that SQL Server 2005 + SQL Server Compact 3.1 + Merge Replication is the most powerful data sync technology on the market today.&lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6750384" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Book/default.aspx">Book</category></item><item><title>New Mobile Merge Replication Benchmarks</title><link>http://blogs.msdn.com/robtiffany/archive/2007/11/09/new-mobile-merge-replication-benchmarks.aspx</link><pubDate>Fri, 09 Nov 2007 21:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6024636</guid><dc:creator>robtiffany</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/6024636.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=6024636</wfw:commentRss><description>&lt;P&gt;I just finished up a week of teaching attendees&amp;nbsp;at the Dev Connections conference how to setup and use mobile merge replication to sync data between their Windows Mobile devices and SQL Server 2005.&amp;nbsp; As usual, I brought along my favorite teaching tool, my portable data center, to take attendees on deep dives of the 4 different tiers of my replication architecture.&amp;nbsp; This time around, I changed the way my stress test harness works.&amp;nbsp; In the past, my goal has always been to see how many Subscribers I could connect to the system at the same time.&amp;nbsp; With the new test, I'm stressing the system to a much greater degree with my software to push the envelope in regards to how many table row changes&amp;nbsp;I can make per hour.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;With an eye towards the stress testing system that has helped give iAnywhere's ASA database and MobiLink replication server a dominant market position, I built a similar test where the amount of data in each row changed is exactly&amp;nbsp;116 bytes each time.&amp;nbsp; I think the iAnywhere stress test used 92 byte rows.&amp;nbsp; I used 3 servers to create client load, 3 load-balanced&amp;nbsp;IIS servers, and a separate&amp;nbsp;SQL Server Distributor and&amp;nbsp;Publisher.&amp;nbsp;&amp;nbsp;The results I got from my test harness performing 23,330 syncs per hour&amp;nbsp;are nothing short of spectacular:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Rows changed:&amp;nbsp; 7,000,000 per hour&amp;nbsp; |&amp;nbsp; 168,000,000 per day&lt;/LI&gt;
&lt;LI&gt;Data replicated:&amp;nbsp; 812 MB per hour&amp;nbsp; |&amp;nbsp; 19.4 GB per day&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Now check out how the IIS and SQL Servers where just chilling out throughout this test:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;IIS1: CPU: 5%&amp;nbsp; |&amp;nbsp; Mem: 216 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .44%&lt;/LI&gt;
&lt;LI&gt;IIS2: CPU: 7%&amp;nbsp; |&amp;nbsp; Mem: 147 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .13%&lt;/LI&gt;
&lt;LI&gt;IIS3: CPU: 8%&amp;nbsp; |&amp;nbsp; Mem: 170 MB&amp;nbsp; |&amp;nbsp; Network Utilization: .42%&lt;/LI&gt;
&lt;LI&gt;SQL Distributor: CPU: 5%&amp;nbsp; | Mem: 2.15 GB&amp;nbsp; |&amp;nbsp; Network Utilization: .58%&lt;/LI&gt;
&lt;LI&gt;SQL Publisher:&amp;nbsp;CPU: 17%&amp;nbsp; |&amp;nbsp; Mem: 4.25 GB&amp;nbsp; |&amp;nbsp; Network Utilization: 1%&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Not bad!&amp;nbsp; Thanks to Loke Uei, we were also able to give away 300 copies of my new book that walks you through the construction of this scalable mobile merge replication system.&amp;nbsp; Lots of Windows Mobile developers and IT Pros are now empowered to "mobilize" their organization's data out to mobile field personnel.&amp;nbsp; Just as important, they can take the proof back to their respective organizations that this technology is build to perform and&amp;nbsp;scale!&lt;/P&gt;
&lt;P&gt;I'm just getting started with this new test harness.&amp;nbsp; Come to the Windows Mobile Partner Summit in December to see me push this system even further and break new replication records!&lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6024636" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Wireless/default.aspx">Wireless</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Book/default.aspx">Book</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Publisher/default.aspx">Publisher</category></item><item><title>Chapter 1: Getting Started with Merge Replication</title><link>http://blogs.msdn.com/robtiffany/archive/2007/09/09/chapter-1-getting-started-with-merge-replication.aspx</link><pubDate>Mon, 10 Sep 2007 08:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4851303</guid><dc:creator>robtiffany</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/4851303.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=4851303</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;The&amp;nbsp;non-linear fashion by which&amp;nbsp;I've been writing this book reminds me of the way Pulp Fiction&amp;nbsp;jumps around.&lt;/STRONG&gt;&amp;nbsp; Chapter&amp;nbsp;1 is ready to go&amp;nbsp;so you can&amp;nbsp;get started with Merge Replication for Windows Mobile devices.&amp;nbsp; In addition to obvious technology walkthroughs, I also decided to add a bunch of scenarios that illustrate how mobile data synchronization can add tangible business value to existing endeavors.&lt;/P&gt;
&lt;P&gt;The book is called &lt;STRONG&gt;"Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1"&lt;/STRONG&gt; and it's being published by &lt;STRONG&gt;Hood Canal Press&lt;/STRONG&gt;.&amp;nbsp; Click on&amp;nbsp;Chapter1.pdf below to&amp;nbsp;download Chapter&amp;nbsp;1 on&amp;nbsp;getting started with Merge Replication.&lt;/P&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter1.pdf" frameBorder=0 scrolling=no mce_src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter1.pdf"&gt;&lt;/IFRAME&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4851303" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category></item><item><title>Chapter 3: Configuring the Publisher</title><link>http://blogs.msdn.com/robtiffany/archive/2007/08/31/chapter-3-configuring-the-publisher.aspx</link><pubDate>Sat, 01 Sep 2007 08:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4682289</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/4682289.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=4682289</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;The biggest and most comprehensive chapter of the new book is ready to preview!&lt;/STRONG&gt;&amp;nbsp; Chapter 3 is ready to go for some relaxing Labor Day weekend reading.&amp;nbsp; It's the deepest coverage that I've seen on all the nuances of the SQL Server Publisher for mobile replication if I may say so myself.&lt;/P&gt;
&lt;P&gt;The book is called &lt;STRONG&gt;"Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1"&lt;/STRONG&gt; and it's being published by &lt;STRONG&gt;Hood Canal Press&lt;/STRONG&gt;.&amp;nbsp; Click on&amp;nbsp;Chapter3.pdf below to&amp;nbsp;download Chapter&amp;nbsp;3 on installing and configuring&amp;nbsp;the SQL Server Publisher.&lt;/P&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter3.pdf" frameBorder=0 scrolling=no mce_src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter3.pdf"&gt;&lt;/IFRAME&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4682289" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/.NET+Compact+Framework/default.aspx">.NET Compact Framework</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category></item><item><title>Chapter 2 Refresh: Configuring the Distributor</title><link>http://blogs.msdn.com/robtiffany/archive/2007/08/30/chapter-2-refresh-configuring-the-distributor.aspx</link><pubDate>Fri, 31 Aug 2007 06:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4660019</guid><dc:creator>robtiffany</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/4660019.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=4660019</wfw:commentRss><description>&lt;P&gt;Not to be outdone by a refresh to chapter 4, I've made some updates and additions to chapter&amp;nbsp;2 for you to&amp;nbsp;look at as well.&amp;nbsp; Don't worry, chapter 3 is almost ready...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The book is called &lt;STRONG&gt;"Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1"&lt;/STRONG&gt; and it's being published by &lt;STRONG&gt;Hood Canal Press&lt;/STRONG&gt;.&amp;nbsp; Click on&amp;nbsp;Chapter2.pdf below to&amp;nbsp;download Chapter&amp;nbsp;2 on installing and configuring&amp;nbsp;the SQL Server Distributor.&lt;/P&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter2.pdf" frameBorder=0 scrolling=no mce_src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter2.pdf"&gt;&lt;/IFRAME&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4660019" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category></item><item><title>Chapter 4 Refresh: Web Synchronization</title><link>http://blogs.msdn.com/robtiffany/archive/2007/08/30/chapter-4-refresh-web-synchronization.aspx</link><pubDate>Fri, 31 Aug 2007 04:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4657761</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/4657761.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=4657761</wfw:commentRss><description>&lt;P&gt;I've made some updates and additions to chapter 4 for you to&amp;nbsp;look at.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The book is called &lt;STRONG&gt;"Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1"&lt;/STRONG&gt; and it's being published by &lt;STRONG&gt;Hood Canal Press&lt;/STRONG&gt;.&amp;nbsp; Click on&amp;nbsp;Chapter4.pdf below to&amp;nbsp;download Chapter 4 on installing and configuring Web Synchronization on your IIS server.&lt;/P&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter4.pdf" frameBorder=0 scrolling=no mce_src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter4.pdf"&gt;&lt;/IFRAME&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4657761" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category></item><item><title>Chapter 2: Configuring the Distributor</title><link>http://blogs.msdn.com/robtiffany/archive/2007/08/19/chapter-2-configuring-the-distributor.aspx</link><pubDate>Sun, 19 Aug 2007 21:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4467324</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/4467324.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=4467324</wfw:commentRss><description>&lt;P&gt;Here comes another chapter!&lt;/P&gt;
&lt;P&gt;My forthcoming&amp;nbsp;book is called &lt;STRONG&gt;"Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1"&lt;/STRONG&gt; and it's being published by &lt;STRONG&gt;Hood Canal Press&lt;/STRONG&gt;.&amp;nbsp; Click on&amp;nbsp;Chapter2.pdf below to&amp;nbsp;download Chapter&amp;nbsp;2 on installing and configuring the&amp;nbsp;SQL Server Distributor.&lt;/P&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter2.pdf" frameBorder=0 scrolling=no mce_src="http://cid-8b9c82da88af61fc.skydrive.live.com/embedrowdetail.aspx/Public/Chapter2.pdf"&gt;&lt;/IFRAME&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4467324" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Merge/default.aspx">Merge</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SSCE/default.aspx">SSCE</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Replication/default.aspx">Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server+2005+Compact+Edition/default.aspx">SQL Server 2005 Compact Edition</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Active+Directory/default.aspx">Active Directory</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Security/default.aspx">Security</category></item></channel></rss>