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

<channel>
	<title>Rob Tiffany &#187; Windows CE</title>
	<atom:link href="http://robtiffany.com/tag/windows-ce/feed/" rel="self" type="application/rss+xml" />
	<link>http://robtiffany.com</link>
	<description>Author, Mobility Strategist at Microsoft, Speaker, Advisor, Technology Executive, Former Navy Submariner</description>
	<lastBuildDate>Sun, 20 May 2012 04:39:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>SQL Server Compact 4.0 Lands on the Web</title>
		<link>http://robtiffany.com/sql-server-compact-4-0-lands-on-the-web/</link>
		<comments>http://robtiffany.com/sql-server-compact-4-0-lands-on-the-web/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 06:31:33 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[.NET Compact Framework]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[RDA]]></category>
		<category><![CDATA[Remote Data Access]]></category>
		<category><![CDATA[SQL CE]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Sync Framework]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=486</guid>
		<description><![CDATA[With the new version 4.0, the little-database-that-could has grown up into a powerful server database ready to take on the web. <a href="http://robtiffany.com/sql-server-compact-4-0-lands-on-the-web/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A decade has passed since I first started using SQL CE on my Compaq iPAQ.  What started as a great upgrade to Pocket Access turned into the ultimate embedded database for Windows CE, the Pocket PC, Windows Mobile and Windows Phones.  The one-two punch of Outlook Mobile synchronizing email with Exchange and SQL Server Compact synchronizing data with SQL Server helped set the mobile enterprise on fire.  In 2005, version 3.0 supported Windows Tablets and progressive enhancements to the code base led to full Windows support on both x86 and x64 platforms.  With the new version 4.0, the little-database-that-could has grown up into a powerful server database ready to take on the web. </p>
<p>We&#8217;ve come a long way and you&#8217;re probably wondering what qualifies this new embedded database to take on the Internet:</p>
<ul>
<li>Native support for x64 Windows Servers</li>
<li>Virtual memory usage has been optimized to ensure the database can support up to 256 open connections &#8211; (Are you actually using 256 pooled connections with your &#8220;Big&#8221; database today?)</li>
<li>Supports databases up to 4 GB in size &#8211; (Feel free to implement your own data sharding scheme<a href="http://robtiffany.com/wp-content/uploads/2011/01/sqlserver_sql_server_2008_logo.png"><img class="alignright size-medium wp-image-496" title="SQL Server Compact" src="http://robtiffany.com/wp-content/uploads/2011/01/sqlserver_sql_server_2008_logo-300x246.png" alt="SQL Server Compact" width="180" height="148" /></a>)</li>
<li>Developed, stress-tested, and tuned to support ASP.NET web applications</li>
<li>Avoids the interprocess communications performance hit by running in-process with your web application</li>
<li>Row-level locking to boost concurrency</li>
<li>Step up to Government + Military grade security SHA2 algorithm to secure data with FIPS compliance</li>
<li>Enhanced data reliability via true atomicity, consistency, isolation, and durability (ACID) support</li>
<li>Transaction support to commit and roll back grouped changes</li>
<li>Full referential integrity with cascading deletes and updates</li>
<li>Support ADO.NET Entity Framework 4 &#8211; (Do I hear WCF Data Services?)</li>
<li>Paging queries are supported via T-SQL syntax to only return the data you actually need</li>
</ul>
<p>Wow, that&#8217;s quite a list!  SQL Server Compact 4.0 databases are easily developed using the new WebMatrix IDE or through Visual Studio 2010 SP1.  I&#8217;m loving the new ASP.NET Web Pages.  It reminds me of the good old days of building web applications with Classic ASP back in the 90&#8242;s with Visual InterDev and Homesite.</p>
<p>What about Mobility?</p>
<p>Since SQL Server Compact owes its heritage to mobile and embedded versions of Windows, you might be wanting to know what our story is there.  The good news is that you can build and deploy v4.0 databases on Windows XP, Windows Vista, and Windows 7.  If you want to implement an occasionally-connected solution that utilizes the Sync Framework, Remote Data Access (RDA), or Merge Replication, you&#8217;ll need to stick with SQL Server Compact 3.5 SP2.  Time and resource-constraints prevented the Compact team from enabling these features.  Luckily, single-user WPF/WinForms database applications running on Windows Slates, laptops and Windows Embedded Handheld devices will work just fine with the v3.5 SP2 runtime.  Get a jumpstart with this by pickup up &#8220;Enterprise Data Synchronization with Microsoft SQL Server 2008 and SQL Server Compact 3.5 Mobile Merge Replication&#8221; at   <a href="http://www.amazon.com/Enterprise-Synchronization-Microsoft-Compact-Replication/dp/0979891213/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1281715114&amp;sr=1-1">http://www.amazon.com/Enterprise-Synchronization-Microsoft-Compact-Replication/dp/0979891213/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1281715114&amp;sr=1-1</a> to start building those MEAP solutions.</p>
<p>With the tidal wave of Windows Slates hitting the market, a secure, powerful mobile database that allows users to work offline and syncs with SQL Server is definitely going to be a hot item!</p>
<p>So run, don&#8217;t walk to the Microsoft Download site to download the Next-Gen database for the web:</p>
<p><a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=033cfb76-5382-44fb-bc7e-b3c8174832e2">http://www.microsoft.com/downloads/en/details.aspx?FamilyID=033cfb76-5382-44fb-bc7e-b3c8174832e2</a></p>
<p>If you need to support occasionally-connected mobile applications with sync capabilities on muliple Windows platforms, download SQL Server Compact 3.5 SP2:</p>
<p><a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e497988a-c93a-404c-b161-3a0b323dce24">http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e497988a-c93a-404c-b161-3a0b323dce24</a></p>
<p>Keep Syncing,</p>
<p>Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/sql-server-compact-4-0-lands-on-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7: If at first you don&#8217;t succeed &#8230;</title>
		<link>http://robtiffany.com/windows-phone-7-if-at-first-you-dont-succeed/</link>
		<comments>http://robtiffany.com/windows-phone-7-if-at-first-you-dont-succeed/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 17:22:15 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[CTIA]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[FoxBusiness]]></category>
		<category><![CDATA[Gerry Purdy]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Live Tiles]]></category>
		<category><![CDATA[Micosoft Office]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MobileTrax]]></category>
		<category><![CDATA[One Note]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Panoramas]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Steve Ballmer]]></category>
		<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[Xbox Live]]></category>

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

		<guid isPermaLink="false">http://robtiffany.com/?p=107</guid>
		<description><![CDATA[After all the logical diagrams of Microsoft MEAP and spelling out how it meets Gartner&#8217;s critical capabilities, I thought I’d show you a picture that provides a more concrete view of what our MEAP offering looks like. Hopefully, this will &#8230; <a href="http://robtiffany.com/making-meap-real/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After all the logical diagrams of Microsoft MEAP and spelling out how it meets Gartner&#8217;s critical capabilities, I thought I’d show you a picture that provides a more concrete view of what our MEAP offering looks like.  Hopefully, this will better crystallize how Microsoft lines up with those critical capabilities and how our reusable mobile application platform plugs into a customer’s enterprise.  I think we have a great story here that shows customers how we can save them money on a platform that:</p>
<p>1. Works the same across laptops, tablets, Netbooks and phones.<br />
2. Gives them reusable mobile middleware that can support multiple simultaneous applications rather than needing something different for each point solution<br />
3. Lowers risk to their projects by reducing the amount of custom code needed to build any given solution.<br />
4. Gives them adapters that plug into the existing enterprise packages they use to run their business.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/02/MEAPPhysical.png"><img src="http://robtiffany.com/wp-content/uploads/2010/02/MEAPPhysical.png" alt="MEAP Physical Diagram" title="MEAPPhysical" width="520" height="420" class="alignleft size-full wp-image-106" /></a></p>
<p>Regards,<br />
Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/making-meap-real/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yes, Microsoft does have a Mobile Enterprise Application Platform (MEAP)</title>
		<link>http://robtiffany.com/yes-microsoft-does-have-a-mobile-enterprise-application-platform-meap/</link>
		<comments>http://robtiffany.com/yes-microsoft-does-have-a-mobile-enterprise-application-platform-meap/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 22:54:55 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[BitLocker]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[ISA Server]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Reverse Proxy]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Business Intelligence Development Studio]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[WCF Strore and Forward]]></category>
		<category><![CDATA[Windows CE]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

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

		<guid isPermaLink="false">http://robtiffany.com/?p=85</guid>
		<description><![CDATA[Does everyone remember the good old days of DOS when we used to spend our time making more of the 640 KB memory space available for our drivers, programs, TSRs and even Windows?  Things like QEMM, HIMEM.SYS and EMM386.EXE bring &#8230; <a href="http://robtiffany.com/memmaker-for-the-net-compact-framework/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Does everyone remember the good old days of DOS when we used to spend our time making more of the 640 KB memory space available for our drivers, programs, TSRs and even Windows?  Things like QEMM, HIMEM.SYS and EMM386.EXE bring back fond memories for me.  We had this one slot and Billg said we’d never need more than 640 KB.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2009/12/DOSMem_2.gif"><img class="aligncenter size-full wp-image-86" title="DOSMem_2" src="http://robtiffany.com/wp-content/uploads/2009/12/DOSMem_2.gif" alt="DOS Memory Map" width="640" height="480" /></a></p>
<p>Some of us even switched to OS/2 which could give us 740 KB to our DOS sessions while providing them with preemptive multitasking.  Yes, I could run multiple DOS games in multiple windows simultaneously with no degradation.  Wow, now I had a bunch of crash-protected slots each with 740 KB of memory.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2009/12/dos_2.gif"><img class="aligncenter size-full wp-image-87" title="dos_2" src="http://robtiffany.com/wp-content/uploads/2009/12/dos_2.gif" alt="OS/2" width="640" height="480" /></a></p>
<p>If you fast forward to today, you’ll see that Windows CE 5.0 and Windows Mobile 6.x shares some commonalities with their forefathers from the 80’s and 90’s.  The 32-bit embedded operating system that we rely on to power our Windows phones is made up of a bunch of slots.  The mobile applications that you build run inside one of these slots and unlike DOS with its 640 KB memory space, your app gets 32 MB of virtual memory space.  But just like with DOS, you don’t get access to the whole space because other things like system DLLs are already eating into your free virtual memory. </p>
<p>Many of you might not care because you build simple apps that use very little memory.  On the other hand, most of the people and organizations I work with build the largest, most memory-intensive applications ever seen on the mobile device.  Needless to say, these folks aren’t too pleased that they don’t get the whole 32 MB of virtual memory that’s coming to them.  They probably wish they a utility like QEMM or MemMaker to put things in high memory.</p>
<p>I recently met with a good friend of mine who wanted to share some interesting findings with me.  Keep in mind, not only do I consider this person and his colleagues to be some of the top Compact Framework developers in the world, his team members designed and developed of one of the world’s largest, most complex managed apps running on a Windows Mobile device.  Like many organizations that have built very large Windows Mobile applications, free virtual memory issues and the &#8220;DLL Crunch&#8221; have deprived this app from of all the memory it would like to have.  <strong>One of the architects on this &#8220;Dream Team&#8221; noticed that by keeping their application’s EXE empty and putting all the forms, code, resources, and data in managed DLLs, he reduced the amount of virtual memory his app uses inside its slot while at the same time taking advantage of memory outside the slot in the 1 GB shared memory area.</strong></p>
<p>To help you visualize this, I’m going to show you 2 pictures of the Windows Mobile process slots running a Compact Framework application two different ways.  The virtual memory viewer you see running in the emulators below shows the 32 slots in the User space of the OS.  Everything in Red is free virtual memory, Blue is committed memory and Green is reserved.  Slot 1 is crammed full of ROM DLLs and you can’t help but notice the area of Blue at the top of every other slot.  That’s space out of everyone’s slot being used by system and other native DLLs which means nobody’s going to get their fair share of their 32 MB slot space.</p>
<p>On the left you’ll see a NETCF app called StandardExe.exe running in slot 14 of the operating system.  This simple managed EXE has a 2.25 MB bitmap bound to it as a resource and a single form that compiles to the same size as the bitmap inside it.  If you look at the picture on the left, you’ll see a 2.25 MB Blue area coming up from the bottom of slot 14.  This represents the space being taken up by the EXE.</p>
<p><img class="alignleft size-full wp-image-88" title="StandardSM_thumb" src="http://robtiffany.com/wp-content/uploads/2009/12/StandardSM_thumb.jpg" alt="Standard Memory Map" width="244" height="374" /></p>
<p><img class="size-full wp-image-89 alignright" title="OptimizedSM_thumb" src="http://robtiffany.com/wp-content/uploads/2009/12/OptimizedSM_thumb.jpg" alt="Optimized Memory Map" width="244" height="376" /></p>
<p>On the right a NETCF app called OptimizedExe.exe running in slot 11 of the operating system.  This managed EXE is completely empty.  The Main function calls into a static class of a managed DLL and that’s it.  No mas.  This results in an EXE with a file size of 5 KB.  In the managed DLL we have the same 2.25 MB bitmap bound to it as well as a simple form.  This compiles into a 2.25 MB DLL called OptimizedDLL.dll.  <strong>When you look at the picture on the right, you’ll be hard-pressed to see any Blue area coming up from the bottom of slot 11.  A closer look reveals the 2.25 MB DLL is nowhere to be found either.</strong></p>
<p>This is pretty cool and has the potential to unleash the largest, most powerful games and applications Windows phones have ever seen.  <strong>So the big question is, how is this happening?  Is it magic?  </strong></p>
<p>Those of you who have read Steven Pratschner’s <a href="http://blogs.msdn.com/stevenpr/archive/2005/12/12/502908.aspx" target="_blank">blog</a> know that the Compact Framework memory maps your managed EXE and DLLs into the 1 GB shared memory area outside the slot your app is running which is cool.  <strong>What you may not know is that the OS automatically blocks out virtual memory at the bottom of your slot that’s the same size as your EXE.</strong>  So even though the CLR is in control of app execution and is giving you lots of love by putting your managed EXE up in the shared memory area, Windows CE takes away a valuable chunk of memory because it thinks that’s where your EXE is running.  <strong>Guess what, your app isn’t running there and it’s not native.</strong>  For those of you with giant managed EXEs, you’re losing out on a lot of virtual memory in your slot that could be put to good use.  So the first lesson here is to do what Brian did and make your EXE nothing but an empty stub used to launch your app which really lives inside managed DLLs.</p>
<p>Your empty EXE code should look like the following:</p>
<p><strong>using System; </strong></p>
<p><strong>namespace OptimizedExe<br />
{<br />
    static class Program<br />
    {<br />
        /// &lt;summary&gt;<br />
        /// The main entry point for the application.<br />
        /// &lt;/summary&gt;<br />
        [MTAThread]<br />
        static void Main()<br />
        {<br />
            OptimizedDLL.StartUp.Main();<br />
        }<br />
    }<br />
}</strong></p>
<p>Your DLL code should look like the following:</p>
<p><strong>using System;<br />
using System.Windows.Forms; </strong></p>
<p><strong>namespace OptimizedDLL<br />
{<br />
    public class StartUp<br />
    {<br />
        public static void Main()<br />
        {<br />
            Application.Run(new Main());<br />
        }<br />
    }<br />
}</strong></p>
<p>So now that you’ve learned how to instantly give your managed apps more memory by beating Windows CE at its own game, let’s talk about the curious case of your managed DLL.  If you’ve read Reed Robison’s <a href="http://blogs.msdn.com/hegenderfer/archive/2007/08/31/slaying-the-virtual-memory-monster.aspx" target="_blank">blog</a> discussion about Slaying the Virtual Memory Monster, you know that DLLs seem to take up everyone’s virtual memory from the top of the slot down which doesn’t sound too fair.  DLLs keep pushing their way down everyone’s slot causing something we call the “DLL Crunch” as free virtual memory get’s squeezed between the DLLs and EXEs.  I’ve got some good news for you.  Managed DLLs do not exhibit this same behavior.  In fact, not only do they not use up memory in all the other slots of your Windows phone, they don’t even push downward on the memory of your own slot.  How could this be?</p>
<p><strong>Managed DLLs are not DLLs.</strong>  The CLR just treats them as files that it memory maps into the 1 GB shared memory area.  To the Compact Framework, managed EXE and DLL assemblies are just files full of IL that it maps outside your process slot.  So now you know where the 2.25 MB bitmap that we bound to OptimizedDLL.dll is.  <strong>It’s beyond the 32 MB barrier of your slot and therefore not using up your valuable memory.</strong> </p>
<p><strong>So if I follow this new pattern for NETCF development, will my slot ever have virtual memory allocated or do I get a free lunch?</strong></p>
<p>While there’s no free lunch, you did get a buy one get one free discount.  The JIT compiler is running in your slot and it pulls in IL from the 1 GB space as needed to compile the current call stack.  Resources that aren’t designed to be compiled or executed will never be pulled down here.  The GC Heap is in your slot and that’s where your currently allocated Objects and instance variables are hanging out.  Your slot maintains a 64 KB Stack for every Thread your app spawns and the AppDomain Heap maintains a representation of the data structures found in your assembly’s IL.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2009/12/image_thumb_1.png"><img class="aligncenter size-full wp-image-90" title="image_thumb_1" src="http://robtiffany.com/wp-content/uploads/2009/12/image_thumb_1.png" alt="Windows CE Memory Map" width="594" height="318" /></a></p>
<p>So what are the big takeaways here?</p>
<p>You can eliminate the erroneous and wasted allocation of EXE virtual memory in your slot by following the pattern of using an empty stub managed EXE to kick off your application.  Windows CE will now only block out 5 KB of memory.</p>
<p>You can take better advantage of the 1 GB shared memory area by putting your entire application inside managed DLLs.  This will make your app a good neighbor by not creating the dreaded “DLL Crunch” for all the other apps on your Windows phone.  It also reduces the amount of memory that has to be allocated inside your slot.</p>
<p>This new pattern of managed development on the Windows Mobile platform is a true breakthrough in memory management.  Come join me at Tech Ed 2009 this May in Los Angeles for a complete deep dive on this new way of building memory-intensive games and applications.</p>
<p>- Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/memmaker-for-the-net-compact-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

