<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Shervin Shakibi's Blog</title>
        <link>http://geekswithblogs.net/shervin/Default.aspx</link>
        <description>blog</description>
        <language>en-US</language>
        <copyright>Shervin Shakibi</copyright>
        <managingEditor>Shervin@computerways.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Shervin Shakibi's Blog</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/shervin/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Using Windows Azure table storage</title>
            <link>http://geekswithblogs.net/shervin/archive/2011/11/01/147518.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2011/11/01/147518.aspx'&gt;http://geekswithblogs.net/shervin/archive/2011/11/01/147518.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The Azure Table service, provides a semi-structured storage in the form of tables  that contain a collection of entities, these entities have primary keys and set of properties. A property is a name, typed-value pair.&lt;/p&gt;  &lt;p&gt;Every entity in table storage has two key properties, &lt;strong&gt;Partition Key&lt;/strong&gt; and the&lt;strong&gt; Row key&lt;/strong&gt; which together uniquely identify each entity in the table.&lt;/p&gt;  &lt;p&gt;The Table Service API is compliant with REST API provided by WCF Data Services. In order to use the WCF Data Services Client Library to access data in table storage, you need to create a context class that derives from &lt;b&gt;TableServiceContext&lt;/b&gt;, which itself derives from &lt;b&gt;DataServiceContext&lt;/b&gt; in WCF Data Services.&lt;/p&gt;  &lt;p&gt;So to get started lets create a new project with Visual Studio with a web role.&lt;/p&gt;  &lt;p&gt;Next we need to create a new project for the schema classes. To do this click on &lt;strong&gt;File –&amp;gt; Add –&amp;gt; New Project&lt;/strong&gt;. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Choose &lt;strong&gt;Class Library&lt;/strong&gt; and give it a name I named mine &lt;strong&gt;LogSheet_Data&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Delete the default class file generated by the class library template.&lt;/li&gt;    &lt;li&gt;Add a reference to &lt;b&gt;System.Data.Services.Client.&lt;/b&gt;&lt;/li&gt;    &lt;li&gt;Add another reference to &lt;strong&gt;Microsoft.WindowsAzure.StorageClient&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Now we are ready to define its schema. to do this add a new class to your project, I am going to name mine &lt;strong&gt;LogSheetEntry&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Add the namespace declaration to import the types from the two assemblies &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;using Microsoft.WindowsAzure.StorageClient; &lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Update the declaration of the &lt;strong&gt;LogSheetEntry &lt;/strong&gt;class to make it public and derive from the the &lt;strong&gt;TableServiceEntity&lt;/strong&gt; class&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#222222"&gt;public class LogSheetEntry       &lt;br /&gt;    : Microsoft.WindowsAzure.StorageClient.TableServiceEntity        &lt;br /&gt;    {        &lt;br /&gt;    }&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;TableServiceEntity&lt;/b&gt; is a class found in the Storage Client API. This class defines the &lt;b&gt;PartititionKey&lt;/b&gt;, &lt;b&gt;RowKey&lt;/b&gt; and &lt;b&gt;TimeStamp&lt;/b&gt; system properties required by every entity stored in a Windows Azure table.      &lt;br /&gt;Together, the &lt;b&gt;PartitionKey&lt;/b&gt; and &lt;b&gt;RowKey&lt;/b&gt; define the &lt;b&gt;DataServiceKey&lt;/b&gt; that uniquely identifies every entity within a table.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Add a default constructor then we need to initialize its PartitionKey and Row Key.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;public LogSheetEntry()     &lt;br /&gt;{            &lt;br /&gt;    PartitionKey = DateTime.UtcNow.ToString("MMddyyyy");      &lt;br /&gt;  &lt;br /&gt;    RowKey = string.Format("{0:10}_{1}", DateTime.MaxValue.Ticks - DateTime.Now.Ticks, Guid.NewGuid());      &lt;br /&gt;}      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;To complete add the properties&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public string Facility { get; set; }     &lt;br /&gt; public string AccountNum { get; set; }      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Save &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Next, you need to create the context class required to access the &lt;i&gt;LogSheet &lt;/i&gt;table using WCF Data Services. To do this, in &lt;b&gt;Solution Explorer&lt;/b&gt;, right-click the &lt;b&gt;LogSheet_Data&lt;/b&gt; project, point to &lt;b&gt;Add&lt;/b&gt; and select &lt;b&gt;Class&lt;/b&gt;. In the &lt;b&gt;Add New Item&lt;/b&gt; dialog, set the &lt;b&gt;Name&lt;/b&gt; to &lt;b&gt;LogSheetDataContext.cs &lt;/b&gt;  and click &lt;b&gt;Add&lt;/b&gt;. &lt;/li&gt;    &lt;li&gt;In the new class file, update the declaration of the new class to make it public and inherit the &lt;b&gt;TableServiceContext&lt;/b&gt; class.&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public class LogSheetDataContext      &lt;br /&gt;  : Microsoft.WindowsAzure.StorageClient.TableServiceContext&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Now add a default constructor to initialize the base class with storage account information&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public GuestBookDataContext(string baseAddress, Microsoft.WindowsAzure.StorageCredentials credentials)     &lt;br /&gt;    : base(baseAddress, credentials)      &lt;br /&gt;{ }      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Add a property to the LogSheetDataContext class to expose the LogSheetEntry&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public IQueryable&amp;lt;LogSheetEntry&amp;gt; LogSheetEntry     &lt;br /&gt;{      &lt;br /&gt;  get      &lt;br /&gt;  {      &lt;br /&gt;    return this.CreateQuery&amp;lt;LogSheetEntry&amp;gt;("LogSheetEntry");      &lt;br /&gt;  }      &lt;br /&gt;}      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Finally, you need to implement an object that can be bound to data controls in ASP.NET. In &lt;b&gt;Solution Explorer&lt;/b&gt;, right-click &lt;b&gt;LogSheet_Data&lt;/b&gt;, point to &lt;b&gt;Add&lt;/b&gt;, and select &lt;b&gt;Class&lt;/b&gt;. In the &lt;b&gt;Add New Item&lt;/b&gt; dialog, set the name to &lt;strong&gt;LogSheetDataSource.cs &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;     &lt;div align="left"&gt;In the new class file, add the following namespace declarations to import the types contained in the &lt;b&gt;Microsoft.WindowsAzure&lt;/b&gt; and &lt;b&gt;Microsoft.WindowsAzure.StorageClient&lt;/b&gt; namespaces.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;using Microsoft.WindowsAzure;     &lt;br /&gt;using Microsoft.WindowsAzure.StorageClient;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="left"&gt;Make the class &lt;strong&gt;public &lt;/strong&gt;and define member fields for the data context and storage account information&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public  class LogSheetDataSource     &lt;br /&gt;  {      &lt;br /&gt;      private static CloudStorageAccount storageAccount;      &lt;br /&gt;      private LogSheetDataContext context;      &lt;br /&gt;  }      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="left"&gt;Now , add a static constructor That will create the tables from the LogSheetDataContext class&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p style="margin-right: 0px"&gt;   static LogSheetDataSource()     &lt;br /&gt;{      &lt;br /&gt;  storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");      &lt;br /&gt;  CloudTableClient.CreateTablesFromModel(      &lt;br /&gt;      typeof(LogSheetDataContext),      &lt;br /&gt;      storageAccount.TableEndpoint.AbsoluteUri,      &lt;br /&gt;      storageAccount.Credentials);      &lt;br /&gt;}       &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;add a default constructor to initialize the data context class used to access table storage.&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public LogSheetDataSource()     &lt;br /&gt;{      &lt;br /&gt;    this.context = new LogSheetDataContext(storageAccount.TableEndpoint.AbsoluteUri, storageAccount.Credentials);      &lt;br /&gt;  this.context.RetryPolicy = RetryPolicies.Retry(3, TimeSpan.FromSeconds(1));      &lt;br /&gt;}      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Next we will need a method that will return the contents of LogSheetEntry table&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public IEnumerable&amp;lt;LogSheetEntry&amp;gt; GetLogSheetEntries()     &lt;br /&gt;{      &lt;br /&gt;    var results = from g in this.context.LogSheetEntry      &lt;br /&gt;                  where g.PartitionKey == DateTime.UtcNow.ToString("MMddyyyy")      &lt;br /&gt;                  select g;      &lt;br /&gt;    return results;      &lt;br /&gt;}      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;We also are gong to need a method that will insert new entries&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public void AddLogSheetEntry(LogSheetEntry newItem)     &lt;br /&gt;{      &lt;br /&gt;    this.context.AddObject("LogSheetEntry", newItem);      &lt;br /&gt;    this.context.SaveChanges();      &lt;br /&gt;}      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;You guessed it we will need a method for an update, for simplicity, we are going to change the the facility only at this time. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;public void UpdateImageThumbnail(string partitionKey, string rowKey, string Facility)     &lt;br /&gt;{      &lt;br /&gt;    var results = from g in this.context.LogSheetEntry      &lt;br /&gt;                  where g.PartitionKey == partitionKey &amp;amp;&amp;amp; g.RowKey == rowKey      &lt;br /&gt;                  select g;      &lt;br /&gt;    var entry = results.FirstOrDefault&amp;lt;LogSheetEntry&amp;gt;();      &lt;br /&gt;    entry.Facility = Facility;      &lt;br /&gt;    this.context.UpdateObject(entry);      &lt;br /&gt;    this.context.SaveChanges();      &lt;br /&gt;}      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Next steps is Creating a Web Role to Display the Time Sheet Entry and process User input, which is going to be in my next blog entry.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;/li&gt; &lt;/ul&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/147518.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2011/11/01/147518.aspx</guid>
            <pubDate>Tue, 01 Nov 2011 18:40:14 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/147518.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2011/11/01/147518.aspx#feedback</comments>
            <slash:comments>10</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/147518.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/147518.aspx</trackback:ping>
        </item>
        <item>
            <title>Creating a Windows Azure VM Role</title>
            <link>http://geekswithblogs.net/shervin/archive/2011/11/01/147513.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2011/11/01/147513.aspx'&gt;http://geekswithblogs.net/shervin/archive/2011/11/01/147513.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;I wanted to have a VM that I could access remotely and thought why not take advantage of the VM role. So I just documented my steps, for those of you might be interested, but more importantly for myself, if I have to do this again.&lt;/p&gt;  &lt;p&gt; the server image that is used for the VM role in windows Azure consists of a base VHD and may or may not have differencing VHD. to create the base VHD you can use Hyper-V Manager. &lt;/p&gt;  &lt;h4&gt;Creating the Base VM image&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;In Hyper-V manager connect to your server , right-click the server name &lt;/li&gt;    &lt;li&gt;Point to &lt;strong&gt;New&lt;/strong&gt;, and then select &lt;strong&gt;Virtual Machine&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt; at the welcome screen to start the &lt;strong&gt;New&lt;/strong&gt; &lt;strong&gt;Virtual Machine Wizard&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Give your VM a name and press &lt;strong&gt;Next.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Assign Memory size, I am going to go with 4096, you should use minimum of 2048 to have a halfway decent performance. &lt;/li&gt;    &lt;li&gt;For your network select an external connection that has been configured, if you do not have any connections in the drop down please refer to &lt;a title="http://technet.microsoft.com/en-us/library/ee247420(WS.10).aspx" href="http://technet.microsoft.com/en-us/library/ee247420(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/ee247420(WS.10).aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Now, in the &lt;b&gt;Connect Virtual Disk&lt;/b&gt; step, select the option labeled &lt;b&gt;Create a virtual hard disk&lt;/b&gt;. Set the &lt;b&gt;Name&lt;/b&gt; of the disk to &lt;strong&gt;&lt;i&gt;baseimage.vhd&lt;/i&gt;,&lt;/strong&gt; change the location to a suitable folder in your Hyper-V server, set the disk &lt;b&gt;Size&lt;/b&gt; to 30GB, and then click &lt;b&gt;Next&lt;/b&gt; to continue. the size must fit the quota allocated for the chosen VM size for your role. In this case, setting the size to 30GB allows you to deploy the VM in a &lt;strong&gt;small&lt;/strong&gt; Role.       &lt;ol&gt;       &lt;li&gt;If you already have a VHD file with a clean installation of Windows Server 2008 R2, you may use that instead. To do this, select the option labeled &lt;b&gt;Use an existing virtual hard disk&lt;/b&gt; and browse to the location of the VHD file. Note that the image file must contain a &lt;b&gt;single&lt;/b&gt; partition with the OS installation and must not include a recovery partition. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Select the Operating system, you can do this using a dvd, .iso image or other options, or selecting another image that already has the operating System. &lt;/li&gt;    &lt;li&gt;Press Next , review the settings and press Finish &lt;/li&gt;    &lt;li&gt;In the toolbar of the &lt;b&gt;Virtual Machine Connection&lt;/b&gt; window, click the &lt;b&gt;Start&lt;/b&gt; icon. &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;after you connect you proceed with the installation of your operating system. &lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;The only special requirement for a valid VM Role image is to allocate the entire virtual hard disk file to a single partition where you install the operating system. To &lt;b&gt;avoid&lt;/b&gt; creating a recovery partition during the installation, follow these steps: &lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;Choose the &lt;b&gt;Custom (advanced)&lt;/b&gt; installation type to select the partition where you will install Windows. &lt;/li&gt;        &lt;li&gt;Press &lt;b&gt;Shift + F10&lt;/b&gt; to open a command prompt during GUI-mode setup. &lt;/li&gt;        &lt;li&gt;At the command prompt, enter the following commands:          &lt;p&gt;&lt;b&gt;diskpart&lt;/b&gt;             &lt;br /&gt;&lt;b&gt;select disk 0&lt;/b&gt;             &lt;br /&gt;&lt;b&gt;create partition primary&lt;/b&gt;             &lt;br /&gt;&lt;b&gt;exit&lt;/b&gt;             &lt;br /&gt;Close the command prompt window. &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;Install Windows in the newly created partition. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;Preparing the base VM Image for Deployment&lt;/h4&gt;  &lt;p&gt;Now we need to install all the components required for deployment to windows Azure.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In Server manager click on add Roles and select webserver (IIS). press next and take all the default options and click on Install. &lt;/li&gt;    &lt;li&gt;Add Features , and select .Net Framework 3.5.1 &lt;/li&gt;    &lt;li&gt;Open Windows update Control Panel from&lt;strong&gt; Start&lt;/strong&gt; –&amp;gt;&lt;strong&gt; All Programs –&amp;gt; windows Update&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;Click on &lt;strong&gt;Change Settings&lt;/strong&gt; link and then select &lt;strong&gt;Never Check For Updates (not recommended)&lt;/strong&gt; &lt;/li&gt;        &lt;li&gt;Click on Check for updates and install all available updates&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;Install windows Azure Integration component&lt;/h4&gt;  &lt;ol&gt;   &lt;ol&gt;     &lt;li&gt;In the &lt;b&gt;Virtual Machine Connection&lt;/b&gt; window, in the &lt;b&gt;Media&lt;/b&gt; menu, point to &lt;b&gt;DVD Drive&lt;/b&gt; and then select &lt;b&gt;Insert Disk&lt;/b&gt;. In the &lt;b&gt;Open&lt;/b&gt; dialog, browse to the location of the ISO file for the VM Role Integration Components, &lt;b&gt;wavmroleic.iso&lt;/b&gt;, and then click &lt;b&gt;Open&lt;/b&gt;. You can find this ISO in &lt;strong&gt;Windows Azure SDK&lt;/strong&gt; folder ({drive}\Program Files\Windows Azure SDK\{version}\iso &lt;/li&gt;      &lt;li&gt;After you connect &lt;strong&gt;AutoPlay&lt;/strong&gt; dialog will appear and then click &lt;strong&gt;Open Folder to view files using windows Explorer. &lt;/strong&gt;If AutoPlay is disabled, use windows explorer and navigate to the newly created DVD Drive.         &lt;ul&gt;         &lt;li&gt;launch &lt;strong&gt;WaIntegrationComponents-x64.msi.&lt;/strong&gt; &lt;/li&gt;          &lt;li&gt;Press &lt;strong&gt;Next&lt;/strong&gt; &lt;/li&gt;          &lt;li&gt;Enter &lt;strong&gt;Administrator Password&lt;/strong&gt; and press &lt;strong&gt;Next&lt;/strong&gt; &lt;/li&gt;          &lt;li&gt;Click on &lt;strong&gt;Install.&lt;/strong&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;When prompted to install device software, click &lt;b&gt;Install&lt;/b&gt; to proceed. &lt;/li&gt;      &lt;li&gt;When prompted to restart the System, click Yes to continue. &lt;/li&gt;      &lt;li&gt;Wait for the system to restart and log in to the guest machine once again. &lt;/li&gt;      &lt;li&gt;Now, inside the VM, open the &lt;b&gt;Start&lt;/b&gt; menu, type &lt;b&gt;%windir%\system32\sysprep\sysprep.exe&lt;/b&gt; and then press &lt;b&gt;Enter&lt;/b&gt; to launch the &lt;b&gt;System Preparation Tool&lt;/b&gt;.         &lt;ul&gt;         &lt;li&gt;Set the &lt;b&gt;System Cleanup Action&lt;/b&gt; to &lt;i&gt;“Enter System Out-of-Box Experience (OOBE)”&lt;/i&gt; &lt;/li&gt;          &lt;li&gt;&lt;em&gt;C&lt;/em&gt;heck the option labeled &lt;b&gt;Generalize&lt;/b&gt; &lt;/li&gt;          &lt;li&gt;&lt;strong&gt;S&lt;/strong&gt;et the &lt;b&gt;Shutdown Options&lt;/b&gt; to &lt;i&gt;Shutdown&lt;/i&gt;, and then press &lt;b&gt;OK&lt;/b&gt;. (Sysprep.exe) prepares the image by cleaning up various user and machine settings and log files, as well as removing any hardware-dependent information.&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Wait for system completely shut down.&lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;h4&gt;Uploading the VM Disk image to Windows Azure&lt;/h4&gt;  &lt;ol&gt;   &lt;li&gt;Open a &lt;b&gt;Windows Azure SDK Command Prompt &lt;/b&gt;&lt;b&gt;as an administrator&lt;/b&gt; from &lt;b&gt;Start –&amp;gt; All Programs –&amp;gt; Windows Azure SDK v1.x&lt;/b&gt;.       &lt;ul&gt;       &lt;li&gt;         &lt;p align="left"&gt;Before you can continue you want to make sure you have &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;Your subscription ID&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;Thumbprint of the certificate you have uploaded to learn how you can create a certificate and upload it to Azure manged certificates see(&lt;a title="http://msdn.microsoft.com/en-us/library/gg432987.aspx" href="http://msdn.microsoft.com/en-us/library/gg432987.aspx"&gt;http://msdn.microsoft.com/en-us/library/gg432987.aspx&lt;/a&gt;)&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;Path to VHD File created earlier using Hyper-V Manager&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;Hosted Service location(choose, “East Asia”, “North Central US”, “North Europe”, “South Central US”, “Southeast Asia”, “West Europe”)&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;In Windows Azure Command Prompt execute the following command&lt;/p&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;pre&gt;&lt;b&gt;csupload Add-VMImage -Connection "SubscriptionId={YourSubscriptionID};&lt;/b&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;b&gt; CertificateThumbprint={YourThumbPrint}-Description "Base image Windows Server 2008 R2" –LiteralPath &lt;/b&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;b&gt;"{PathToVHDFIle" -Name baseimage.vhd -Location {HostedServiceLocation}&lt;/b&gt;&lt;/pre&gt;

