<?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 : Windows Mobile</title><link>http://blogs.msdn.com/robtiffany/archive/tags/Windows+Mobile/default.aspx</link><description>Tags: Windows Mobile</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>New Blog Site @ http://robtiffany.com</title><link>http://blogs.msdn.com/robtiffany/archive/2009/12/23/new-blog-site-http-robtiffany-com.aspx</link><pubDate>Wed, 23 Dec 2009 23:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9940787</guid><dc:creator>robtiffany</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/9940787.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=9940787</wfw:commentRss><description>&lt;P&gt;Hey everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Just wanted to let you know that I'm continuing this blog over&amp;nbsp;at &lt;A title="Rob Tiffany" href="http://robtiffany.com/" target=_blank mce_href="http://robtiffany.com"&gt;robtiffany.com&lt;/A&gt;.&amp;nbsp; I've finally decided to make better use of my personal Domain name and I'm switching to WordPress from the blog management system we use at MSDN.&amp;nbsp; As a Mobility Architect at Microsoft, I will continue to give you my insights into the exciting world of Windows phones, wireless technologies, mobile hardware, the mobile web&amp;nbsp;and Microsoft's mobile enterprise application platform (MEAP).&amp;nbsp; Don't worry, you'll be getting my take on competing technologies as well.&amp;nbsp; I enjoy seeing many of you both at Microsoft and at the events that I speak at all around the world.&amp;nbsp; Now you have another place to hear from me.&amp;nbsp; Come visit and subscribe to my RSS feed over at &lt;A title="Rob Tiffany" href="http://robtiffany.com/" target=_blank mce_href="http://robtiffany.com"&gt;robtiffany.com&lt;/A&gt;.&amp;nbsp; Happy Holidays everyone!&amp;nbsp; &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=9940787" width="1" height="1"&gt;</description><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/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/Merge+Replication/default.aspx">Merge Replication</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Republishing/default.aspx">Republishing</category></item><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>Microsoft and Nokia Form Global Alliance to Design, Develop and Market Mobile Productivity Solutions</title><link>http://blogs.msdn.com/robtiffany/archive/2009/08/12/microsoft-and-nokia-form-global-alliance-to-design-develop-and-market-mobile-productivity-solutions.aspx</link><pubDate>Wed, 12 Aug 2009 18:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9866610</guid><dc:creator>robtiffany</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/9866610.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=9866610</wfw:commentRss><description>&lt;P&gt;The worldwide leader in software and the world’s largest smartphone manufacturer have entered into an alliance that is set to deliver a groundbreaking, enterprise-grade solution for mobile productivity. Today, Microsoft Business Division President Stephen Elop and Nokia’s Executive Vice President for Devices Kai Öistämö announced the agreement, outlining a shared vision for the future of mobile productivity. This is the first time that either company has embarked on an alliance of this scope and nature. &lt;/P&gt;
&lt;P&gt;Under the terms of the agreement, the two companies will begin collaborating immediately on the design, development and marketing of productivity solutions for the mobile professional, bringing Microsoft Office Mobile and Microsoft business communications, collaboration and device management software to Nokia’s Symbian devices. These solutions will be available for a broad range of Nokia smartphones starting with the company’s business-optimized range, Nokia Eseries. The two companies will also market these solutions to businesses, carriers and individuals.&lt;/P&gt;
&lt;P class=pp_BodyText&gt;Both Microsoft Corp. and Nokia possess a rare combination of enterprise experience and consumer understanding and, in addition to the collaboration on existing software and services, will use these assets to jointly design a range of new user experiences for future Nokia devices. These experiences will be identified together, and will be created by dedicated teams inside both companies to better meet the growing needs of the mobile professional.&lt;/P&gt;
&lt;P class=pp_BodyText&gt;“With more than 200 million smartphone customers globally, Nokia is the world’s largest smartphone manufacturer and a natural partner for us,” said Elop. “Today’s announcement will enable us to expand Microsoft Office Mobile to Nokia smartphone owners worldwide and allow them to collaborate on Office documents from anywhere, as part of our strategy to provide the best productivity experience across the PC, phone and browser.”&lt;/P&gt;
&lt;P class=pp_BodyText&gt;“If you are going to provide a seamless and integrated productivity experience on a mobile device, Microsoft is an ideal partner,” said Öistämö. “Together with Microsoft, we will develop new and innovative user experiences for employees of small and large businesses alike, ensuring Nokia’s smartphones are an integral part of the office and home-office environment, and addressing the significant opportunity in mobile enterprise productivity.”&lt;/P&gt;
&lt;P class=pp_BodyText&gt;This announcement builds on the existing work Nokia is doing by optimizing access to e-mail and other personal information with Exchange ActiveSync. Next year, Nokia intends to start shipping Microsoft Office Communicator Mobile on its smartphones, followed by other Office applications and related software and services in the future. These will include:&lt;/P&gt;
&lt;P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=pp_listBullet vAlign=top class="pp_listBullet"&gt;•&lt;/TD&gt;
&lt;TD class=pp_listItem class="pp_listItem"&gt;
&lt;P class=pp_BodyText&gt;The ability to view, edit, create and share Office documents on more devices in more places with mobile-optimized versions of Microsoft Word, Microsoft PowerPoint, Microsoft Excel and Microsoft OneNote&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=pp_listBullet vAlign=top class="pp_listBullet"&gt;•&lt;/TD&gt;
&lt;TD class=pp_listItem class="pp_listItem"&gt;
&lt;P class=pp_BodyText&gt;Enterprise instant messaging and presence, and optimized conferencing and collaboration experience with Microsoft Office Communicator Mobile&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=pp_listBullet vAlign=top class="pp_listBullet"&gt;•&lt;/TD&gt;
&lt;TD class=pp_listItem class="pp_listItem"&gt;
&lt;P class=pp_BodyText&gt;Mobile access to intranet and extranet portals built on Microsoft SharePoint Server&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=pp_listBullet vAlign=top class="pp_listBullet"&gt;•&lt;/TD&gt;
&lt;TD class=pp_listItem class="pp_listItem"&gt;
&lt;P class=pp_BodyText&gt;Enterprise device management with Microsoft System Center&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P class=pp_BodyText&gt;“Having these two major players cooperating at this level will help us continue to meet our customers’ needs and reinforces our future business mobility strategy,” said Diane Sanchez, head of Telefonica USA.&lt;/P&gt;
&lt;P class=pp_BodyText&gt;“The scope of the alliance between Microsoft and Nokia, and potential value for the enterprise and individual is significant,” said Stephen Drake, VP of Mobility &amp;amp; Telecom at IDC. “By bringing Microsoft’s productivity solutions to Nokia’s large customer base, the two companies should be better able to serve the needs of the growing mobile worker population, which IDC estimates to reach 1 billion worldwide in 2011.”&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9866610" width="1" height="1"&gt;</description><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/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Symbian/default.aspx">Symbian</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Nokia/default.aspx">Nokia</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Communicator+Mobile/default.aspx">Communicator Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/System+Center/default.aspx">System Center</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Office+Mobile/default.aspx">Office Mobile</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Rise of the Psuedo Smartphones</title><link>http://blogs.msdn.com/robtiffany/archive/2009/07/17/rise-of-the-psuedo-smartphones.aspx</link><pubDate>Sat, 18 Jul 2009 03:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9838092</guid><dc:creator>robtiffany</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/9838092.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=9838092</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;What do the following feature phones have in common?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;LG Dare&lt;/LI&gt;
&lt;LI&gt;LG Voyager&lt;/LI&gt;
&lt;LI&gt;LG Versa&lt;/LI&gt;
&lt;LI&gt;LG enV Touch&lt;/LI&gt;
&lt;LI&gt;LG Rumour 2&lt;/LI&gt;
&lt;LI&gt;LG Lotus&lt;/LI&gt;
&lt;LI&gt;LG Neon&lt;/LI&gt;
&lt;LI&gt;LG Xenon&lt;/LI&gt;
&lt;LI&gt;LG VU&lt;/LI&gt;
&lt;LI&gt;Samsung Alias 2&lt;/LI&gt;
&lt;LI&gt;Samsung Gravity&lt;/LI&gt;
&lt;LI&gt;Samsung Behold&lt;/LI&gt;
&lt;LI&gt;Samsung Highlight&lt;/LI&gt;
&lt;LI&gt;Samsung Memoir&lt;/LI&gt;
&lt;LI&gt;Samsung Propel&lt;/LI&gt;
&lt;LI&gt;Samsung Rant&lt;/LI&gt;
&lt;LI&gt;Samsung Exclaim&lt;/LI&gt;
&lt;LI&gt;Samsung Instinct&lt;/LI&gt;
&lt;LI&gt;Samsung Magnet&lt;/LI&gt;
&lt;LI&gt;Samsung Eternity&lt;/LI&gt;
&lt;LI&gt;Samsung Impression&lt;/LI&gt;
&lt;LI&gt;Sanyo SCP-2700&lt;/LI&gt;
&lt;LI&gt;AT&amp;amp;T Quickfire&lt;/LI&gt;
&lt;LI&gt;Pantech Matrix&lt;/LI&gt;
&lt;LI&gt;Motorola Karma&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;They include features like:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;High-Megapixel Cameras w/Zoom&lt;/LI&gt;
&lt;LI&gt;GPS&lt;/LI&gt;
&lt;LI&gt;Touch Screen&lt;/LI&gt;
&lt;LI&gt;QWERTY Keyboards&lt;/LI&gt;
&lt;LI&gt;Play Music&lt;/LI&gt;
&lt;LI&gt;Play Videos&lt;/LI&gt;
&lt;LI&gt;Web Browser&lt;/LI&gt;
&lt;LI&gt;Email&lt;/LI&gt;
&lt;LI&gt;Games &lt;/LI&gt;
&lt;LI&gt;Apps&lt;/LI&gt;
&lt;LI&gt;Instant Messaging&lt;/LI&gt;
&lt;LI&gt;3G&lt;/LI&gt;
&lt;LI&gt;Stereo Bluetooth&lt;/LI&gt;
&lt;LI&gt;Video Capture&lt;/LI&gt;
&lt;LI&gt;SD Card Storage&lt;/LI&gt;
&lt;LI&gt;Calendar&lt;/LI&gt;
&lt;LI&gt;Contacts&lt;/LI&gt;
&lt;LI&gt;Quad-Band GSM&lt;/LI&gt;
&lt;LI&gt;Voice Dialing&lt;/LI&gt;
&lt;LI&gt;Alarm&lt;/LI&gt;
&lt;LI&gt;Calculator&lt;/LI&gt;
&lt;LI&gt;Photo Album&lt;/LI&gt;
&lt;LI&gt;SMS&lt;/LI&gt;
&lt;LI&gt;MMS&lt;/LI&gt;
&lt;LI&gt;Wi-Fi&lt;/LI&gt;
&lt;LI&gt;Internet Tethering&lt;/LI&gt;
&lt;LI&gt;Slide-out Keyboard&lt;/LI&gt;
&lt;LI&gt;Turn-by-Turn Navigation&lt;/LI&gt;
&lt;LI&gt;Push to Talk&lt;/LI&gt;
&lt;LI&gt;Radio&lt;/LI&gt;
&lt;LI&gt;Hi-res Graphics&lt;/LI&gt;
&lt;LI&gt;Streaming XM/Sirius&lt;/LI&gt;
&lt;LI&gt;Mobile TV&lt;/LI&gt;
&lt;LI&gt;Java&lt;/LI&gt;
&lt;LI&gt;Facebook&lt;/LI&gt;
&lt;LI&gt;MySpace&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;We consider phones with advanced mobile operating systems like Windows Mobile, Blackberry, iPhone, Symbian, and WebOS to be Smartphones.&amp;nbsp; When I look at the list of features above, I think most people in world would have a hard time distinguishing between what we call Smartphones and the rising tide of super-charged feature phones.&amp;nbsp; At a 30,000 ft level, a published&amp;nbsp;API and development tools that allow you to create rich applications to access databases and remote servers may be the only distinction.&amp;nbsp; Of course that would be a slight againt Java ME that's found on over a billion feature phones.&amp;nbsp; I would venture to guess that 99% of the buying public can't tell the difference and may not even care as long as the price is right.&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;big takeaway is that the large chasm that used to exist between feature phones and Smartphones has diminished dramatically.&amp;nbsp; In the coming years, Smartphone OS and hardware manufacturers have no choice but to innovate in a big way in order to put some distance between themselves and the clones attacking them from below or risk becoming commoditized and irrelevant.&lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9838092" width="1" height="1"&gt;</description><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/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/Invention/default.aspx">Invention</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Ideas/default.aspx">Ideas</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Innovation/default.aspx">Innovation</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/Apple/default.aspx">Apple</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/iPhone/default.aspx">iPhone</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/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Blackberry/default.aspx">Blackberry</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Symbian/default.aspx">Symbian</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>New Resco MobileForms Release for NETCF</title><link>http://blogs.msdn.com/robtiffany/archive/2008/10/29/new-resco-mobileforms-release-for-netcf.aspx</link><pubDate>Thu, 30 Oct 2008 05:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9023502</guid><dc:creator>robtiffany</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/9023502.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=9023502</wfw:commentRss><description>&lt;P&gt;Just in case all you mobile developers didn't hear, Resco has released Volume 3 of their MobileForms Toolkit 2008. &lt;/P&gt;
&lt;P&gt;Resco MobileForms Toolkit contains:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Resco CustomKeyboard for .NET – flexible control supporting custom keyboard layouts 
&lt;LI&gt;Resco SmartGrid for .NET - powerful grid control with built-in auto edit capabilities 
&lt;LI&gt;Resco AdvancedList for .NET - professional list control suitable for small displays of mobile devices 
&lt;LI&gt;Resco AdvancedTree for .NET - featured tree control excellent for displaying tree-organized data 
&lt;LI&gt;Resco DetailView for .NET - elegant and quick way of creating user input forms 
&lt;LI&gt;Resco CompactChart for .NET - charting control supporting 5 chart types 
&lt;LI&gt;Resco OutlookShortcutBar for .NET - popular shortcut control, common to all modern applications 
&lt;LI&gt;Resco OutlookWeekCalendar for .NET - day/Week appointment scheduling control 
&lt;LI&gt;Resco OutlookMonthCalendar for .NET - month/Year scheduling control 
&lt;LI&gt;Resco OutlookDateTimePicker for .NET - modern version of common control providing advanced styles 
&lt;LI&gt;Resco InkBox for .NET - ink control suitable for quick notes or signatures 
&lt;LI&gt;Resco ImageBox for .NET CF - versatile image control supporting various graphic formats 
&lt;LI&gt;Resco ImageButton for .NET CF - adjustable, modifiable and skinnable button 
&lt;LI&gt;Resco Audio for .NET CF - powerful library for playing and recording audio 
&lt;LI&gt;Resco Zip for .NET - industry standard compression library &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;For more information about Resco MobileForms Toolkit, visit &lt;A href="http://www.resco.net/developer/mobileformstoolkit/default.aspx"&gt;http://www.resco.net/developer/mobileformstoolkit/default.aspx&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Additionally, they'll be at Tech Ed EMEA in Barcelona exhibiting at booth E12 so please check them out to see if their controls meet your mobile development needs.&lt;/P&gt;
&lt;P&gt;-Rob&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9023502" width="1" height="1"&gt;</description><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/.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/Custom+Controls/default.aspx">Custom Controls</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>Old School Windows Mobile :: Getting Started with Java on PDAs</title><link>http://blogs.msdn.com/robtiffany/archive/2008/10/07/old-school-windows-mobile-getting-started-with-java-on-pdas.aspx</link><pubDate>Wed, 08 Oct 2008 06:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8990364</guid><dc:creator>robtiffany</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/8990364.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=8990364</wfw:commentRss><description>&lt;P&gt;&lt;I&gt;&lt;STRONG&gt;Below is an article I&amp;nbsp;wrote back in 2002 that described how to build Personal Java apps on the iPAQ during the age of Pocket PC 2000, Embedded VB and C++:&lt;/STRONG&gt;&lt;/I&gt;&amp;nbsp; 
&lt;P&gt;&lt;I&gt;PDAs are becoming a permanent fixture in the everyday lives of consumers and business people. There's no question that we have Palm to thank for bringing us a small, pen-based, easy-to-use organizer to help keep our busy lives on track.&lt;/I&gt; 
&lt;P&gt;At the same time, Microsoft has been trying to hit one out of the park for years with its Windows CE operating system running on a variety of handheld devices. As with everything else at Microsoft, it usually takes them three times to get something right, and the Pocket PC is no exception. 
&lt;P&gt;Based on Windows CE 3.0, the Pocket PC looks and works much like its Palm rival. However, the Pocket PC is different due to its use of more powerful hardware, more memory, and a full-blown, multithreaded operating system - it's more like a small computer than an organizer. 
&lt;P&gt;The success of the Pocket PC in the marketplace is largely due to the unique styling and powerful processor found in the Compaq iPAQ. With all the other Pocket PC devices shaped like unimaginative rectangular boxes, the iPAQ has had an easy time gobbling up market share. That said, the Palm is still the market-share king and isn't sitting around on its laurels waiting to become another "Netscape-style" victim of Microsoft. 
&lt;P&gt;As evidenced by the dominance of Windows, having the most developers writing applications for a given platform does more for its success than superior technology. The existence of a variety of programming languages for a platform plays a large role when it comes to building the critical mass of applications needed to put that platform over the top. Development for the Palm is currently being done with languages such as C/C++, CASL, NS Basic, J2ME, and AppForge (Visual Basic). Until recently, the Pocket PC development languages included eMbedded Visual Basic, NS Basic, and eMbedded Visual C++. 
&lt;P&gt;The Palm has clearly had the upper hand in the language department, even though its operating system lags behind the Pocket PC in features. This is quite a paradox for the Pocket PC camp, which seems to have superior technology on its side. Even the two BASIC tools for the Pocket PC are actually based on VBScript, with its lack of true data types and horrible error handling. So, the only way to take advantage of everything Windows CE 3.0 has to offer is to use an eMbedded Visual C++ tool, which most developers find intimidating at best. 
&lt;P&gt;Last summer, the Pocket PC gained a powerful and easy-touse language that enabled developers take full advantage of the Windows CE operating system. Sure to make Microsoft executives cringe, Java has finally arrived for the iPAQ! Insignia Solutions (&lt;A href="http://www.insignia.com/" target=new mce_href="http://www.insignia.com/"&gt;http://www.insignia.com/&lt;/A&gt;) released its Jeode Embedded Virtual Machine for the Intel StrongARM processor. 
&lt;P&gt;The Jeode EVM is a Sun Authorized Virtual Machine that is certified and fully compliant with Sun's PersonalJava 1.2 and Embedded Java 1.0.3 specifications. It can run Java applets and applications, use a dynamic compiler to run Java apps up to six times faster than a normal JVM interpreter, and provide a preemptible, concurrent garbage collector for superior memory management. Most developers don't know much about Sun's PersonalJava and usually think about MIDP when talk of Java development for a handheld device comes up. 
&lt;P&gt;PersonalJava, as opposed to MIDP, wouldn't fit very well on a Palm (for example), nor could all of its classes be utilized, since the Palm OS doesn't provide all the underlying services required. 
&lt;P&gt;Since the iPAQ doesn't skimp on memory - 32MB is now the minimum - you don't have to compromise on your Java. PersonalJava is roughly equivalent to JDK 1.1.8 with a dash of JDK 1.2 classes and APIs thrown in for good measure. The Jeode EVM requires only 3-4.5MBs of space, depending on your need for the internationalization classes. This means that the Java Native Interface plus all of the following classes are available to you: 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.io:&lt;/I&gt;&lt;/B&gt; System input and output through data streams, serialization, and the file system 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.util:&lt;/I&gt;&lt;/B&gt; Collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.util.jar:&lt;/I&gt;&lt;/B&gt; Classes for reading and writing the JAR (Java ARchive) file format 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.util.zip:&lt;/I&gt;&lt;/B&gt; Classes for reading and writing the standard Zip and GZip file formats 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.lang:&lt;/I&gt;&lt;/B&gt; Core Java API classes 
&lt;P&gt;&lt;B&gt;&lt;I&gt;Core Java API Classes&lt;/I&gt;&lt;/B&gt; &lt;BR&gt;&lt;/P&gt;
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.lang.reflect:&lt;/I&gt;&lt;/B&gt; Classes and interfaces for obtaining reflective information about classes and objects 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.net:&lt;/I&gt;&lt;/B&gt; Classes for implementing networking applications 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.math:&lt;/I&gt;&lt;/B&gt; Classes for performing arbitrary-precision integer arithmetic (BigInteger) and arbitrary-precision decimal arithmetic (BigDecimal) 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.text:&lt;/I&gt;&lt;/B&gt; Classes and interfaces for handling text, dates, numbers, and messages 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.rmi:&lt;/I&gt;&lt;/B&gt; Classes that allow Java to make remote procedure calls 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.rmi.dgc:&lt;/I&gt;&lt;/B&gt; Classes and interface for RMI distributed garbage collection 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.rmi.registry:&lt;/I&gt;&lt;/B&gt; A class and two interfaces for the RMI registry 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.rmi.server:&lt;/I&gt;&lt;/B&gt; Classes and interfaces for supporting the server side of RMI 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.security:&lt;/I&gt;&lt;/B&gt; Classes and interfaces for the security framework 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.security.acl:&lt;/I&gt;&lt;/B&gt; Interface to access control list data structures 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.security.cert:&lt;/I&gt;&lt;/B&gt; Classes and interfaces for parsing and managing certificates 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.security.interfaces:&lt;/I&gt;&lt;/B&gt; Interfaces for generating RSA and DSA keys 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.security.spec:&lt;/I&gt;&lt;/B&gt; Classes and interfaces for key specifications and algorithm parameter specifications 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.sql:&lt;/I&gt;&lt;/B&gt; An API for accessing and processing data found in databases 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.beans:&lt;/I&gt;&lt;/B&gt; Classes that support the creation and usage of embeddable, reusable software components 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.applet:&lt;/I&gt;&lt;/B&gt; Classes necessary to create an applet and the classes an applet uses to communicate with its applet context 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.awt:&lt;/I&gt;&lt;/B&gt; Classes for creating user interfaces and for painting graphics and images 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.awt.datatransfer:&lt;/I&gt;&lt;/B&gt; Interfaces and classes for transferring data between and within applications 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.awt.event:&lt;/I&gt;&lt;/B&gt; Interfaces and classes for dealing with different types of events fired by AWT components 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;java.awt.image:&lt;/I&gt;&lt;/B&gt; Classes for creating and modifying images 
&lt;P&gt;As you can see by all the packages, classes, and APIs supported in PersonalJava, you have a handheld programming language that’s more feature-rich than eMbedded Visual Basic, AppForge, NS Basic, or MIDP. Only eMbedded Visual C++ rivals PersonalJava in power, but it can’t compare when it comes to developer productivity. In addition, the Jeode EVM supports the creation of console applications, and a Timer class is provided for use in animations, scheduling jobs, or any situation in which you need to execute code at set intervals. 
&lt;P&gt;Let’s cover what PersonalJava can’t do. Generally, anything that’s dependent on Java 2 is off-limits, with the exception of the handful of JDK 1.2 classes found in PersonalJava. Alas, Swing is officially unsupported in this environment. 
&lt;P&gt;There is a workaround to make JFC 1.1.1 work with PersonalJava that requires you to change a line of code in one of the classes that make up swingall.jar. I’ve made this change myself and it’s a good news, bad news situation. On the one hand, you get to use great-looking, Swing user interface elements on your iPAQ. The downside is the deployment of a 2MB swingall.jar file, slow program loading times, and extremely poor performance. 
&lt;P&gt;In my opinion, you should stick with AWT and other GUI widgets that are based on JDK 1.1. You may have to do some digging to find things like AWT-based grids and tab controls, but they’re out there. My advice is to look in your old copies of “pre-Swing” JBuilder and VisualCafé to find lots of GUI JavaBeans based on AWT. 
&lt;P&gt;&lt;B&gt;&lt;I&gt;Building Applications&lt;/I&gt;&lt;/B&gt; &lt;BR&gt;So what kind of cool applications can you build on your iPAQ with this technology? 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI&gt;A single-tier application that uses JDBC to store and manipulate data on a local, pure-Java database such as Cloudscape or PointBase 
&lt;LI&gt;A wireless two-tier client that uses JDBC to communicate directly with enterprise databases such as Oracle and SQL Server 
&lt;LI&gt;A wireless n-tier client that uses RMI to make remote procedure calls to Java objects on a middle-tier server 
&lt;LI&gt;A mobile, wireless RMI server that allows other Java clients to invoke its objects 
&lt;LI&gt;A chat/instant messenger client or server using Socket and URL classes 
&lt;LI&gt;A wireless telemetry client that remotely monitors vital corporate assets from anywhere 
&lt;LI&gt;A remote data-entry application to be used by personnel who work in the field. 
&lt;LI&gt;Miniature, mobile versions of just about any desktop or server Java application you’ve ever built. 
&lt;P&gt;I think you get the gist of where I’m going here. The best recommendation I can make is to get your hands on a wireless Ethernet (802.11b) or a CDPD (mobile Internet) card so you can start building the kind of distributed wireless applications that will take you to the next level in your career as a developer (you probably never thought that going backwards to Java 1.1 would help advance your career). 
&lt;P&gt;For complete information and the APIs related to PersonalJava, go to the PersonalJava application environment Web site at &lt;A href="http://java.sun.com/products/personaljava" target=new mce_href="http://java.sun.com/products/personaljava"&gt;http://java.sun.com/products/personaljava&lt;/A&gt;. 
&lt;P&gt;&lt;B&gt;Getting Jeode&lt;/B&gt; &lt;BR&gt;Now that you know what PersonalJava and the Jeode EVM are capable of, it's time to go get it. The Jeode EVM is available for purchase on the Handango Web site at &lt;A href="http://www.handango.com/PlatformProductDetail.jsp?siteId=1&amp;amp;platformId=2&amp;amp;productType=2&amp;amp;catalog=0&amp;amp;sectionId=0&amp;amp;productId=17215" target=new mce_href="http://www.handango.com/PlatformProductDetail.jsp?siteId=1&amp;amp;platformId=2&amp;amp;productType=2&amp;amp;catalog=0&amp;amp;sectionId=0&amp;amp;productId=17215"&gt;http://www.handango.com/PlatformProductDetail.jsp?siteId=1&amp;amp;platformId=2&amp;amp;productType=2&amp;amp;catalog=0&amp;amp;sectionId=0&amp;amp;productId=17215&lt;/A&gt;for $19.99. The software is downloadable from the Web site after you go through the shopping cart and checkout routine. 
&lt;P&gt;Once the software is downloaded, load it onto your Pocket PC. To begin the installation, be sure the iPAQ is in its cradle and connected to your PC via ActiveSync. Double-click on the "JeodeForArmPocketPC" executable to start the InstallShield Wizard. When asked to install Jeode in the default folder, click Yes. The installation shouldn't take more than a minute. 
&lt;P&gt;To verify the installation and to be sure the EVM is working properly, complete the following steps: from the Start menu on your iPAQ, navigate to Programs|Jeode|EVM to bring up the EVMConsole (see Figure 1). 
&lt;DIV align=center&gt;&lt;BR&gt;&lt;STRONG&gt;Figure &amp;nbsp;1:&lt;/STRONG&gt; &lt;/DIV&gt;
&lt;P&gt;The EVMConsole is equivalent to the DOS/Command Prompt you have in Windows. From here you can launch both console and AWT Java applications. There are a number of command line options that you can pass to the EVM when using the EVMConsole: 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI&gt;&lt;B&gt;&lt;I&gt;-?, -h, or -help:&lt;/I&gt;&lt;/B&gt; Displays Jeode EVM help. 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;-cp &amp;lt;pathnames&amp;gt; or - classpath &amp;lt;pathnames&amp;gt;:&lt;/I&gt;&lt;/B&gt; Here you specify the path(s) used for loading classes. Semicolons separate multiple pathnames that point to JAR files. If you need to launch a Java application that resides in a JAR file called "ipaq" that sits in the "windows" directory with a main class called "frame1", you would type in "-cp \windows\ipaq.jar frame1". To take this a step further, if your application needs classes found in a third-party JAR file, you might type in "-cp \windows\lib\jcbwt363.jar;\windows\ipaq.jar frame1". If you put your application in a package, you would type in "-cp \windows\ipaq.jar mypackage.frame1". That said, application classes that don't reside in a JAR file can be executed directly without the use of "-cp". 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;-D &amp;lt;propertyName&amp;gt; = &amp;lt;value&amp;gt;:&lt;/I&gt;&lt;/B&gt; This supplies the value for either a Jeode EVM or Java system property. To keep the console open after an application has been executed, use the command "-Djeode.evm.console.local.keep=TRUE". If you have a console application that sends more than one screen of data to the console, use the command "-Djeode.evm.console.local.paging=TRUE". 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;-v or -verbose:&lt;/I&gt;&lt;/B&gt; This causes messages to be displayed by the EVMConsole when a class file or dynamic library is successfully loaded or when a garbage-collection cycle is performed. 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;-version:&lt;/I&gt;&lt;/B&gt; Displays the EVM and class library versions. 
&lt;LI&gt;&lt;B&gt;&lt;I&gt;-Xnowinceconsole:&lt;/I&gt;&lt;/B&gt; This option disables the EVMConsole if you don't want it to remain visible while running graphical applications. 
&lt;P&gt;You can further test your installation by trying out all the test applications found in the Examples and AWT folders. 
&lt;P&gt;I think I've done enough talking about what can be done with Java on the iPAQ, so let's put theory into practice and build some simple applications. We'll be building both a console and a GUI app that uses AWT. I'll be building Java applications that are Java 1.1-compliant, so if you're using a current IDE based on Java 2, you'll need to utilize its JDK switching feature to compile against JDK 1.1. In some cases I'll package the Java apps in JAR files - in this case, either use your IDE's JAR wizard or JAR your classes together at the command line. 
&lt;P&gt;&lt;B&gt;Console App&lt;/B&gt; &lt;BR&gt;The console application we develop will demonstrate multithreading and reside in a package called "basicconsole" and consist of two classes. The code for the class called "counter" is shown in &lt;A href="http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0702/tiffany/index.html#s1" mce_href="http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0702/tiffany/index.html#s1"&gt;Listing 1&lt;/A&gt;. 
&lt;P&gt;This class is the worker thread that simply counts upward from one number to another based on the integers that are passed into it. It sends those numbers to the console. The main class is called "app" (see &lt;A href="http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0702/tiffany/index.html#s2" mce_href="http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0702/tiffany/index.html#s2"&gt;Listing 2&lt;/A&gt;). 
&lt;P&gt;When this class executes, it creates two threads, passes them the number ranges, assigns thread names, then starts them. 
&lt;P&gt;After successfully compiling and testing these classes on your desktop computer, you need to JAR them up in a file called "BasicConsole.jar". The next step copies this JAR file to your iPAQ. 
&lt;P&gt;With an open ActiveSync connection, click the ActiveSync Explore icon to view the file structure on your iPAQ. I suggest you copy your JAR file to the "My Pocket PC" folder so you won't have to type in any path arguments to launch your application (see Figure 2). 
&lt;DIV align=center&gt;&lt;BR&gt;&lt;STRONG&gt;Figure &amp;nbsp;2:&lt;/STRONG&gt; &lt;/DIV&gt;
&lt;P&gt;To try out this console application on your iPAQ, bring up the Jeode console and type in "-cp BasicConsole.jar basicconsole.app", the result of which is shown in Figure 3. 
&lt;DIV align=center&gt;&lt;BR&gt;&lt;STRONG&gt;Figure &amp;nbsp;3:&lt;/STRONG&gt; &lt;/DIV&gt;
&lt;P&gt;Of course, there's not much demand for console apps anymore, so let's build that AWT application. Keep in mind that when using your latest and greatest Java IDE, it may insert all kinds of Swing references that you'll have to delete to create an AWT application that's compliant with JDK 1.1. 
&lt;P&gt;&lt;B&gt;AWT App&lt;/B&gt; &lt;BR&gt;The AWT application we build will also demonstrate multithreading, reside in a package called "basicawt", and consist of two classes. The code for the main class, called "app," is shown in &lt;A href="http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0702/tiffany/index.html#s3" mce_href="http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0702/tiffany/index.html#s3"&gt;Listing 3&lt;/A&gt;. (&lt;I&gt;Note:&lt;/I&gt; It's rather obvious that JBuilder has been used to generate this code.) 
&lt;P&gt;The second class is the actual Frame that will display our GUI elements. This class is called "frame1" (see &lt;A href="http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0702/tiffany/index.html#s4" mce_href="http://www2.sys-con.com/ITSG/virtualcd/Java/archives/0702/tiffany/index.html#s4"&gt;Listing 4&lt;/A&gt;). 
&lt;P&gt;The Frame loads and displays two buttons and two text boxes. Clicking on either of the buttons will spawn a thread that starts counting from one to 200. This counting will go by almost instantaneously on your desktop but will take a little more time to execute on your iPAQ. 
&lt;P&gt;After compiling and testing this app on your computer, JAR it up into a file called "basicawt.jar", then copy it to the same "My Pocket PC" directory that you copied your console application to. To try out this AWT application on your iPAQ, bring up the Jeode console and type in "-cp basicawt.jar basicawt.app". Figure 4 shows what this application should look like. 
&lt;DIV align=center&gt;&lt;BR&gt;&lt;STRONG&gt;Figure &amp;nbsp;4:&lt;/STRONG&gt; &lt;/DIV&gt;
&lt;P&gt;(&lt;I&gt;Note:&lt;/I&gt; Clicking on either of the buttons will trigger the counting race that's displayed in the corresponding text boxes.) 
&lt;P&gt;Keep in mind that this is just the tip of the iceberg when working with AWT. You can display images, check boxes, panels, combo boxes, labels, scrollbars, menus, and much more. That being said, if the AWT was so cool, why was it replaced by Swing? I can't argue there, but I do have a suggestion. Sitraka Software (formerly KL Group) allows you to freely download their pre-Swing GUI components from &lt;A href="http://www.sitraka.com/software/jclass" target=new mce_href="http://www.sitraka.com/software/jclass"&gt;www.sitraka.com/software/jclass&lt;/A&gt;. These JavaBeans make a great replacement for AWT and even rival Swing with components that include tree views, tabs, multicolumn list boxes (grids), progress meters, sliders, spinners, and windows splitters, to name a few. You can easily put together a pretty slick GUI (see Figure 5). 
&lt;DIV align=center&gt;&lt;BR&gt;&lt;STRONG&gt;Figure &amp;nbsp;5:&lt;/STRONG&gt; &lt;/DIV&gt;
&lt;P&gt;Now that you know what can be done with Java on the iPAQ, let's wrap up with one more note on the deployment of your applications. You can imagine that the average user won't be interested in launching his or her Java apps by typing commands in the Jeode console. Luckily, there's a better way through the use of shortcuts. 
&lt;P&gt;Start out by creating a text file on your desktop with a descriptive name like "BasicAWT.txt". Now change the "txt" extension to "lnk" to turn it into a shortcut. Open this shortcut in Notepad and type in text similar to what you typed in the Jeode console. To launch your BasicAWT application, the text on the first line of your "lnk" file will look like "1#\windows\evm.exe -cp basicawt.jarbasicawt.app". All you have to do now is save and copy this file to your iPAQ in the \Windows\Start Menu directory. From now on, you'll see the Jeode icon along with "BasicAWT" listed on the menu that you pull up from the Start button. 
&lt;P&gt;Congratulations! You've gone from learning about PersonalJava, to installing the Jeode VM and building and deploying your own Java apps. I hope you've enjoyed this glimpse into the world of Java on the iPAQ. Good luck in your development efforts. 
&lt;P&gt;&lt;STRONG&gt;Author Bio&lt;/STRONG&gt; &lt;BR&gt;Rob Tiffany is vice president of technology for True Quote (truequote.com), an online energy trading company. He has published numerous articles for a variety of magazines on topics ranging from Java servlets to wireless technologies. Rob is the author of Pocket PC Database Development with eMbedded Visual Basic from Apress.&lt;/P&gt;&lt;/LI&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8990364" width="1" height="1"&gt;</description><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/Pocket+PC/default.aspx">Pocket PC</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Java/default.aspx">Java</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Thread/default.aspx">Thread</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/iPAQ/default.aspx">iPAQ</category></item><item><title>Sync Framework v1 and Sync Services for ADO.NET v2 are now Generally Available!</title><link>http://blogs.msdn.com/robtiffany/archive/2008/08/06/sync-framework-v1-and-sync-services-for-ado-net-v2-are-now-generally-available.aspx</link><pubDate>Thu, 07 Aug 2008 03:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8839650</guid><dc:creator>robtiffany</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/8839650.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=8839650</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;FONT face="Times New Roman"&gt;As of today you can download the Sync Framework SDK in 11 languages including Chinese (Hong Kong), Chinese (Simplified), English, German, French, Italian, Japanese, Korean, Portuguese, Russian and Spanish for AMD64, IA64 and x86 processors from the&amp;nbsp;&lt;/FONT&gt;&lt;A title="Sync SDK Download" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=C88BA2D1-CEF3-4149-B301-9B056E7FB1E6&amp;amp;displaylang=en" target=_blank&gt;&lt;FONT face="Times New Roman" color=#0000ff&gt;Sync Framework Download Center&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman"&gt;.&amp;nbsp; &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Times New Roman"&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;What is Sync Framework?&lt;/SPAN&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;FONT face="Times New Roman"&gt;Imagine being able to&amp;nbsp;build a solution that seamlessly exchanges contact information between Outlook, a database contact management application, your mobile device and your service based contact management system.&amp;nbsp; Or how about a mobile device that connects with other devices to exchange pictures and videos.&amp;nbsp; How about being able to take data from any of your enterprise databases, file&amp;nbsp;or enterprise systems and make it available offline for users to modify and sync back up to the enterprise.&amp;nbsp; All of these capabilities are possible with the Sync Framework and best of all, it is free on Windows platforms and licensable on non-Windows platforms!&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;FONT face="Times New Roman"&gt;Just a few examples of companies that are already using the Sync Framework include:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;A title="Photo Sync" href="http://www.smugmug.com/" target=_blank&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;SmugMug&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;FONT face=Calibri&gt;who has added support for the Sync Framework to enable developers to build rich offline applications that can allow photos to be easily shared on friends and families local computers.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;A title="CRM Sync" href="https://www.interscapeinc.com/blog.html?id=17" target=_blank&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;InterScape&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; have embedded Sync Framework into their Customer Relationship &amp;amp; Management (CRM) solution to enable sales people to synchronize enterprise files and data for offline access.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l2 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;A title="Fujitsu File Sync " href="http://www.fujitsu-siemens.com/ps2/press/read/news_details.aspx?id=2820" target=_blank&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;FONT color=#0000ff&gt;Fujitsu Siemens&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'"&gt; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;FONT face=Calibri&gt;will embed the SyncToy file synchronization solution (powered by Sync Framework) on their STORAGEBIRD external drives to enable seamless file synchronization between devices and computers.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face="Times New Roman"&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;Sync Framework&amp;nbsp;Highlights&lt;/SPAN&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;FONT face="Times New Roman"&gt;Some of the highlights of this release include:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri&gt;Sync support to new and existing applications, services, and devices&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri&gt;Collaboration and offline capabilities for any application &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri&gt;Roam and share information from any data store, over any protocol, and over any network configuration&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri&gt;Leverage sync capabilities exposed in Microsoft technologies to create sync ecosystems &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri&gt;Extend the architecture to support custom data types including files&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face="Times New Roman"&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;Sync Services for ADO.NET v2&amp;nbsp;Highlights&amp;nbsp; &lt;/SPAN&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;FONT face="Times New Roman"&gt;Sync Services for ADO.NET is a Microsoft Sync Framework powered solution for synchronizing ADO.NET enabled databases in offline and collaboration scenarios. Sync Services for ADO.NET allows developers who are familiar with the concepts of ADO.NET to apply that knowledge to data synchronization through a very similar set of APIs to that of ADO.NET. Sync Services for ADO.NET provides the flexibility of a programming model like offline datasets and a richer synchronization feature set like that found in Merge replication. Sync Services for ADO.NET also supports synchronization over services, such as Windows Communication Foundation (WCF). &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;FONT face="Times New Roman"&gt;Some of the Sync Services for ADO.NET highlights include:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo3; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;Offline Database Synchronization&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri&gt;: With Sync Services for ADO.NET you are able to build a solution where multiple remote clients connect and synchronize to a central ADO.NET database in a Hub-and-Spoke configuration. This enables occasionally connected devices to periodically connect and synchronize changes with a central ADO.NET database server. This topology is a common solution for remote workers such as sales reps or field service workers. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo3; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;Collaboration Between Databases&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri&gt;: Sync Services for ADO.NET also includes Peer-to-Peer capabilities. Through a custom Peer provider, collaboration between two or more SQL Server databases can occur (support is not available for SQL Server Compact). Unlike a Hub-and-Spoke architecture, this provider enables a SQL Server database to communicate and exchange information with any other SQL Server database. This type of scenario is useful in group scenarios where users (such as auditors) need to update information and then collaborate those changes with other group members. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo3; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'"&gt;SQL Server 2008 Integrated Change Tracking&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;FONT face=Calibri&gt;: If you are using SQL Server 2008, we recommend that you use the SQL Server change tracking feature. This feature addresses many of the issues of custom-tracking systems and provides a straightforward way to track changes. Change tracking is also supported by the Local Database Cache in Visual Studio 2008 SP1. Developers can now specify that the Configure Data Synchronization wizard should enable SQL Server change tracking on the server and generate the commands necessary to select and apply changes to the server database. Unlike custom change tracking systems, SQL Server change tracking does not require any schema changes in the server database. For more information, see the Visual Studio 2008 documentation. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face="Times New Roman"&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;Sync Framework Pricing&lt;/SPAN&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;FONT face="Times New Roman"&gt;Sync Framework&amp;nbsp;will be licensed&amp;nbsp;&lt;U&gt;free&lt;/U&gt; on Windows platforms.&amp;nbsp; In addition, we are also &lt;/FONT&gt;&lt;A title="sync licensing" href="http://msdn.microsoft.com/en-us/sync/bb887636.aspx" target=_blank&gt;&lt;FONT face="Times New Roman" color=#0000ff&gt;licensing&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman"&gt; the specifications and a source code porting kit to developers who want to implement Microsoft Sync Framework solutions on non-Windows platforms.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;FONT face="Times New Roman"&gt;To learn more, visit &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/sync"&gt;&lt;FONT face="Times New Roman"&gt;http://msdn.microsoft.com/sync&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;- Rob&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8839650" width="1" height="1"&gt;</description><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/WCF/default.aspx">WCF</category></item><item><title>Tech Ed Developers 2008 is less than 2 Weeks Away!</title><link>http://blogs.msdn.com/robtiffany/archive/2008/05/21/tech-ed-developers-2008-is-less-than-2-weeks-away.aspx</link><pubDate>Wed, 21 May 2008 19:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8528660</guid><dc:creator>robtiffany</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/8528660.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=8528660</wfw:commentRss><description>&lt;P&gt;We're now in the home-stretch in our preparations for Tech Ed Developers in Orlando this June.&amp;nbsp; Since this was my year to run MEDC, I've been working on this event since last October when MCB decided to integrate our Mobile and Embedded Developers Conference into Tech Ed.&amp;nbsp; My goal has been to make this Tech Ed Developer event as much like the MEDC as possible.&amp;nbsp; Step one in that process has been to ensure that all our breakout sessions are being delivered by a "Dream Team" of Windows Mobile MVPs, Regional Directors&amp;nbsp;and Microsoft Mobility Experts.&amp;nbsp; MEDC veterans should regonize the names on this all-star roster:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Andy Wigley&lt;/LI&gt;
&lt;LI&gt;Dr.Neil Roodyn&lt;/LI&gt;
&lt;LI&gt;Nickolas Landry&lt;/LI&gt;
&lt;LI&gt;Rabi Satter&lt;/LI&gt;
&lt;LI&gt;Loke Uei Tan&lt;/LI&gt;
&lt;LI&gt;Doug Boling&lt;/LI&gt;
&lt;LI&gt;Maarten Struys&lt;/LI&gt;
&lt;LI&gt;Daniel Moth&lt;/LI&gt;
&lt;LI&gt;Anoop Gupta&lt;/LI&gt;
&lt;LI&gt;Darren Flatt&lt;/LI&gt;
&lt;LI&gt;Luis Cabrera-Cordon&lt;/LI&gt;
&lt;LI&gt;Dan Fergus&lt;/LI&gt;
&lt;LI&gt;Mike Francis&lt;/LI&gt;
&lt;LI&gt;Alex Feinman&lt;/LI&gt;
&lt;LI&gt;Jim Wilson&lt;/LI&gt;
&lt;LI&gt;Peter Foot&lt;/LI&gt;
&lt;LI&gt;Paul Yao&lt;/LI&gt;
&lt;LI&gt;Alex Yakhnin&lt;/LI&gt;
&lt;LI&gt;Darren Shaffer&lt;/LI&gt;
&lt;LI&gt;Rob Tiffany&lt;/LI&gt;
&lt;LI&gt;Reed Robison&lt;/LI&gt;
&lt;LI&gt;Mike Saffitz&lt;/LI&gt;
&lt;LI&gt;Vijay Tandra Sistla&lt;/LI&gt;
&lt;LI&gt;Ginny Caughey&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Nine of the speakers listed above are distinguished Windows Mobile authors so there's no question that we'll be delivering an avalanche of expertise to attendees at the event.&amp;nbsp; We just finished 2 weeks of dry run rehearsals and everyone is fine tuning their slide decks and demos.&lt;/P&gt;
&lt;P&gt;Jim Wilson has created just shy of a dozen hands-on-labs that will take you on deep-dives of our newest technologies at your own pace.&amp;nbsp; They really look incredible!&lt;/P&gt;
&lt;P&gt;At our giant Windows Mobile Pavilion, we'll have technology stations devoted to Visual Studio 2008 for Devices, Silverlight, the Windows Mobile Line of Business Acclerator 2008, and&amp;nbsp;the Device Bar where you can see the latest and greatest devices in action!&amp;nbsp; I know you're dying to check out the new Windows Mobile 6.1 operating system.&lt;/P&gt;
&lt;P&gt;This will be Bill Gates' last keynote address before he moves on to devote all his energies to the Bill and Melinda Gates Foundation so you don't want to miss this big moment.&amp;nbsp; The last time we had Bill do a keynote for MEDC was at the Mandalay Bay in 2005 when we launched Windows Mobile 5.0.&lt;/P&gt;
&lt;P&gt;If you haven't already registered for this fusion of MEDC and Tech Ed, please do so right away!&amp;nbsp; Go visit the Tech Ed home page at &lt;A href="http://www.microsoft.com/events/teched2008/developer/default.mspx"&gt;http://www.microsoft.com/events/teched2008/developer/default.mspx&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I look forward to seeing everyone in Orlando in a couple of weeks!&lt;/P&gt;
&lt;P&gt;Best Regards,&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=8528660" width="1" height="1"&gt;</description><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/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/Bill+Gates/default.aspx">Bill Gates</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Tech+Ed/default.aspx">Tech Ed</category></item><item><title>The iPhone comes to the Enterprise with a little help from Microsoft</title><link>http://blogs.msdn.com/robtiffany/archive/2008/03/06/the-iphone-comes-to-the-enterprise-with-a-little-help-from-microsoft.aspx</link><pubDate>Fri, 07 Mar 2008 06:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8085751</guid><dc:creator>robtiffany</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/8085751.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=8085751</wfw:commentRss><description>&lt;P&gt;This morning, Steve Jobs announced that Apple has licensed the Exchange Active Sync protocol from Microsoft in order to bring the following functionality to the iPhone:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Push Email&lt;/LI&gt;
&lt;LI&gt;Push Contacts&lt;/LI&gt;
&lt;LI&gt;Push Calendar&lt;/LI&gt;
&lt;LI&gt;Access to the Global Address List (GAL)&lt;/LI&gt;
&lt;LI&gt;Remote Wipe&lt;/LI&gt;
&lt;LI&gt;Password Policies&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The Apple folks publicly bashed the way Blackberry does email through a NOC and praised Microsoft for coming up with a much more advanced architecture that allows the iPhone to work directly with Exchange in a more reliable and affordable way.&amp;nbsp;Before all you fans of Windows Mobile freak out, just remember, licensing our AirSync protocol to Apple&amp;nbsp;means increased sales of Exchange Server, Windows Server, ISA Server and lots of CALs.&lt;/P&gt;
&lt;P&gt;Now on a much more threatening note, Apple did launch their new iPhone SDK that allows developers to build on-device applications using Objective C.&amp;nbsp; If you've ever done development on a NeXT Workstation or Mac OSX, you'll know what Object C is.&amp;nbsp; This SDK allows you to build rich applications for the iPhone that utilize the following features:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SQLite for Database access&lt;/LI&gt;
&lt;LI&gt;Core Location for location-based services&lt;/LI&gt;
&lt;LI&gt;Core Audio&lt;/LI&gt;
&lt;LI&gt;Video via h.264&lt;/LI&gt;
&lt;LI&gt;Core animation&lt;/LI&gt;
&lt;LI&gt;OpenGL ES for hardware accelerated 3D graphics and games&lt;/LI&gt;
&lt;LI&gt;Cocoa Touch for multi touch input&lt;/LI&gt;
&lt;LI&gt;Accelerometer to use the iPhone's 3-axis sensor in apps&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;They've got Xcode development tools, a debugger, an emulator, and a graphical forms builder with drag and drop functionality.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Like the Amazon Kindle, they've created something called "App Store" that will be included on the iPhone so users can find, buy and wirelessly download applications to their device.&amp;nbsp; You'll even be notified when there's an update to downloaded software.&amp;nbsp; All downloadable applications will have electronic certificates from Apple.&lt;/P&gt;
&lt;P&gt;If that's not enough, famous Venture Capitalist John Doerr announced that Kleiner Perkins (KPCB) started a $100 Million iFund to back companies looking to develop innovative applications for the iPhone.&lt;/P&gt;
&lt;P&gt;By any objective measure, this is a big day for the iPhone.&amp;nbsp; What can we do to ensure that Microsoft is a winner in this equation?&amp;nbsp; Just like with the benefits we receive by allowing the iPhone to sync with Exchange Server, the development of iPhone apps that connect with Microsoft servers will be just what the doctor ordered.&amp;nbsp; I would get started with the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SQL Server Compact for iPhone&lt;/LI&gt;
&lt;LI&gt;Sync Services for ADO.NET with a provider for the iPhone SSC database so we can sync with SQL Server&lt;/LI&gt;
&lt;LI&gt;SharePoint&amp;nbsp;Server 2007 access&lt;/LI&gt;
&lt;LI&gt;Communicator Mobile to access Office Communications Server 2007&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;You get the gist of where I'm going.&amp;nbsp; Just remember, the competition never sleeps and you should always expect to have your feet kept to the fire.&amp;nbsp; We must constantly reinvent ourselves and be ready to eat our own lunch before our competitors do.&lt;/P&gt;
&lt;P&gt;- Rob&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8085751" width="1" height="1"&gt;</description><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/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/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Apple/default.aspx">Apple</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/SDK/default.aspx">SDK</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/iPhone/default.aspx">iPhone</category><category domain="http://blogs.msdn.com/robtiffany/archive/tags/Objective+C/default.aspx">Objective C</category></item><item><title>Welcome to the New Windows Mobile Developer Center</title><link>http://blogs.msdn.com/robtiffany/archive/2008/02/22/welcome-to-the-new-windows-mobile-developer-center.aspx</link><pubDate>Sat, 23 Feb 2008 10:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7855455</guid><dc:creator>robtiffany</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/robtiffany/comments/7855455.aspx</comments><wfw:commentRss>http://blogs.msdn.com/robtiffany/commentrss.aspx?PostID=7855455</wfw:commentRss><description>&lt;SPAN style="COLOR: #1f497d; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;A quick glance at the Windows Mobile Developer Center clues you in to the fact that we’ve done a complete overhaul of the site.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For years, our “bread and butter” has been delivering you content on Smart Device Development which most often included articles on building apps with the .NET Compact Framework and SQL Server CE/Mobile/Everywhere/Compact.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;While we will still do that, we’re now making a concerted effort to expand the diversity of our content to cover an ever-growing mobile developer audience.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;The biggest thing you notice when you come to the site is 4 big boxes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Think of these as 4 concurrently running worker threads delivering more content on more topics than ever before.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;1.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;From the “Applications for Smart Devices” box, you’ll see content that targets native, managed, and SQL Server Compact topics.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t worry.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It won’t be 100% enterprise development 24/7 anymore.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We’ll tackle more and more consumer scenarios like Peter Foot did recently with his article on Mobile Facebook.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We’ll also go the other direction too and provide content on working with low-level APIs with C++.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And yes, we’ll even start talking about creating better device drivers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;2.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The “Mobile Web” box will unleash wave after wave of new content that covers the explosion that some are calling “Mobile 2.0.”&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll learn the nuts and bolts of building web sites designed for mobile devices as we talk about things like the new .MOBI standards, W3C Mobile Web best practices and the XHTML Mobile Profile.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t forget AJAX on Internet Explorer Mobile.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Jim Wilson and Mel Sampat have blown everyone away with their coverage of AJAX on our favorite mobile platform.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;3.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;In the “Mobile Games” box we’ll resurrect a topic that we used to give a lot of coverage to several years ago.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Based on the way this segment of the market is taking off, teaching you how to build games for Windows Mobile devices could turn out to be just as important as the work we’ve done in teaching you how to build mobile apps for the enterprise.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We do in fact have a portable gaming runtime for all our devices called Direct3D Mobile that can be programmed via another portable runtime called the .NET Compact Framework.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We also have Direct Draw or you could just chill out and create a casual 2D game with simple Sprites using NETCF and maybe a little GDI+.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;4.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The “Rich Internet Applications” box is a bit of a mystery and looks to be pretty vacant place at the moment.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t think of it like you would an “Under Construction” web site.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Think of it as the big tease that it is.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Who knows for sure what’s to come in the RIA space for Windows Mobile devices?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;Now that I’ve covered the 4 big boxes, take a look at the “Getting Started with Windows Mobile” section on the top-right hand side of the page.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This place is a tour de force of readiness to get you going with Windows Mobile development.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Labs, Webcasts, Videos, Solution Accelerators, Wiki’s, SDK’s, runtimes, and Power Toys oh my!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;Stay on the right side of the page and drop one section down to give props to our Device Application Developer MVPs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We all owe so much to these great folks!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They single-handedly created the Windows Mobile developer community back at the beginning of this decade by answering questions in the NETCF newsgroup, writing books, speaking at conferences (with the highest scores) and creating amazing organizations like OpenNETCF.org.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They also identify a disproportionally greater number of bugs in our beta software than any other individual or group.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;If you move back beneath the main boxes on the page, you’ll see a section on the left that completely displays the content of the latest Windows Mobile Team Blog.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The section on the right displays the latest blog posts from Jim Wilson, Loke Uei, Me, Visual Studio for Devices, the NETCF team, the SQL Server Compact team, Steve Lasker, Jason Langridge, Mel Sampat, Constanze Roman, and Frank Prengel.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The real-time information delivered by these blogs will keep you abreast of the latest developments in the Windows Mobile community.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;Last but not least is a section at the bottom that lists all the Forums that help make up the Windows Mobile ecosystem.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Get answers to some of your toughest questions from Microsoft employees and the community at large whether you’re building apps with C++, C#, VB, and/or SQL Server Compact.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;As a Mobile Developer, Architect, Marketer, Planner and former Embedded MVP, it’s been my vision to create a one-stop resource for all my Windows Mobile needs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I believe this new Windows Mobile Developer Center is a big step in that direction.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The multiple, concurrent streams of content that follows the launch of this new site will represent the proof in the pudding.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s been my great pleasure to deliver fresh content on a monthly basis to the Windows Mobile developer community.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As always, I look forward to your feedback so that I can better equip you with the information you need to get your job done.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;Best Regards,&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; COLOR: white; LINE-HEIGHT: 115%; mso-themecolor: background1"&gt;&lt;FONT face=Calibri&gt;Rob Tiffany&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7855455" width="1" height="1"&gt;</description><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/.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/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/Mobile+Web/default.aspx">Mobile Web</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></channel></rss>