<?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 phones</title>
	<atom:link href="http://robtiffany.com/tag/windows-phones/feed" rel="self" type="application/rss+xml" />
	<link>http://robtiffany.com</link>
	<description>Author, Software Architect, Speaker, Technology Executive, Former Navy Submariner</description>
	<lastBuildDate>Sat, 04 Feb 2012 22:55:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SQL Server Compact 4.0 Lands on the Web</title>
		<link>http://robtiffany.com/sql-server-compact/sql-server-compact-4-0-lands-on-the-web</link>
		<comments>http://robtiffany.com/sql-server-compact/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.]]></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/sql-server-compact-4-0-lands-on-the-web/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reducing SQL Server I/O Contention during Sync :: Tip 2</title>
		<link>http://robtiffany.com/sql-server/reducing-sql-server-io-contention-during-sync-tip-2</link>
		<comments>http://robtiffany.com/sql-server/reducing-sql-server-io-contention-during-sync-tip-2#comments</comments>
		<pubDate>Sat, 08 Jan 2011 01:07:07 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Isolated Storage]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[RDA]]></category>
		<category><![CDATA[Remote Data Access]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Slate]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[SQL CE]]></category>
		<category><![CDATA[SQL Compact]]></category>
		<category><![CDATA[SQL Compact 4]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SQLCE]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Sync Framework]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=455</guid>
		<description><![CDATA[All DBAs know that Joining tables on non-indexed columns is the most expensive operation SQL Server can perform.  ]]></description>
			<content:encoded><![CDATA[<h5>Indexing Join Columns</h5>
<p>In my last Sync/Contention post, I beat up on a select group of SAN administrators who aren&#8217;t willing to go the extra mile to optimize the very heart of their organization, SQL Server.  You guys know who you are.</p>
<p>This time, I want to look at something more basic, yet often overlooked.<a href="http://robtiffany.com/wp-content/uploads/2011/01/emc_symmetrix_vmax-1024x571.jpg"><img class="size-full wp-image-458 alignnone" title="Database Storage" src="http://robtiffany.com/wp-content/uploads/2011/01/emc_symmetrix_vmax-1024x571.jpg" alt="" width="640" height="356" /></a></p>
<p>All DBAs know that Joining tables on non-indexed columns is the most expensive operation SQL Server can perform.  Amazingly, I run into this problem over and over with many of my customers.  Sync technologies like the Sync Framework, RDA and Merge Replication allow for varying levels of server-side filtering.  This is a popular feature used to reduce the size of the tables and rows being downloaded to Silverlight Isolated Storage or SQL Server Compact. </p>
<p>It&#8217;s also a performance killer when tables and columns participating in a Join filter are not properly indexed.  Keeping rows locked longer than necessary creates undue blocking and deadlocking.  It also creates unhappy slate and smartphone users who have to wait longer for their sync to complete.</p>
<p>Do yourselft a favor and go take a look at all the filters you&#8217;ve created and makes sure that you have indexes on all those Joined columns.</p>
<p>Keep synching,</p>
<p>Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/sql-server/reducing-sql-server-io-contention-during-sync-tip-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t forget to Encrypt your Windows Phone 7 Data</title>
		<link>http://robtiffany.com/windows-phone-7/dont-forget-to-encrypt-your-windows-phone-7-data</link>
		<comments>http://robtiffany.com/windows-phone-7/dont-forget-to-encrypt-your-windows-phone-7-data#comments</comments>
		<pubDate>Fri, 02 Jul 2010 14:58:43 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[AES 256]]></category>
		<category><![CDATA[AesManaged]]></category>
		<category><![CDATA[CryptoStream]]></category>
		<category><![CDATA[Decrypt]]></category>
		<category><![CDATA[Encrypt]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[HMACSHA1]]></category>
		<category><![CDATA[Isolated Storage]]></category>
		<category><![CDATA[MemoryStream]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile Line of Business]]></category>
		<category><![CDATA[Rfc2898DeriveBytes]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio 2010 Express for Windows Phone]]></category>
		<category><![CDATA[Windows Phone OS 7.0]]></category>
		<category><![CDATA[Windows phones]]></category>

		<guid isPermaLink="false">http://robtiffany.com/windows-phone-7/dont-forget-to-encrypt-your-windows-phone-7-data</guid>
		<description><![CDATA[Whether you’re targeting Mobile Line of Business apps for the Enterprise or B2C apps for consumers, ensuring that sensitive data is encrypted is a must.  These days, I can’t have a serious discussion with a CIO unless I can assure her that my mobile device can protect data-in-transit and data-at-rest.  You already know that Windows [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://robtiffany.com/wp-content/uploads/2010/07/EncryptEmulator.png"><img class="size-full wp-image-506 alignright" title="Encryption" src="http://robtiffany.com/wp-content/uploads/2010/07/EncryptEmulator.png" alt="Encryption" width="439" height="798" /></a></p>
<p>Whether you’re targeting <strong>Mobile Line of Business</strong> apps for the Enterprise or <strong>B2C</strong> apps for consumers, ensuring that sensitive data is encrypted is a must.  These days, I can’t have a serious discussion with a CIO unless I can assure her that my mobile device can protect <strong>data-in-transit</strong> and <strong>data-at-rest</strong>.  You already know that <strong>Windows Phone 7</strong> secures data-in-transit via <strong>SSL</strong> whether you’re using <strong>Internet Explorer</strong> or calling a Web Service from a <strong>Silverlight</strong> app.  What you may not know is how it covers the other bases.  A quick look over at <a title="http://msdn.microsoft.com/en-us/library/ff402533(v=VS.92).aspx" href="http://msdn.microsoft.com/en-us/library/ff402533(v=VS.92).aspx">http://msdn.microsoft.com/en-us/library/ff402533(v=VS.92).aspx</a> lists the following cryptographic algorithms supported by Windows Phone OS 7.0:</p>
<ul>
<li>AES</li>
<li>HMACSHA1</li>
<li>HMACSHA256</li>
<li>Rfc2898DeriveBytes</li>
<li>SHA1</li>
<li>SHA256</li>
</ul>
<p>I thought I’d take some of these algorithms for a spin by building a sample app using <strong>Microsoft Visual Studio 2010 Express for Windows Phone</strong>.  All I really wanted to do is use the <strong>Advanced Encryption Standard</strong> (<strong>AES)</strong> for <strong>symmetric key encryption</strong> to encrypt and decrypt some data so I could save it to Isolated Storage.  Doing this would definitely check the security checkboxes of Microsoft’s customers and ISVs.</p>
<p>Above are screenshots of the simple app I created.  A TextBox is used to enter the data to be encrypted by <strong>AES</strong>.  Below that, a PasswordBox control is used to enter a password that works in conjunction with <strong>Rfc2898DeriveBytes</strong> and <strong>HMACSHA1</strong> + a <strong>Salt</strong> value to create a key.  Keep in mind that you must enter more than 8 characters to create a valid <strong>Salt</strong> value.  I don&#8217;t necessarily expect you to understand <strong>PBKDF2</strong> <strong>Password-Based Cryptography</strong>.  Tapping the <strong>Encrypt</strong> button calls the Encrypt() method which uses <strong>Silverlight&#8217;s AesManaged</strong> class to create a <strong>Key</strong> and an <strong>Initialization Vector</strong> (<strong>IV</strong>) to perform the crypto magic and display the resulting <strong>Base64</strong> encrypted data in the Encrypted data TextBox.  Tapping the <strong>Decrypt</strong> button does the reverse by calling the Decrypt() method to unscramble the data and display the resulting data in the Decrypted data TextBox.</p>
<p>I also threw some buttons on there to save the newly encrypted data to <strong>Isolated Storage</strong> as an <strong>ApplicationSetting</strong>.  As shown in the screenshot above, tapping the <strong>Save to Isolated Storage</strong> button will save the encrypted data locally.  The best way to test the <strong>Retreive from Isolated Storage</strong> button is to first close the app, then restart it, and then tap the button.  It will place the saved information in the <strong>Encrypted data</strong> TextBox.  From there, just enter the password and salt you used before and the text you&#8217;re looking for will appear in the <strong>Decrypted data</strong> TextBox. </p>
<p>Let’s take a look at some code. </p>
<p>You&#8217;ll need to include the following using statements to get started:</p>
<pre>using System.IO;
using System.IO.IsolatedStorage;
using System.Security.Cryptography;
using System.Text;</pre>
<p>The <strong>Encrypt()</strong> method below takes the data you want to encrypt as well as a password and salt value as arguments.  It uses the <strong>AesManaged</strong> object with the default values of a 256-bit key size and 128-bit block size.  With the help of your supplied password, the encryption key is created using the <strong>Rfc2898DeriveBytes</strong> object with a dash of Salt.  When creating the pseudo-random number needed to derive a key, the default number of iterations specified by the <strong>Password-Based Cryptography Specification (RFC 2898)</strong> is<strong> 1,000</strong>.  On the advice of some of our top security experts, I bumped that value up to <strong>10,000</strong> to make this harder to crack.  The next thing to note is both the AES key and IV have their values assigned from the Rfc289DeriveBytes object containing the base key.  Keep in mind that you don&#8217;t want to use a static IV and that&#8217;s why it&#8217;s good to have it derived from your unique password, salt, plus 10,000 iterations to create pseudo-randomness.  One other thing to note is that the biggest performance hit you&#8217;ll experience in running this code  comes from when you call the <strong>GetBytes(int)</strong> method of the <strong>Rfc2898DeriveBytes</strong> object which initializes a new instance of <strong>HMAC</strong> each time.  If you need to encrypt multiple strings or other types of data, you should pull the <strong>Rfc2898DeriveBytes</strong> objects out of the <strong>Encrypt</strong> method and just pass in a pre-created <strong>Key</strong> and <strong>IV</strong> so that each call doesn&#8217;t have to perform this expensive initialization over and over again.  Finally, the <strong>MemoryStream</strong> and <strong>CryptoStream</strong> objects work with the <strong>AesManaged</strong> object to convert your supplied data into an encrypted array of Bytes.  I convert that array into a <strong>Base64</strong> string that you can display on the screen, cache in memory, or save to Isolated Storage.</p>
<pre>private void btnEncrypt_Click(object sender, RoutedEventArgs e)
{
    try
    {
        txtEncryptedData.Text = Encrypt(txtDataToEncrypt.Text, txtPassword.Password, txtSalt.Password);
    }
    catch (CryptographicException cryptEx)
    {
        MessageBox.Show(cryptEx.Message, "Encryption Error", MessageBoxButton.OK);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "General Error", MessageBoxButton.OK);
    }
}</pre>
<pre> </pre>
<pre>public string Encrypt(string dataToEncrypt, string password, string salt)
{
    AesManaged aes = null;
    MemoryStream memoryStream = null;
    CryptoStream cryptoStream = null;</pre>
<pre>
    try
    {
        //Generate a Key based on a Password and HMACSHA1 pseudo-random number generator
        //Salt must be at least 8 bytes long
        //Use an iteration count of at least 1000
        Rfc2898DeriveBytes rfc2898 = new Rfc2898DeriveBytes(password, Encoding.UTF8.GetBytes(salt), 10000);

        //Create AES algorithm
        aes = new AesManaged();
        //Key derived from byte array with 32 pseudo-random key bytes
        aes.Key = rfc2898.GetBytes(32);
        //IV derived from byte array with 16 pseudo-random key bytes
        aes.IV = rfc2898.GetBytes(16);

        //Create Memory and Crypto Streams
        memoryStream = new MemoryStream();
        cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(), CryptoStreamMode.Write);

        //Encrypt Data
        byte[] data = Encoding.UTF8.GetBytes(dataToEncrypt);
        cryptoStream.Write(data, 0, data.Length);
        cryptoStream.FlushFinalBlock();

        //Return Base 64 String
        return Convert.ToBase64String(memoryStream.ToArray());
    }
    finally
    {
        if (cryptoStream != null)
            cryptoStream.Close();

        if (memoryStream != null)
            memoryStream.Close();

        if (aes != null)
            aes.Clear();
    }
}
</pre>
<pre> </pre>
<p>As you can see below, the <strong>Decrypt()</strong> method looks remarkably similar to the <strong>Encrypt()</strong> method except that it does just the opposite.  It accepts your <strong>AES</strong>-encrypted <strong>Base64</strong> data plus a password and salt value as parameters to the method.  The big difference is in the <strong>CryptoStream</strong> where you have the <strong>AesManaged</strong> object call <strong>CreateDecryptor()</strong> instead of <strong>CreateEncryptor()</strong>.  This does the trick and then I convert the unencrypted Byte array into a string.</p>
<pre>private void btnDecrypt_Click(object sender, RoutedEventArgs e)
{
    try
    {
        txtDecryptedData.Text = "";
        txtDecryptedData.Text = Decrypt(txtEncryptedData.Text, txtPassword.Password, txtSalt.Password);
    }
    catch (CryptographicException cryptEx)
    {
        MessageBox.Show(cryptEx.Message, "Decryption Error", MessageBoxButton.OK);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "General Error", MessageBoxButton.OK);
    }
}</pre>
<pre> </pre>
<pre>
public string Decrypt(string dataToDecrypt, string password, string salt)
{
    AesManaged aes = null;
    MemoryStream memoryStream = null;

    try
    {
        //Generate a Key based on a Password and HMACSHA1 pseudo-random number generator
        //Salt must be at least 8 bytes long
        //Use an iteration count of at least 1000
        Rfc2898DeriveBytes rfc2898 = new Rfc2898DeriveBytes(password, Encoding.UTF8.GetBytes(salt), 10000);

        //Create AES algorithm
        aes = new AesManaged();
        //Key derived from byte array with 32 pseudo-random key bytes
        aes.Key = rfc2898.GetBytes(32);
        //IV derived from byte array with 16 pseudo-random key bytes
        aes.IV = rfc2898.GetBytes(16);

        //Create Memory and Crypto Streams
        memoryStream = new MemoryStream();
        CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(), CryptoStreamMode.Write);

        //Decrypt Data
        byte[] data = Convert.FromBase64String(dataToDecrypt);
        cryptoStream.Write(data, 0, data.Length);
        cryptoStream.FlushFinalBlock();

        //Return Decrypted String
        byte[] decryptBytes = memoryStream.ToArray();

        //Dispose
        if (cryptoStream != null)
            cryptoStream.Dispose();

        //Retval
        return Encoding.UTF8.GetString(decryptBytes, 0, decryptBytes.Length);
    }
    finally
    {
        if (memoryStream != null)
            memoryStream.Dispose();

        if (aes != null)
            aes.Clear();
    }
}
</pre>
<pre> </pre>
<p>Please keep a few things in mind when encrypting data on the Windows Phone 7 platform.  The OS <strong>Does Not</strong> include framework support for storing your passwords and salt values securely nor does it come with any kind of built-in <strong>key management</strong>.  This means the only way to ensure your encrypted data is actually secure is to  <strong>never store your password, salt value or keys on the phone</strong>.  As shown in my example, I require you to enter a password and a salt value each time you want to encrypt or decrypt data.  I do not attempt to save those <strong>cleartext</strong> values anywhere in the system because there is no secure way to store them.  One other thing to think about is that the <strong>cleartext</strong> password and salt value you entered on the screen can remain in memory at least until the next garbage collection.  If you see an app in the Windows Phone Marketplace that allows you to cache your credentials or keys locally for convenience, be aware that these are <strong>Not Secure</strong> solutions because everything a <strong>hacker</strong> needs to get at your data is right there in the code or in Isolated Storage.  The only place to store your password and salt is in your head.  It&#8217;s not that big a deal.  Your bank&#8217;s website makes you enter your credentials each time to ensure the security of your financial data, so this is something you&#8217;re already accustomed to. </p>
<p>Beyond the two Crypto methods above, I created a pair of methods to save and load your encrypted <strong>ApplicationSettings</strong> to Isolated Storage as shown below:</p>
<pre>private void btnSave_Click(object sender, RoutedEventArgs e)
{
    try
    {
        SaveState("EncryptedValue", txtEncryptedData.Text);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Save Error", MessageBoxButton.OK);
    }
} </pre>
<pre> </pre>
<pre>public void SaveState(string Name, string Value)
{
    if (Value != "")
    {
        if (IsolatedStorageSettings.ApplicationSettings.Contains(Name))
        {
            IsolatedStorageSettings.ApplicationSettings[Name] = Value;
        }
        else
        {
            IsolatedStorageSettings.ApplicationSettings.Add(Name, Value);
        }
    }
} </pre>
<pre> </pre>
<pre>private void btnRetreive_Click(object sender, RoutedEventArgs e)
{
    try
    {
        txtEncryptedData.Text = LoadState("EncryptedValue");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Load Error", MessageBoxButton.OK);
    }
}</pre>
<pre> </pre>
<pre>public string LoadState(string Name)
{
    if (IsolatedStorageSettings.ApplicationSettings.Contains(Name))
    {
        return IsolatedStorageSettings.ApplicationSettings[Name].ToString();
    }
    else
    {
        return "";
    }
} </pre>
<p>As you can see from the code samples above, encrypting the <strong>sensitive data</strong> you use in your <strong>Windows Phone 7</strong> apps is completely within your reach.  This is just one of many managed crypto examples to give you an idea on how to get started.  Many more are waiting for you on MSDN.  When you combine this with the following security elements:</p>
<ul>
<li>Apps are tested, digitally signed and securely delivered via the Windows Phone Marketplace</li>
<li>No side-loading of potentially insecure apps</li>
<li>SSL for data in transit</li>
<li>Managed apps run inside secure sandbox</li>
<li>Apps have private, inaccessible Isolated Storage</li>
<li>Exchange Policies including PIN lock enforcement + Remote wipe  </li>
</ul>
<p>It’s clear that <strong>Windows Phone 7</strong> has an excellent app security story that’s not only good for <strong>consumers</strong>, but also means that this mobile app platform is prime-time ready for the <strong>Secure</strong> <strong>Enterprise</strong>.</p>
<p>Keep coding,</p>
<p>Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/windows-phone-7/dont-forget-to-encrypt-your-windows-phone-7-data/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7 Series debuts at Barcelona!</title>
		<link>http://robtiffany.com/uncategorized/windows-phone-7-series-debuts-at-barcelona</link>
		<comments>http://robtiffany.com/uncategorized/windows-phone-7-series-debuts-at-barcelona#comments</comments>
		<pubDate>Wed, 17 Feb 2010 06:25:18 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[Windows phones]]></category>
		<category><![CDATA[Xbox Live]]></category>
		<category><![CDATA[Zune]]></category>

		<guid isPermaLink="false">http://robtiffany.com/?p=120</guid>
		<description><![CDATA[The home screen, or Start, on Windows® Phone 7 Series can be customized with “live tiles” that show the latest updates from the Web directly to customers. For example, create a “live tile” of a friend and gain a readable, up-to-date view of that person’s latest pictures and posts, just by glancing at Start. The [...]]]></description>
			<content:encoded><![CDATA[<p>The home screen, or Start, on Windows® Phone 7 Series can be customized with “live tiles” that show the latest updates from the Web directly to customers. For example, create a “live tile” of a friend and gain a readable, up-to-date view of that person’s latest pictures and posts, just by glancing at Start.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/02/startscreen_web.jpg"><img class="alignleft size-medium wp-image-121" title="startscreen_web" src="http://robtiffany.com/wp-content/uploads/2010/02/startscreen_web-158x300.jpg" alt="" width="158" height="300" /></a></p>
<p>The People Hub is communication central, where customers can see all relevant content associated with a contact, including live feeds from social networks and photos. It also provides a single place from which customers can post updates to Facebook and Windows Live in one step.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/02/peoplescreen_web.jpg"><img class="alignleft size-medium wp-image-122" title="peoplescreen_web" src="http://robtiffany.com/wp-content/uploads/2010/02/peoplescreen_web-300x197.jpg" alt="" width="300" height="197" /></a></p>
<p>The Pictures Hub brings together photos from the phone, the PC and online albums into one simple view. It’s easy to share pictures on the phone to social sites such as Facebook and Windows Live, and see up-to-date online albums that others are sharing.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/02/picturesscreen_web.jpg"><img class="alignleft size-medium wp-image-123" title="picturesscreen_web" src="http://robtiffany.com/wp-content/uploads/2010/02/picturesscreen_web-300x197.jpg" alt="" width="300" height="197" /></a></p>
<p>The Office Hub provides fast access to Microsoft Office Mobile, Microsoft Office SharePoint and Microsoft Office OneNote on the same phone that offers Microsoft Office Outlook e-mail.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/02/officescreen_web.jpg"><img class="alignleft size-medium wp-image-124" title="officescreen_web" src="http://robtiffany.com/wp-content/uploads/2010/02/officescreen_web-300x181.jpg" alt="" width="300" height="181" /></a></p>
<p>The Games Hub delivers the first and only official Xbox LIVE experience on a phone. It’s not just about games on the phone; it’s about playing games with friends.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/02/gamesscreen_web.jpg"><img class="alignleft size-medium wp-image-125" title="gamesscreen_web" src="http://robtiffany.com/wp-content/uploads/2010/02/gamesscreen_web-300x139.jpg" alt="" width="300" height="139" /></a></p>
<p>The Music + Video Hub is the one place for media — from music to streaming radio to podcasts to video.</p>
<p><a href="http://robtiffany.com/wp-content/uploads/2010/02/musicvidscreen_web.jpg"><img class="alignleft size-medium wp-image-126" title="musicvidscreen_web" src="http://robtiffany.com/wp-content/uploads/2010/02/musicvidscreen_web-300x138.jpg" alt="" width="300" height="138" /></a></p>
<p>It&#8217;s all good!<br />
-Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/uncategorized/windows-phone-7-series-debuts-at-barcelona/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making MEAP Real</title>
		<link>http://robtiffany.com/mobile-enterprise-application-platform/making-meap-real</link>
		<comments>http://robtiffany.com/mobile-enterprise-application-platform/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 better crystallize how Microsoft lines up with those critical capabilities and how our reusable mobile [...]]]></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/mobile-enterprise-application-platform/making-meap-real/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finding your Windows phone on the CBS Early Show</title>
		<link>http://robtiffany.com/windows-phone/finding-your-windows-phone-on-the-cbs-early-show</link>
		<comments>http://robtiffany.com/windows-phone/finding-your-windows-phone-on-the-cbs-early-show#comments</comments>
		<pubDate>Mon, 28 Dec 2009 05:41:29 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Windows phone]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[My Phone]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

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

		<guid isPermaLink="false">http://robtiffany.com/?p=49</guid>
		<description><![CDATA[Check out the interview I did with David Goon at Tech Ed Europe 2009 in Berlin.  I discuss Microsoft&#8217;s Mobile Enterprise Application Platform and talk about how it aligns with Gartner&#8217;s MEAP critical capabilities and how it can save money for companies. With the tidal wave of mobile and wireless technologies sweeping across both the consumer and [...]]]></description>
			<content:encoded><![CDATA[<p>Check out the interview I did with David Goon at Tech Ed Europe 2009 in Berlin.  I discuss Microsoft&#8217;s Mobile Enterprise Application Platform and talk about how it aligns with Gartner&#8217;s MEAP critical capabilities and how it can save money for companies.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="180" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.facebook.com/v/241564376017" /><embed type="application/x-shockwave-flash" width="320" height="180" src="http://www.facebook.com/v/241564376017" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>With the tidal wave of mobile and wireless technologies sweeping across both the consumer and enterprise landscapes, I believe MEAP offerings give us a glimpse of a new standard for designing all future infrastructures.</p>
<p>-Rob</p>
]]></content:encoded>
			<wfw:commentRss>http://robtiffany.com/mobile-enterprise-application-platform/interview-with-rob-tech-ed-europe-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yes, Microsoft does have a Mobile Enterprise Application Platform (MEAP)</title>
		<link>http://robtiffany.com/mobile-enterprise-application-platform/yes-microsoft-does-have-a-mobile-enterprise-application-platform-meap</link>
		<comments>http://robtiffany.com/mobile-enterprise-application-platform/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 that companies have been building tactical mobile application silos that support only one application and [...]]]></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/mobile-enterprise-application-platform/yes-microsoft-does-have-a-mobile-enterprise-application-platform-meap/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Enterprise Data Synchronization with Microsoft SQL Server 2008 and SQL Server Compact 3.5 Mobile Merge Replication</title>
		<link>http://robtiffany.com/mobile-enterprise-application-platform/enterprise-data-synchronization-with-microsoft-sql-server-2008-and-sql-server-compact-3-5-mobile-merge-replication</link>
		<comments>http://robtiffany.com/mobile-enterprise-application-platform/enterprise-data-synchronization-with-microsoft-sql-server-2008-and-sql-server-compact-3-5-mobile-merge-replication#comments</comments>
		<pubDate>Sat, 24 Oct 2009 00:46:53 +0000</pubDate>
		<dc:creator>Rob Tiffany</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Mobile Enterprise Application Platform]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[ISA Server]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Merge Replication]]></category>
		<category><![CDATA[RDA]]></category>
		<category><![CDATA[Remote Data Access]]></category>
		<category><![CDATA[Reverse Proxy]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Compact]]></category>
		<category><![CDATA[SSCE]]></category>
		<category><![CDATA[Sync]]></category>
		<category><![CDATA[Synchronize]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows phones]]></category>

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

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