&lt;p&gt;Press &lt;b&gt;Enter&lt;/b&gt; to start execution. &lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;In the &lt;b&gt;Windows Azure VHD Verification Tool&lt;/b&gt; dialog, click &lt;b&gt;OK&lt;/b&gt; to allow the VHD to be mounted. If the &lt;b&gt;AutoPlay&lt;/b&gt; dialog appears, close it. 

    &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/shervin/Windows-Live-Writer/Creating-a-Windows-Azure-VM-Role_8E40/5cf79665-981e-4bee-b3b2-73d6619be5b9_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 2px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="5cf79665-981e-4bee-b3b2-73d6619be5b9" border="0" alt="5cf79665-981e-4bee-b3b2-73d6619be5b9" src="http://gwb.blob.core.windows.net/shervin/Windows-Live-Writer/Creating-a-Windows-Azure-VM-Role_8E40/5cf79665-981e-4bee-b3b2-73d6619be5b9_thumb.png" width="244" height="103" /&gt;&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;The tool will prepare and create a new blob to hold the image file and then begins to upload the compressed image to your windows Azure account.&lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;In &lt;strong&gt;Hosted Services,Storage Accounts &amp;amp; CDN&lt;/strong&gt; tab of &lt;strong&gt;Azure’s Management Portal&lt;/strong&gt; you should see &lt;strong&gt;Pending &lt;/strong&gt;under your &lt;strong&gt;VM Images.&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;Depending on your Internet connection it might take hours for the image to get uploaded, which at that point the status will be changed to&lt;strong&gt; committed.&lt;/strong&gt;&lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p&gt;Start Visual Studio&lt;/p&gt;
  &lt;/li&gt;

  &lt;ol&gt;
    &lt;li&gt;
      &lt;p&gt;Create a New Windows Azure Project (Language does not matter, but make sure &lt;strong&gt;Create directory for solution,&lt;/strong&gt; is checked. Click OK.&lt;/p&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;New &lt;strong&gt;Windows Azure Project &lt;/strong&gt;click &lt;strong&gt;OK. &lt;/strong&gt;No need to add any roles.&lt;/p&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;Right click on Roles –&amp;gt; Add –&amp;gt; New Virtual Machine Role.&lt;/p&gt;

      &lt;ol&gt;
        &lt;li&gt;
          &lt;p&gt;If you have used Visual Studio previously to deploy service packages to Windows Azure, you may already have created the required credentials. For instructions on how to do this, see &lt;a href="http://gwb.blob.core.windows.net/shervin/Windows-Live-Writer/Creating-a-Windows-Azure-VM-Role_8E40/docSet_f0da8a9d-5d14-4563-875d-6bfb1e6c7ed0_1.html"&gt;Appendix A - Configuring your Windows Azure Management Portal Credentials in Visual Studio&lt;/a&gt;. &lt;/p&gt;
        &lt;/li&gt;

        &lt;li&gt;
          &lt;p&gt;Once you configure the credentials, choose them in the drop down list labeled &lt;b&gt;Select or create your Windows Azure account credentials&lt;/b&gt;. After you do this, Visual Studio accesses your subscription and retrieves a list of available virtual machine images. &lt;/p&gt;
        &lt;/li&gt;

        &lt;li&gt;Expand the drop down list labeled &lt;b&gt;Select VHD&lt;/b&gt; and choose the image named &lt;i&gt;baseimage.vhd&lt;/i&gt;, which contains the installation of Window Server 2008 R2 Enterprise Edition that you uploaded earlier.&lt;/li&gt;
      &lt;/ol&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;Click on the &lt;strong&gt;Endpoints&lt;/strong&gt; tab, then click &lt;strong&gt;Add Endpoint&lt;/strong&gt; &lt;/p&gt;
    &lt;/li&gt;

    &lt;ol&gt;
      &lt;ul&gt;
        &lt;li&gt;
          &lt;p&gt;Name = HttpIn&lt;/p&gt;
        &lt;/li&gt;

        &lt;li&gt;
          &lt;p&gt;Type = Input&lt;/p&gt;
        &lt;/li&gt;

        &lt;li&gt;
          &lt;p&gt;Protocol = htttp&lt;/p&gt;
        &lt;/li&gt;

        &lt;li&gt;
          &lt;p&gt;Public Port = 80&lt;/p&gt;
        &lt;/li&gt;

        &lt;li&gt;
          &lt;p&gt;Private Port = 80&lt;/p&gt;
        &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/ol&gt;

    &lt;li&gt;
      &lt;p&gt;Configure the Remote Desktop connections for your Role, by right-clicking on your &lt;strong&gt;cloud service project&lt;/strong&gt;, in Solution Explorer and select &lt;strong&gt;Package.&lt;/strong&gt;&lt;/p&gt;
    &lt;/li&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;In Package&lt;/strong&gt; Windows Azure Application&lt;strong&gt; dialog box,&lt;/strong&gt; click &lt;strong&gt;Configure Remote Desktop connections.&lt;/strong&gt;&lt;/p&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;p&gt;Check the option labeled &lt;strong&gt;Enabled connections for all roles.&lt;/strong&gt;&lt;/p&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;p&gt;Expand the drop down list labeled &lt;b&gt;Create or select a certificate to encrypt the user credentials&lt;/b&gt; and select &lt;b&gt;Create&lt;/b&gt;. &lt;/p&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;p&gt;In the &lt;b&gt;Create Certificate&lt;/b&gt; dialog, enter a name to identify the certificate,  and then click &lt;b&gt;OK&lt;/b&gt;. &lt;/p&gt;
      &lt;/li&gt;

      &lt;li&gt;
        &lt;p&gt;In the &lt;b&gt;Remote Desktop Configuration&lt;/b&gt; dialog, select the certificate from the drop down list, enter the name a  user and password, 

          &lt;/p&gt;&lt;p&gt;you may change the expiration Date.&lt;/p&gt;
        
      &lt;/li&gt;

      &lt;li&gt;
        &lt;p&gt;
          &lt;/p&gt;&lt;p&gt;Click on &lt;strong&gt;View&lt;/strong&gt;, in the &lt;strong&gt;Details&lt;/strong&gt; tab click on &lt;strong&gt;Copy to File&lt;/strong&gt;, follow the wizard to export the certificate to a file, make sure that you check &lt;strong&gt;Export the private key. &lt;/strong&gt;Save the file, the file will be uploaded to management portal later and press OK.&lt;/p&gt;
        
      &lt;/li&gt;

      &lt;li&gt;
        &lt;p&gt;
          &lt;/p&gt;&lt;p&gt;Click on Package, be patient this will take a few minutes. &lt;/p&gt;
        
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
&lt;/ol&gt;

&lt;h4&gt;Creating the Hosted Service and Deploying the package&lt;/h4&gt;

&lt;ol&gt;
  &lt;ol&gt;
    &lt;li&gt;In &lt;strong&gt;Management Portal&lt;/strong&gt; –select &lt;strong&gt;Hosted Services&lt;/strong&gt; under the &lt;strong&gt;Hosted Services, Storage Accounts &amp;amp; CDN.&lt;/strong&gt;&lt;/li&gt;

    &lt;li&gt;Click on &lt;strong&gt;New Hosted Service&lt;/strong&gt;.&lt;/li&gt;

    &lt;ul&gt;
      &lt;li&gt;Enter a service Name&lt;/li&gt;

      &lt;li&gt;Enter URL prefix for your service&lt;/li&gt;

      &lt;li&gt;Select a &lt;strong&gt;region&lt;/strong&gt; or &lt;strong&gt;affinity group&lt;/strong&gt;&lt;/li&gt;

      &lt;li&gt;select &lt;strong&gt;Do not deploy.&lt;/strong&gt;&lt;/li&gt;
    &lt;/ul&gt;

    &lt;li&gt;Expand the node for your hosted service to display and select the &lt;strong&gt;certificates&lt;/strong&gt; and click on &lt;strong&gt;Add Certificate&lt;/strong&gt;.&lt;/li&gt;

    &lt;ul&gt;
      &lt;li&gt;Browse to the location of the certificate file and provide the password.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;li&gt;Select your &lt;strong&gt;service&lt;/strong&gt; then click on the &lt;strong&gt;New Production Deployment.&lt;/strong&gt;&lt;/li&gt;

    &lt;ul&gt;
      &lt;li&gt;Provide a name, good name would be a version number like v1.0&lt;/li&gt;

      &lt;li&gt;Browse locally to the  package file (.cspkg) file created by Visual Studio&lt;/li&gt;

      &lt;li&gt;Browse locally to the configuration (.cscfg) file created by Visual Studio.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;li&gt;You can monitor the status of your deployment. &lt;/li&gt;
  &lt;/ol&gt;
&lt;/ol&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/147513.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2011/11/01/147513.aspx</guid>
            <pubDate>Tue, 01 Nov 2011 12:59:21 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/147513.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2011/11/01/147513.aspx#feedback</comments>
            <slash:comments>16</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/147513.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/147513.aspx</trackback:ping>
        </item>
        <item>
            <title>HTML5 Web, Plug-ins and Silverlight.</title>
            <link>http://geekswithblogs.net/shervin/archive/2011/04/05/144708.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2011/04/05/144708.aspx'&gt;http://geekswithblogs.net/shervin/archive/2011/04/05/144708.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;It is not everyday, that you see an announcement on &lt;a href="http://team.silverlight.net/announcement/standards-based-web-plug-ins-and-silverlight/"&gt;Silverlight Team Blog&lt;/a&gt;  signed by three Microsoft Developer Division VPS (Walid Abu-Hadba, Scott Guthrie and Soma Somasegar) but it happened last night. &lt;/p&gt;  &lt;p&gt;MIX is about a week away and  a beta of Silverlight 5 will be shipped, but I think the main focus will be on IE9 and HTML5 tooling(I hope).&lt;/p&gt;  &lt;p&gt;I personally look forward to some great tooling from Microsoft for HTML5. These tools will be years ahead of any other companies tools. &lt;/p&gt;  &lt;p&gt;Exciting Times.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/144708.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2011/04/05/144708.aspx</guid>
            <pubDate>Tue, 05 Apr 2011 07:41:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/144708.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2011/04/05/144708.aspx#feedback</comments>
            <slash:comments>51</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/144708.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/144708.aspx</trackback:ping>
        </item>
        <item>
            <title>HTML5 and IE9 presetnation in Deerfield Beach</title>
            <link>http://geekswithblogs.net/shervin/archive/2011/01/05/143359.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2011/01/05/143359.aspx'&gt;http://geekswithblogs.net/shervin/archive/2011/01/05/143359.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;As promised here are the demo script files from my presentation. For the DemoHTML5Shapes.txt  and DemoHTML5More.txt demos you will need the Demo.htm just copy the scripts paste it in the blue area then execute the script.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;enjoy&lt;/p&gt;  &lt;p&gt;&lt;a title="http://ssccinc.com/HTML5Presentation.zip" href="http://ssccinc.com/HTML5Presentation.zip"&gt;http://ssccinc.com/HTML5Presentation.zip&lt;/a&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/143359.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2011/01/05/143359.aspx</guid>
            <pubDate>Wed, 05 Jan 2011 19:55:53 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/143359.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2011/01/05/143359.aspx#feedback</comments>
            <slash:comments>30</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/143359.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/143359.aspx</trackback:ping>
        </item>
        <item>
            <title>HTML5 and IE9 presentation.</title>
            <link>http://geekswithblogs.net/shervin/archive/2010/10/28/142489.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2010/10/28/142489.aspx'&gt;http://geekswithblogs.net/shervin/archive/2010/10/28/142489.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;For those of you in the audience for my presentation and PDC2010 in south Florida, here are the slides as promised. &lt;a title="http://ssccinc.com/HTML5%20IE9.zip" href="http://ssccinc.com/HTML5%20IE9.zip"&gt;http://ssccinc.com/HTML5%20IE9.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Also as mentioned for limited time you can download “Programming Windows Phone 7, by Charles Petzold for FREE. here is the link &lt;a title="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx" href="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx"&gt;http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Finally here is the link to watch PDC sessions. &lt;a title="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx" href="http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx"&gt;http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/142489.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2010/10/28/142489.aspx</guid>
            <pubDate>Thu, 28 Oct 2010 16:23:45 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/142489.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2010/10/28/142489.aspx#feedback</comments>
            <slash:comments>32</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/142489.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/142489.aspx</trackback:ping>
        </item>
        <item>
            <title>WPF Databinding- Part 2 of 3</title>
            <link>http://geekswithblogs.net/shervin/archive/2010/05/03/139639.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2010/05/03/139639.aspx'&gt;http://geekswithblogs.net/shervin/archive/2010/05/03/139639.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;This is a follow up to my previous post &lt;a href="http://geekswithblogs.net/shervin/archive/2010/04/04/139079.aspx"&gt;WPF Databinding- Not your fathers databinding Part 1-3&lt;/a&gt; you can download the source code here  &lt;a href="http://ssccinc.com/wpfdatabinding.zip"&gt;http://ssccinc.com/wpfdatabinding.zip&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Example 04&lt;/h2&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In this example we demonstrate  the use of default properties and also binding to an instant of an object which is part of a collection bound to its container. this is actually not as complicated as it sounds. &lt;/p&gt;  &lt;p&gt;First of all, lets take a look at our Employee class notice we have overridden the ToString method, which will return employees First name , last name and employee number in parentheses,&lt;/p&gt;  &lt;h6&gt;public override string ToString()&lt;/h6&gt;  &lt;h6&gt;       {&lt;/h6&gt;  &lt;h6&gt;           return String.Format("{0} {1} ({2})", FirstName, LastName, EmployeeNumber);&lt;/h6&gt;  &lt;h6&gt;       }&lt;/h6&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;in our XAML we have set the itemsource of the list box to just  “Binding” and the Grid that contains it, has its DataContext set to a collection of our Employee objects.&lt;/p&gt;  &lt;p&gt;DataContext="{StaticResource myEmployeeList}"&amp;gt;&lt;/p&gt;  &lt;p&gt;…..&lt;/p&gt;  &lt;p&gt;&amp;lt;ListBox Name="employeeListBox"  ItemsSource="{Binding }" Grid.Row="0" /&amp;gt;&lt;/p&gt;  &lt;p&gt;the ToString in the method for each instance will get executed and the following is a result of it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/shervin/WindowsLiveWriter/WPFDatabindingPart2of3_CCD3/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://gwb.blob.core.windows.net/shervin/WindowsLiveWriter/WPFDatabindingPart2of3_CCD3/image_thumb.png" width="244" height="45" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;if we did not have a ToString the list box would look  like this:&lt;a href="http://gwb.blob.core.windows.net/shervin/WindowsLiveWriter/WPFDatabindingPart2of3_CCD3/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://gwb.blob.core.windows.net/shervin/WindowsLiveWriter/WPFDatabindingPart2of3_CCD3/image_thumb_1.png" width="244" height="48" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;now lets take a look at the grid that will display the details when someone clicks on an Item, the Grid has the following &lt;strong&gt;DataContext&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;DataContext="{Binding ElementName=employeeListBox,    &lt;br /&gt;           Path=SelectedItem}"&amp;gt;&lt;/p&gt;  &lt;p&gt;Which means its bound to a specific instance of the Employee object. and within the gird we have textboxes that are bound to different Properties of our class.&lt;/p&gt;  &lt;p&gt;&amp;lt;TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=FirstName}" /&amp;gt;   &lt;br /&gt;&amp;lt;TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Path=LastName}" /&amp;gt;    &lt;br /&gt;&amp;lt;TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Path=Title}" /&amp;gt;    &lt;br /&gt;&amp;lt;TextBox Grid.Row="3" Grid.Column="1" Text="{Binding Path=Department}" /&amp;gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Example 05&lt;/h2&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;This project demonstrates use of the ObservableCollection and INotifyPropertyChanged interface.&lt;/p&gt;  &lt;p&gt;Lets take a look at Employee.cs first, notice it implements the INotifyPropertyChanged interface now scroll down and notice for each setter there is a call to the OnPropertyChanged method, which basically will will fire up the event notifying to the value of that specific property has been changed.&lt;/p&gt;  &lt;p&gt;Next EmployeeList.cs notice it is an ObservableCollection .&lt;/p&gt;  &lt;p&gt;Go ahead and set the start up project to example 05 and then run. Click on Add a new employee and the new employee should appear in the list box. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Example 06&lt;/h2&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;This is a great example of IValueConverter its actuall a two for one deal, like most of my presentation demos I found this by “Binging” ( formerly known as g---ing) unfortunately now I can’t find the original author to give him  the credit he/she deserves.&lt;/p&gt;  &lt;p&gt;Before we look at the code lets run the app and look at the finished product, put in 0 in Celsius  and you should see Fahrenheit textbox displaying to 32 degrees, I know this is calculating correctly from my elementary school science class , also note the color changed to blue, now put in 100 in Celsius which should give us 212 Fahrenheit but now the color is red indicating it is hot, and finally put in 75 Fahrenheit and you should see 23.88 for Celsius and the color now should be black. &lt;/p&gt;  &lt;p&gt;Basically IValueConverter allows us different types to be bound, I’m sure you have had problems in the past trying to bind to Date values . &lt;/p&gt;  &lt;p&gt;First look at FahrenheitToCelciusConverter.cs first notice it implements IValueConverter. IValueConverter has two methods &lt;strong&gt;&lt;em&gt;Convert&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;ConvertBack&lt;/em&gt;&lt;/strong&gt;. In each method we have the code for converting Fahrenheit to Celsius and vice Versa. &lt;/p&gt;  &lt;p&gt;In our XAML, after we set a reference in our Windows.Resources section. and for txtCelsius we set the path to TxtFahrenheit and the converter to an instance our FahrenheitToCelciusConverter converter. no need to repeat this for TxtFahrenheit since we have a convert and ConvertBack.&lt;/p&gt;  &lt;p&gt;Text="{Binding  UpdateSourceTrigger=PropertyChanged,   &lt;br /&gt;           Path=Text,ElementName=txtFahrenheit,     &lt;br /&gt;           Converter={StaticResource myTemperatureConverter}}" &lt;/p&gt;  &lt;p&gt;As mentioned earlier this is a twofer Demo, in the second demo, we basically are converting a double datatype to a brush. Lets take a look at TemperatureToColorConverter, notice we in our Covert Method, if the value is less than our cold temperature threshold we return a blue brush and if it is higher than our hot temperature threshold we return a redbrush. since we don’t have to convert a brush to double value in our example the convert back is not being implemented.&lt;/p&gt;  &lt;p&gt;Take time and go through these three examples and I hope you have a better understanding   of databinding, ObservableCollection  and IValueConverter . Next blog posting we will talk about &lt;strong&gt;ValidationRule, DataTemplates and DataTemplate triggers.&lt;/strong&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/139639.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2010/05/03/139639.aspx</guid>
            <pubDate>Mon, 03 May 2010 12:51:21 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/139639.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2010/05/03/139639.aspx#feedback</comments>
            <slash:comments>347</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/139639.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/139639.aspx</trackback:ping>
        </item>
        <item>
            <title>webhost4life, please give me,  my data back. My website will not work without the database.</title>
            <link>http://geekswithblogs.net/shervin/archive/2010/04/14/139264.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2010/04/14/139264.aspx'&gt;http://geekswithblogs.net/shervin/archive/2010/04/14/139264.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;I have about 4 or 5 accounts with WebHost4life.com, these are all my customers that based on my recommendation have been hosting with webhost4life.com. A few days ago for some reason they decided to migrate one of these accounts to a new server. They moved everything created a new database on the new server but the new database is empty. after spending hours with Tech support they acknowledged the problem and assured me it will take up to an hour or two and my database will be populated with the data. this was about 7 hours ago. Oh by the way I pay extra for the backup plan and yes you guessed it, none of my backups are there.&lt;/p&gt;  &lt;p&gt;Needless to say I’m very scared and disappointed. No one is responding to my emails  or phone calls. After searching the web, I found out, this has happened before, in some cases it took them days to fix the problem and many never got it resolved and switched hosting companies, I would love to do that but I need my 2 GB database before I start shopping around for a new hosting company.&lt;/p&gt;  &lt;p&gt;Stay away from Webhost4life.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/139264.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2010/04/14/139264.aspx</guid>
            <pubDate>Wed, 14 Apr 2010 15:41:25 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/139264.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2010/04/14/139264.aspx#feedback</comments>
            <slash:comments>63</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/139264.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/139264.aspx</trackback:ping>
        </item>
        <item>
            <title>WPF Databinding- Not your fathers databinding Part 1-3</title>
            <link>http://geekswithblogs.net/shervin/archive/2010/04/04/139079.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2010/04/04/139079.aspx'&gt;http://geekswithblogs.net/shervin/archive/2010/04/04/139079.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;As Promised here is my advanced databinding presentation from South Florida Code camp and also Orlando Code camp. you can find the demo files here.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://ssccinc.com/wpfdatabinding.zip" href="http://ssccinc.com/wpfdatabinding.zip"&gt;http://ssccinc.com/wpfdatabinding.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here is a quick description of the first demos, there will be 2 other Blogposting in the next few days getting into more advance databinding topics. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Example00&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Here we have 3 textboxes, &lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;The first textbox mySourceElement&lt;/li&gt;        &lt;li&gt;Second textbox has a binding to mySourceElement and Path= Text&lt;/li&gt;        &lt;blockquote&gt;         &lt;p&gt;&amp;lt;Binding ElementName="mySourceElement" Path="Text"  /&amp;gt;&lt;/p&gt;          &lt;p&gt; &lt;/p&gt;       &lt;/blockquote&gt;        &lt;li&gt;Third textbox is also bound to the Text property but we use inline Binding&lt;/li&gt;        &lt;p&gt;&amp;lt;TextBlock Text="{Binding ElementName=mySourceElement,Path=Text }" Grid.Row="2" /&amp;gt; &lt;/p&gt;        &lt;p&gt;Here is the entire XAML&lt;/p&gt;        &lt;p&gt;    &amp;lt;Grid  &amp;gt;   &lt;br /&gt;        &amp;lt;Grid.RowDefinitions &amp;gt;          &lt;br /&gt;            &amp;lt;RowDefinition Height="*" /&amp;gt;          &lt;br /&gt;            &amp;lt;RowDefinition Height="*" /&amp;gt;          &lt;br /&gt;            &amp;lt;RowDefinition Height="*" /&amp;gt;          &lt;br /&gt;        &amp;lt;/Grid.RowDefinitions&amp;gt;          &lt;br /&gt;        &amp;lt;TextBox Name="mySourceElement" Grid.Row="0"           &lt;br /&gt;                 TextChanged="mySourceElement_TextChanged"&amp;gt;Hello Orlnado&amp;lt;/TextBox&amp;gt;          &lt;br /&gt;        &amp;lt;TextBlock Grid.Row="1"&amp;gt;            &lt;br /&gt;            &amp;lt;TextBlock.Text&amp;gt;          &lt;br /&gt;                &amp;lt;Binding ElementName="mySourceElement" Path="Text"  /&amp;gt;          &lt;br /&gt;            &amp;lt;/TextBlock.Text&amp;gt;          &lt;br /&gt;        &amp;lt;/TextBlock&amp;gt;           &lt;br /&gt;        &amp;lt;TextBlock Text="{Binding ElementName=mySourceElement,Path=Text }" Grid.Row="2" /&amp;gt;          &lt;br /&gt;    &amp;lt;/Grid&amp;gt;          &lt;br /&gt;&amp;lt;/Window&amp;gt;&lt;/p&gt;     &lt;/ul&gt;   &lt;/ul&gt;    &lt;li&gt;Example01&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;we have a slider control, then we have two textboxes bound to the value property of the slider. one has its text property bound, the second has its fontsize property bound.&lt;/li&gt;      &lt;p&gt;&amp;lt;Grid&amp;gt;       &lt;br /&gt;     &amp;lt;Grid.RowDefinitions &amp;gt;        &lt;br /&gt;         &amp;lt;RowDefinition Height="40px" /&amp;gt;        &lt;br /&gt;         &amp;lt;RowDefinition Height="40px" /&amp;gt;        &lt;br /&gt;         &amp;lt;RowDefinition Height="*" /&amp;gt;        &lt;br /&gt;     &amp;lt;/Grid.RowDefinitions&amp;gt;        &lt;br /&gt;     &amp;lt;Slider Name="fontSizeSlider" Minimum="5" Maximum="100"         &lt;br /&gt;             Value="10" Grid.Row="0" /&amp;gt;        &lt;br /&gt;     &amp;lt;TextBox Name="SizeTextBox"      &lt;br /&gt;              Text="{Binding ElementName=fontSizeSlider, Path=Value}" Grid.Row="1"/&amp;gt;        &lt;br /&gt;     &amp;lt;TextBlock Text="Example 01"         &lt;br /&gt;                FontSize="{Binding ElementName=SizeTextBox,  Path=Text}"  Grid.Row="2"/&amp;gt;        &lt;br /&gt; &amp;lt;/Grid&amp;gt;&lt;/p&gt;   &lt;/ul&gt;    &lt;li&gt;Example02&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;very much like the previous example but it also has a font dropdown&lt;/li&gt;      &lt;p&gt;&amp;lt;Grid&amp;gt;       &lt;br /&gt;     &amp;lt;Grid.RowDefinitions &amp;gt;        &lt;br /&gt;         &amp;lt;RowDefinition Height="20px" /&amp;gt;        &lt;br /&gt;         &amp;lt;RowDefinition Height="40px" /&amp;gt;        &lt;br /&gt;         &amp;lt;RowDefinition Height="40px" /&amp;gt;        &lt;br /&gt;         &amp;lt;RowDefinition Height="*" /&amp;gt;        &lt;br /&gt;     &amp;lt;/Grid.RowDefinitions&amp;gt;        &lt;br /&gt;     &amp;lt;ComboBox Name="FontNameList" SelectedIndex="0" Grid.Row="0"&amp;gt;        &lt;br /&gt;         &amp;lt;ComboBoxItem Content="Arial" /&amp;gt;        &lt;br /&gt;         &amp;lt;ComboBoxItem Content="Calibri" /&amp;gt;        &lt;br /&gt;         &amp;lt;ComboBoxItem Content="Times New Roman" /&amp;gt;        &lt;br /&gt;         &amp;lt;ComboBoxItem Content="Verdana" /&amp;gt;        &lt;br /&gt;     &amp;lt;/ComboBox&amp;gt;        &lt;br /&gt;     &amp;lt;Slider Name="fontSizeSlider" Minimum="5" Maximum="100" Value="10" Grid.Row="1" /&amp;gt;        &lt;br /&gt;     &amp;lt;TextBox Name="SizeTextBox"      Text="{Binding ElementName=fontSizeSlider, Path=Value}" Grid.Row="2"/&amp;gt;        &lt;br /&gt;     &amp;lt;TextBlock Text="Example 01" FontFamily="{Binding ElementName=FontNameList, Path=Text}"         &lt;br /&gt;                FontSize="{Binding ElementName=SizeTextBox,  Path=Text}"  Grid.Row="3"/&amp;gt;        &lt;br /&gt; &amp;lt;/Grid&amp;gt;&lt;/p&gt;   &lt;/ul&gt;    &lt;li&gt;Example03 &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;In this example we bind to an object Employee.cs&lt;/li&gt;      &lt;li&gt;Notice we added a directive to our xaml which is clr-namespace and the namespace for our employee Class&lt;/li&gt;      &lt;p&gt;xmlns:local="clr-namespace:Example03"&lt;/p&gt;      &lt;li&gt;In Our windows Resources we create an instance of our object&lt;/li&gt;      &lt;p&gt;&amp;lt;Window.Resources&amp;gt;       &lt;br /&gt;    &amp;lt;local:Employee x:Key="MyEmployee" EmployeeNumber="145"         &lt;br /&gt;                    FirstName="John"         &lt;br /&gt;                    LastName="Doe"         &lt;br /&gt;                    Department="Product Development"        &lt;br /&gt;                    Title="QA Manager" /&amp;gt; &lt;/p&gt;      &lt;p&gt;&amp;lt;/Window.Resources&amp;gt;&lt;/p&gt;      &lt;li&gt;then we bind our container to the that instance of the data&lt;/li&gt;      &lt;p&gt;&amp;lt;Grid DataContext="{StaticResource MyEmployee}"&amp;gt;       &lt;br /&gt;        &amp;lt;Grid.RowDefinitions&amp;gt;        &lt;br /&gt;            &amp;lt;RowDefinition Height="*" /&amp;gt;        &lt;br /&gt;            &amp;lt;RowDefinition Height="*" /&amp;gt;        &lt;br /&gt;            &amp;lt;RowDefinition Height="*" /&amp;gt;        &lt;br /&gt;            &amp;lt;RowDefinition Height="*" /&amp;gt;        &lt;br /&gt;            &amp;lt;RowDefinition Height="*" /&amp;gt;        &lt;br /&gt;        &amp;lt;/Grid.RowDefinitions&amp;gt;        &lt;br /&gt;        &amp;lt;Grid.ColumnDefinitions &amp;gt;        &lt;br /&gt;            &amp;lt;ColumnDefinition Width="130px" /&amp;gt;        &lt;br /&gt;            &amp;lt;ColumnDefinition Width="178*" /&amp;gt;        &lt;br /&gt;        &amp;lt;/Grid.ColumnDefinitions&amp;gt;        &lt;br /&gt;        &lt;br /&gt;    &amp;lt;/Grid&amp;gt;&lt;/p&gt;      &lt;li&gt;&lt;/li&gt;      &lt;li&gt;and Finally we have textboxes that will bind to that textbox&lt;/li&gt;         &amp;lt;Label Grid.Row="0" Grid.Column="0"&amp;gt;Employee Number&amp;lt;/Label&amp;gt;      &lt;br /&gt;        &amp;lt;TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=EmployeeNumber}"&amp;gt;&amp;lt;/TextBox&amp;gt;      &lt;br /&gt;        &amp;lt;Label Grid.Row="1" Grid.Column="0"&amp;gt;First Name&amp;lt;/Label&amp;gt;      &lt;br /&gt;        &amp;lt;TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Path=FirstName}"&amp;gt;&amp;lt;/TextBox&amp;gt;      &lt;br /&gt;        &amp;lt;Label Grid.Row="2" Grid.Column="0"&amp;gt;Last Name&amp;lt;/Label&amp;gt;      &lt;br /&gt;        &amp;lt;TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Path=LastName}" /&amp;gt;      &lt;br /&gt;        &amp;lt;Label Grid.Row="3" Grid.Column="0"&amp;gt;Title&amp;lt;/Label&amp;gt;      &lt;br /&gt;        &amp;lt;TextBox Grid.Row="3" Grid.Column="1" Text="{Binding Path=Title}"&amp;gt;&amp;lt;/TextBox&amp;gt;      &lt;br /&gt;        &amp;lt;Label Grid.Row="4" Grid.Column="0"&amp;gt;Department&amp;lt;/Label&amp;gt;      &lt;br /&gt;        &amp;lt;TextBox Grid.Row="4" Grid.Column="1" Text="{Binding Path=Department}" /&amp;gt;&lt;/ul&gt; &lt;/ul&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/139079.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2010/04/04/139079.aspx</guid>
            <pubDate>Sun, 04 Apr 2010 13:31:47 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/139079.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2010/04/04/139079.aspx#feedback</comments>
            <slash:comments>72</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/139079.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/139079.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio 2010 Beta 2 ReportViewer and Click Once.</title>
            <link>http://geekswithblogs.net/shervin/archive/2010/02/03/137783.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2010/02/03/137783.aspx'&gt;http://geekswithblogs.net/shervin/archive/2010/02/03/137783.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;First of all I have to say how excited I was to see the new reportviewer with VS2010 Beta 2, I have one application that has embedded reports in it up to this point we could not use the SSRS2008 reports with it, but now we can. So we included all the new reports that we have been using for our web app,  but couldn't use it with this version of application, to the project, next went to the prerequisites and checked Microsoft Visual studio 2010 Report Viewer.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/shervin/WindowsLiveWriter/VisualStudio2010Beta2ReportViewerandCli_CAA2/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://gwb.blob.core.windows.net/shervin/WindowsLiveWriter/VisualStudio2010Beta2ReportViewerandCli_CAA2/image_thumb.png" width="370" height="289" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After deploying the project we started getting calls from users apparently they were getting an error installing the package the error was&lt;/p&gt;  &lt;p align="left"&gt;Setup has detected that the file 'C:\Users\Owner\AppData\Local\Temp\VSD98D7.tmp\ReportViewer\ReportViewer.exe' has changed since it was initially published.&lt;/p&gt;  &lt;p align="left"&gt;I realized the default “install location” is Vendor’s web site. I figured the version of reportviewer that came with Beta 2 is older than the version on the server. After installing the latest reportviewer and republishing everything was fine and i was able to install it on the clients.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/137783.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2010/02/03/137783.aspx</guid>
            <pubDate>Wed, 03 Feb 2010 18:24:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/137783.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2010/02/03/137783.aspx#feedback</comments>
            <slash:comments>1154</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/137783.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/137783.aspx</trackback:ping>
        </item>
        <item>
            <title>Sync Framework Power Pack for SQL Azure</title>
            <link>http://geekswithblogs.net/shervin/archive/2009/12/02/136654.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/shervin/archive/2009/12/02/136654.aspx'&gt;http://geekswithblogs.net/shervin/archive/2009/12/02/136654.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;  &lt;p&gt;We are working on a cloud based application for a long time existing customer.  we came across a pretty interesting challenge. The problem was; the New cloud based application needed to be able to integrate with  our existing legacy applications. in particular our call center application. We have no intentions of moving this application to the cloud, however we need to be able to have access to some of that data with our new Application.&lt;/p&gt;  &lt;p&gt;Couple of weeks ago At PDC, during the Keynote Andy Lapin of &lt;a title="Kelley Blue Book" href="http://www.kbb.com/"&gt;Kelley Blue Book&lt;/a&gt; explained how they keep their community database up-to-date using the technology to synchronize data between their on-Premises SQL Server and SQL Azure. the recording is on &lt;a title="PDC Keynote - SQL Azure Data Sync" href="http://microsoftpdc.com/Sessions/KEY01"&gt;PDC website&lt;/a&gt;, Andy’s demo starts at 1:18:00.&lt;/p&gt;  &lt;p&gt;So finally I downloaded &lt;a title="Sync Framework Power Pack for SQL Azure November CTP" href="http://services.social.microsoft.com/feeds/FeedItem?feedId=0a8d3420-c3fd-4383-b2f4-00d816ef0119&amp;amp;itemId=a5397c57-b1eb-4a64-b420-c06eac29bc4c&amp;amp;title=Sync+Framework+Power+Pack+for+SQL+Azure+November+CTP+Available+for+Download&amp;amp;uri=http%3a%2f%2fwww.microsoft.com%2fdownloads%2fdetails.aspx%3fFamilyID%3dbce4ad61-5b76-4101-8311-e928e7250b9a%26displaylang%3den&amp;amp;k=k05RRq0Uah1SpoKFYi7BRKo2xUtTq5fwGK1%2b8Um3DdE%3d"&gt;Sync Framework Power Pack for SQL Azure November CTP Available for Download&lt;/a&gt;. This release includes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Azure provider for Sync Framework. &lt;/li&gt;    &lt;li&gt;Plug-in for Visual Studio 2008 SP1. &lt;/li&gt;    &lt;li&gt;SQL Azure Data Sync Tool for SQL Server. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;SQL Azure Data Sync Tool for SQL Server,&lt;/strong&gt; contains a wizard that walks users through the SQL Azure connection process, automating the provisioning and synchronization operations between SQL Server and SQL Azure. &lt;/p&gt;  &lt;p&gt;Here is a screen shot of the tool, Stay tuned for a webcast I will be doing on this, this Friday Dec 4th for &lt;a href="http://www.russtoolshed.net/"&gt;Russ' Toolshed&lt;/a&gt;, If you are in Boca make sure to stop by and be part of the live audience. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/shervin/WindowsLiveWriter/SyncFrameworkPowerPakforSQLAzure_7BB2/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://gwb.blob.core.windows.net/shervin/WindowsLiveWriter/SyncFrameworkPowerPakforSQLAzure_7BB2/image_thumb.png" width="244" height="168" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/shervin/aggbug/136654.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Shervin Shakibi</dc:creator>
            <guid>http://geekswithblogs.net/shervin/archive/2009/12/02/136654.aspx</guid>
            <pubDate>Wed, 02 Dec 2009 15:48:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/shervin/comments/136654.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/shervin/archive/2009/12/02/136654.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/shervin/comments/commentRss/136654.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/shervin/services/trackbacks/136654.aspx</trackback:ping>
        </item>
    </channel>
</rss>