<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://silverlight.sys-con.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Commentaries</title>
 <link>http://silverlight.sys-con.com/</link>
 <description>Latest articles from Commentaries</description>
 <language>en</language>
 <copyright>Copyright 2009 Ulitzer.com</copyright>
 <generator>Ulitzer.com</generator>
 <lastBuildDate>Fri, 11 Dec 2009 20:28:59 EST</lastBuildDate>
 <docs>http://backend.userland.com/rss</docs>
 <ttl>10</ttl>
<item>
 <title>How to Synchronize with a Cloud Database</title>
 <link>http://silverlight.sys-con.com/node/1211047</link>
 <description>In fortifying and solidifying its relational cloud database service-SQL Azure, Microsoft has come up with a new tool, the Microsoft Sync Framework Power Pack for SQL Azure November CTP. All that you need to do is to click and presto, you are in sync. This tool [SQL Azure Data Sync Tool for SQL Server] makes synchronizing SQL Azure with a local server that much more efficient (compared to force fitting ADO.NET) and that much more reliable.This power pack provides the SqlAzureSyncProvider that automates much of the synchronizing task, that is, a wizard will step in, and take charge. However you may need to keep your SQL Server Agent up and running and happy.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1211047&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 06 Dec 2009 12:30:00 EST</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1211047</guid>
</item>
<item>
 <title>Windows Shopping</title>
 <link>http://silverlight.sys-con.com/node/1208199</link>
 <description>I’m really not one of those vocal Operating System lover/haters. My dad worked at IBM for 30 years and so I grew up with computers and even took a PC Jr. with a whopping 128k of RAM and a color (what we called color) monitor with me to college in the 80’s. My first work computer was a Macintosh and learned about all that AppleTalk stuff and the cool publishing Quark could do. I’ve used and administrated Win3.1, NT 4.0 (on laptops), Win95, WinME, Win2000/Server, and of course a user of XP and Vista along with a few variants of Linux. I use Windows for home and work and personally I think each OS has it’s plus’/minus’. Very non-committal, I know. Now I’m looking to buy a new computer and with that, a new Operating System.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1208199&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 03 Dec 2009 20:45:00 EST</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1208199</guid>
</item>
<item>
 <title>Breaking Changes for .NET Services in Azure</title>
 <link>http://silverlight.sys-con.com/node/1169534</link>
 <description>If you want the full gory details, check out the .NET Services team blog post here. What follows below are some of the things that I think are most crucial to understand both for new developers and for developers unfortunate enough to be in a position of having to migrate a lot of code. Quite possibly the single most important thing to note is this: If you bought a book on Windows Azure that has already been released or will be released within the next month or two, it is out of date and completely irrelevant. PDC (along with the changes I&#039;m going to outline below) will substantially change all of the Azure offerings.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1169534&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 24 Nov 2009 11:15:00 EST</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1169534</guid>
</item>
<item>
 <title>Setting up an ASP.NET MVC 2 Application for Windows Azure</title>
 <link>http://silverlight.sys-con.com/node/1186735</link>
 <description>Yesterday, Microsoft released another update to the Windows Azure SDK. This update includes a truckload of new goodies that I will be covering in additional blog posts. For this blog post, however, I want to walk you through getting an ASP.NET MVC 2 application working on Windows Azure in Visual Studio 2010 Beta 2. Now that Azure and VS2010 are finally starting to sync up, the amount of raw goodness coming out of Redmond cannot be measured.

First, install the Windows Azure SDK and the Windows Azure Tools for Visual Studio, making sure you pay attention to all of the installation details. There are lots of little hotfixes and things that you might need. Luckily, if you&#039;re running VS2010 Beta 2 on Windows 7, you have very little extra work to do beyond configuring IIS 7 for WCF HTTP activation.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1186735&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 17 Nov 2009 13:30:00 EST</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1186735</guid>
</item>
<item>
 <title>Working with Table Storage on the Windows Azure </title>
 <link>http://silverlight.sys-con.com/node/1186937</link>
 <description>&lt;p&gt;If you&amp;#39;ve been working with Azure for a while then you&amp;#39;ve probably spent some time using the &lt;strong&gt;StorageClient&lt;/strong&gt; &lt;em&gt;sample&lt;/em&gt; that came with previous versions of the SDK. With the November 2009 release of the SDK (the one they&amp;#39;ll be using at &lt;strong&gt;PDC 2009&lt;/strong&gt;), they have wrapped that sample up into the SDK and refactored it to fit more in line with the conventions and quality standards of a Microsoft API. As a result, some of your code will break (but not much). Queue storage and Blob storage (discussed in upcoming posts) actually have more breaking changes than table storage.&lt;/p&gt;&lt;p&gt;Table storage, under the hood, is exposed as an ADO.NET Data Service (formerly Astoria). As a result, if you&amp;#39;ve used the &lt;em&gt;System.Data.Services.Client&lt;/em&gt; library before, you&amp;#39;ve already got a leg up in interacting with Azure Storage.&lt;/p&gt;&lt;p&gt;When you&amp;#39;re working with table storage, there are a few things that you&amp;#39;re going to need. Once you&amp;#39;ve got these, you&amp;#39;re good to go:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;References to &lt;em&gt;System.Data.Services.Client&lt;/em&gt; and &lt;em&gt;Microsoft.WindowsAzure.StorageClient&lt;/em&gt; (obviously you also need a reference to service runtime if you&amp;#39;re hitting table storage from within the cloud itself... remember that you can hit table storage from the desktop too, e.g. from WPF applications).&lt;/li&gt;&lt;li&gt;Credentials. There have been some changes to the way storage client credentials work that are beyond the scope of this post, but you can still use the same accountname/account shared key pattern that you used in the past.&lt;/li&gt;&lt;li&gt;A &lt;em&gt;DataServiceContext&lt;/em&gt;. You&amp;#39;re going to need this to interact with the tables in table storage. As you&amp;#39;ll see in the code below, the pattern is to create your own context that derives from the base and exposes your tables as &lt;em&gt;IQueryable&lt;/em&gt;s. If you&amp;#39;ve ever worked with ADO.NET Data Services or Entity Framework before, this pattern should also look familiar.&lt;/li&gt;&lt;li&gt;Entity objects. Every table that you have in table storage contains arbitrary columns. In other words, if you really wanted, you could have a different schema for every row in your table. However, to work with it using the&amp;nbsp;Data Services client, each row needs to conform to a fixed schema - this fixed schema you&amp;#39;ll represent with a&amp;nbsp;regular C# class that contains the necessary partition key and row key&amp;nbsp;properties. This class also needs a parameterless constructor (required by the data services client to&amp;nbsp;reconstitute instances of that&amp;nbsp;class from the HTTP results)&lt;/li&gt;&lt;li&gt;The cloud&amp;nbsp;table client. This new class&amp;nbsp;will let you create tables and test for the existence of tables. You do not need to use this class for querying&amp;nbsp;table storage, it&amp;#39;s more of an administrative class for dealing with table storage itself.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The first thing we&amp;#39;re going to want to do is get the credentials. The new SDK allows us to dynamically determine if we&amp;#39;re running in a fabric or running as a standalone app (which allows us to build apps that we can run on-premise OR in the cloud!). Here&amp;#39;s some code I used to get the configuration settings for the account name and shared key:&lt;/p&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;p&gt;string&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; accountKey = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;ConfigurationManager&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;.AppSettings[&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;AccountSharedKey&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;];&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; tableBaseUri = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;ConfigurationManager&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;.AppSettings[&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;TableStorageEndpoint&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;];&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;if&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; (&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;RoleEnvironment&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;.IsAvailable)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; accountName = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;RoleEnvironment&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;.GetConfigurationSettingValue(&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;AccountName&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; accountKey = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;RoleEnvironment&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;.GetConfigurationSettingValue(&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;AccountSharedKey&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;);&lt;br /&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;Once you&amp;#39;ve got the account key and the account name, you can get an instance of the storage credentials and table client classes:&lt;/p&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;p&gt;StorageCredentialsAccountAndKey&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; creds = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;new&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;StorageCredentialsAccountAndKey&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;(accountName, accountKey);&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CloudTableClient&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; tableStorage = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;new&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CloudTableClient&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;(tableBaseUri, creds);&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CustomerContext&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; ctx = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;new&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CustomerContext&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;(tableBaseUri, creds);&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;Using the table storage class, we can create a new table (if it doesn&amp;#39;t already exist):&lt;/p&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;p&gt;if&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; (tableStorage.CreateTableIfNotExist(&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;Customers&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;))&lt;br /&gt;{ &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CustomerRow&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; cust = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;new&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CustomerRow&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;(&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;AccountsReceivable&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;, &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;kevin&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;);&lt;br /&gt;cust.FirstName = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;Kevin&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;;&lt;br /&gt;cust.LastName = &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;Hoffman&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;;&lt;br /&gt;ctx.AddObject(&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;Customers&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;, cust);&lt;br /&gt;ctx.SaveChanges(); &lt;br /&gt;}&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;Here I&amp;#39;m also using my customer context class and my customer row class (will show those shortly) in order to put a new customer into table storage. Note my use of an application name for the partition key and the username for the row key. Entire chapters of books can (and will) be written on strategies and patterns for using partition and row keys.&lt;/p&gt;&lt;p&gt;Now let&amp;#39;s say that we&amp;#39;re inside an MVC 2 controller and we want to make the list of customers available to the view. If we&amp;#39;re not doing a strongly typed view (which we should be doing unless we can&amp;#39;t help it...) then we can use code that looks like this:&lt;/p&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;p&gt;CustomerRow&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;[] customers = ctx.Customers.ToArray();&lt;br /&gt;ViewData[&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;Customers&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;] = customers; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;Now let&amp;#39;s look at the CustomerContext class:&lt;/p&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;p&gt;public&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;class&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CustomerContext&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; : &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;TableServiceContext&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; CustomerContext(&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; uri, &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;StorageCredentials&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; creds) : &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;base&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;(uri, creds) { }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;IQueryable&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CustomerRow&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&amp;gt; Customers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;return&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;this&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;.CreateQuery&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CustomerRow&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&amp;gt;(&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#a31515&quot;&gt;&amp;quot;Customers&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;The CustomerRow class is just a POCO class that has a default constructor and a constructor that takes a partition key and a row key, and inherits from the &lt;strong&gt;TableServiceEntity&lt;/strong&gt; class.&lt;/p&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;class&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;CustomerRow&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; : &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#2b91af&quot;&gt;TableServiceEntity&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; firstName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; lastName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; userName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;private&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; applicationName;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;public&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; CustomerRow(&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; applicationName, &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; userName)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;base&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;(applicationName, userName)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ApplicationName = applicationName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserName = userName; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; &lt;p&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt; CustomerRow() : &lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot; color=&quot;#0000ff&quot;&gt;base&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;&lt;font face=&quot;Consolas&quot; size=&quot;2&quot;&gt;() { }&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;I snipped out the rest of the class for brevity - I&amp;#39;m assuming we&amp;#39;ve all seen stock property accessors before. At this point you should be ready to roll using table storage. There is also one other benefit they gave us in November 2009 CTP - &lt;em&gt;&lt;strong&gt;you no longer need to pre-rig your database schema in your SQL 2008 database&lt;/strong&gt;&lt;/em&gt;!! The new development storage simulator accurately simulates the dynamic schema nature of the actual table storage in the cloud. I can&amp;#39;t begin to describe how many headaches this alleviates.&lt;/p&gt;&lt;p&gt;Enjoy table storage on the new Nov 2009 CTP and I&amp;#39;ll be posting similar blog posts about the new Queue storage and Blob storage clients shortly!&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1186937&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 17 Nov 2009 00:00:00 EST</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1186937</guid>
</item>
<item>
 <title>How to Find Me at TechEd Europe</title>
 <link>http://silverlight.sys-con.com/node/1179215</link>
 <description>Here&amp;#8217;s when and where you can find me in Berlin this week:
Microsoft Online Services booth (Unified Communications area) in the TLC area (3.2)

I&amp;#8217;ll be there tomorrow (Tuesday) during the evening reception &amp;#8211; 6:15-8:00 pm. Obviously, I will be happy to answer any questions on Exchange Online, SharePoint Online, LiveMeeting, OCS Online and sign

And then, both [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=cloudenterprise.info&amp;blog=4988729&amp;post=332&amp;subd=cloudenterprise&amp;ref=&amp;feed=1&quot; /&gt;&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1179215&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 09 Nov 2009 09:18:00 EST</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1179215</guid>
</item>
<item>
 <title>Solution Dependencies in SharePoint 2010</title>
 <link>http://silverlight.sys-con.com/node/1163587</link>
 <description>With MOSS 2007, I often got asked what order do I install these solution packages in.  Oftentimes, it was critical that they get installed in a particular order.  With features, we have had the ability to set dependencies, but we really didn’t have anything like that for solution packages.  Well, I haven’t heard people talking about this new feature yet, but we can in fact set solution dependencies in the manifest.xml file.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1163587&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 31 Oct 2009 10:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1163587</guid>
</item>
<item>
 <title>Turning on the Developer Dashboard in SharePoint 2010</title>
 <link>http://silverlight.sys-con.com/node/1166944</link>
 <description>The developer dashboard is a great new feature that developers can use to aid them in tuning performance on a page.  This new functionality adds information to the bottom of any page in SharePoint that displays performance information and what SQL queries were executed to display the page.  To my knowledge, there is currently no way in the UI to turn this on, so you can do this with a quick x64 console application.  This is soon to become a quite popular code snippet I am sure.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1166944&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 31 Oct 2009 10:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1166944</guid>
</item>
<item>
 <title>Will Virtualization Die in SharePoint 2010 Development?</title>
 <link>http://silverlight.sys-con.com/node/1166943</link>
 <description>So what does this mean?  For some reason, Microsoft has not given us desktop virtualization software that can run 64 bit guest (even though Hyper-V can).  So I think this left Microsoft a choice.  Get 64 bit guests added to Windows Virtual PC, recommend developers use a non Microsoft virtualization technology, or get SharePoint working on Windows 7 and Vista.  Now, adding 64 bit support I am sure is quite an undertaking and they definitely don’t want to recommend a competitor’s product.  This means that making SharePoint work directly on the developer’s machine the obvious choice.  After all it runs on top of IIS and IIS is pretty similar between Windows Server 2008, Windows 7, and Windows Vista (yes, I do know there are differences).&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1166943&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 31 Oct 2009 09:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1166943</guid>
</item>
<item>
 <title>Amazon RDS vs. SQL Azure</title>
 <link>http://silverlight.sys-con.com/node/1161816</link>
 <description>Back in July I wrote my post about databases in the cloud.  The big surprise that I discovered at the time was that the only “Native” RDBMS offering in the cloud came from Microsoft. Microsoft SQL Azure (launching formally at the PDC in a few weeks) is a mostly-compatible SQL Server as a Service release complete with support for Transact SQL/TDS.  SQL Azure is a multitenanted DBMS with several customers running databases up to 10GB in size on a single server.  Their target is the 95% of business applications running in the enterprise that have databases with less than 5GB of data (based on their research).  Well, Microsoft is alone no more.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1161816&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 28 Oct 2009 09:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1161816</guid>
</item>
<item>
 <title>Microsoft SharePoint 2010</title>
 <link>http://silverlight.sys-con.com/node/1157316</link>
 <description>First let me apologize for the lack of blogging for a while.  We have been under the gun with a sizable SharePoint development project.  I have gown farther down into the innards of InfoPath then I ever thought possible.  To give you an idea, we worked over 140 hours in the 2 weeks prior to the conference.  I promise to be better, and now I have good reason to do so:

We at Syrinx just got back from a long week loaded with sessions, booths, experts, and information all about SharePoint 2010.  All I can say is *WOW*.  I predict the trend of SharePoint adoption to continue to to climb at an alarming rate.  
&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1157316&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 25 Oct 2009 10:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1157316</guid>
</item>
<item>
 <title>Get Your Red Hot VS2010 Beta 2</title>
 <link>http://silverlight.sys-con.com/node/1150069</link>
 <description>Visual Studio 2010 Beta 2 is now available to MSDN subscribers and will be available to the public at large late next week. The list of stuff that is awesome and worth checking out in VS2010 Beta 2 is too long and ridiculously in-depth for me to cover here. Some of the big things that affect me right off the bat are the following:&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1150069&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 21 Oct 2009 09:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1150069</guid>
</item>
<item>
 <title>Visual Studio 2010 Is Cloud Friendly</title>
 <link>http://silverlight.sys-con.com/node/1150283</link>
 <description>New testing options in Visual Studio 2010 will help ensure quality code. Enhancements to the integrated development environment mean that whether modeling, coding, testing or debugging, developers can use existing skills to deploy a growing number of application types. Built-in tools for Windows 7 and Microsoft SharePoint 2010, new drag and drop bindings for Silverlight and Windows Presentation Foundation, and interoperability with innovative technologies (such as those for the database, ASP.NET model view controller, unified modeling language, Expression, and multicore) allow developers to bring their visions to life.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1150283&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 20 Oct 2009 14:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1150283</guid>
</item>
<item>
 <title>Cloud Computing Does Not Require Change in Programming Model – Microsoft</title>
 <link>http://silverlight.sys-con.com/node/1129364</link>
 <description>In two of my previous posts I have highlighted why I think cloud computing needs change in thinking. However, in a recent discussion Walid Abu-Hadba (of Microsoft) clearly stated that Microsoft&amp;#8217;s cloud strategy assumes that they are going to retain the existing programming model for cloud. That is, programmers can develop their application without bothering [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&amp;blog=3978262&amp;post=175&amp;subd=setandbma&amp;ref=&amp;feed=1&quot; /&gt;&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1129364&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 02 Oct 2009 18:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1129364</guid>
</item>
<item>
 <title>ASP.NET Membership Provider in the Cloud</title>
 <link>http://silverlight.sys-con.com/node/1123632</link>
 <description>&lt;p&gt;Let&amp;#39;s take a look at this pretty common scenario. You&amp;#39;re building an ASP.NET application (MVC or otherwise) and you intend to publish it in the cloud and you&amp;#39;re using Azure Storage (not SQL Azure) for your underlying data store. You&amp;#39;ve already hooked your app up with the sample Azure-based Membership provider that comes with the Azure SDK and everything is running along nicely.&lt;/p&gt;&lt;p&gt;Your application has quite a bit of administrator-only functionality so, after you&amp;#39;ve been using it locally for a while you put in some safeguards to block access to the admin areas unless the user is in the &lt;em&gt;Administrators&lt;/em&gt; role. That&amp;#39;s awesome and ASP.NET and ASP.NET MVC both have some really great code shortcuts for enabling this kind of situation and you can make yourself an administrator pretty darn easily.&lt;/p&gt;&lt;p&gt;So you&amp;#39;re an admin and you deploy your application to staging and you go to run it and you try to log in. &lt;em&gt;Whoops&lt;/em&gt; your account isn&amp;#39;t there. This is because for the last couple of weeks you&amp;#39;ve been running against your local SQL 2008 (or SQL Express) database and you forgot that you did a few tweaks to make yourself an administrator. In the last couple of weeks you removed the code on the site that allows users to self-register since your application is an LOB app with a manually administered user list.&lt;/p&gt;&lt;p&gt;There is a built-in tool that comes with Visual Studio 2008 that allows you to do site administration. In a non-cloud environment, this was a great way to do things because you could simply configure your providers and then click &amp;quot;Project&amp;quot; and then &amp;quot;ASP.NET Configuration&amp;quot; and you would be taken to a Cassini-based website that allows you to add/remove users, manipulate roles, etc. It was great.&lt;/p&gt;&lt;p&gt;The problem is that when you run an Azure application locally, you&amp;#39;re running the &lt;em&gt;Role&lt;/em&gt;, you&amp;#39;re not running the ASP.NET application. This means that when you launch (at least as of last night when I tried this) the ASP.NET configuration site, you&amp;#39;re going to get a pile of errors all stemming from the fact that information contained in your service configuration file wasn&amp;#39;t found and you&amp;#39;ll get other errors because the &lt;em&gt;local fabric&lt;/em&gt; doesn&amp;#39;t get initialized when you don&amp;#39;t start the app through the role.&lt;/p&gt;&lt;p&gt;So what can you do? If you can&amp;#39;t use the admin site&amp;nbsp; then how do you create an admin user that can then create more users? Lots of really talented people have contributed to the MVC community including a fully functional admin site that uses the membership provider to administer users, etc and you can use this if you want. What I&amp;#39;ve been doing, however, to ensure that I&amp;#39;m never left without &lt;em&gt;some&lt;/em&gt; form of administrative access to my sites is by creating a &lt;em&gt;&lt;strong&gt;root account&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;What I do is in the service definition I declare three settings:&amp;nbsp;RootAccountName, RootAccountPassword, AdminRoleName. I then have code in my application startup that will use the Membership API to create this user with the given password and add them to the Admin Role (and create that role if it isn&amp;#39;t created already). This guarantees me that any time I do a fresh deploy or even wipe my storage account that I&amp;#39;ll still be able to login as an administrator to stage or production and I can keep the root account name different between stage and production.&lt;/p&gt;&lt;p&gt;Again, Azure development is awesome and shares a lot of similarities with traditional ASP.NET development but some things (like the built-in site admin tool) don&amp;#39;t work out of the box via the cloud and so we have to keep these things in mind as we build applications for the cloud.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1123632&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 29 Sep 2009 11:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1123632</guid>
</item>
<item>
 <title>Two Great Tools to Work with SQL Azure</title>
 <link>http://silverlight.sys-con.com/node/1120619</link>
 <description>SQL Azure Migration Wizard is a nice tool. It can connect to (local)Server as well as it supports running scripts. I tried running a script to create &#039;pubs&#039; on SQL Azure. It did manage to bring in some tables and not all. It does not like &#039;USE&#039; in SQL statements(to know what is allowed and what is not you must go to MSDN). For running the script I need to be in Master(but how?, I could not fathom). I went through lots of &quot;encountered some problem, searching for a solution&quot; messages. On the whole it is very easy to use tool.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1120619&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 26 Sep 2009 15:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1120619</guid>
</item>
<item>
 <title>Governmental Cloud Interoperability on The Microsoft Cloud</title>
 <link>http://silverlight.sys-con.com/node/1103341</link>
 <description>Interesting post over at the interoperability @ Microsoft blog on viewing public government data with Windows Azure and PHP. The post outlines a functional example of a governmental cloud interoperability scenario using REST.

The demo is part of Microsoft&#039;s Open Government Data Initiative (OGDI) a cloud-based collection of software assets that enables publicly available government data to be easily accessible. Using open standards and application programming interfaces (API), developers and government agencies can retrieve the data programmatically for use in new and innovative online applications, or mashups.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1103341&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 14 Sep 2009 07:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1103341</guid>
</item>
<item>
 <title>Silverlight 3 Navigation</title>
 <link>http://silverlight.sys-con.com/node/1102016</link>
 <description>I got a lot of great feedback on my post Silverlight 3 Navigation: Dynamically Loaded Pages… Now MEF Powered! Dinesh Chandnani decided to do an update to this sample after looking at the feedback and talking to Nikhil Kothari and Wes Haggard from the MEF dev team.  The goals for this update are:&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1102016&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 12 Sep 2009 17:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1102016</guid>
</item>
<item>
 <title>Windows 7 Drives Desktop Virtualization</title>
 <link>http://silverlight.sys-con.com/node/1102964</link>
 <description>The fact that most organizations did not roll out Vista has given IT departments time to reflect on how they want to manage client computing. Organizations that previously went from one OS migration to the next want to get off the treadmill and get more control over their own destiny.  Desktop virtualization allows them to do this by componentizing the software components of a desktop and bringing them together for a user whenever needed. This removes the bulk of the issues of application compatibility that have made past migrations so difficult and expensive. The move to Windows 7 should be the last time organizations have to do a brute force migration. &lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1102964&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 11 Sep 2009 12:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1102964</guid>
</item>
<item>
 <title>Space Based Programming in .NET</title>
 <link>http://silverlight.sys-con.com/node/1098735</link>
 <description>At a recent Skills Matter event in the UK Goyko Adzic presented  for over an hour on Space Based programming in .Net. The slides are embedded below, but as this blog is syndicated and sometimes the slides get stripped out, you can find them here.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1098735&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 10 Sep 2009 06:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1098735</guid>
</item>
<item>
 <title>SQL Azure Migration Wizard</title>
 <link>http://silverlight.sys-con.com/node/1100000</link>
 <description>SQL Azure Migration Wizard helps you migrate your local SQL Server 2005 / 2008 databases into SQL Azure. The wizard walks you through the selection of your SQL objects, creates SQL scripts suitable for SQL Azure, and allows you to edit / deploy to SQL Azure. The SQL Azure Migration Wizard (SQLAzureMW) will let you identify [...]&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1100000&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 09 Sep 2009 17:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1100000</guid>
</item>
<item>
 <title>Microsoft&#039;s George Moore Talks About Windows Azure</title>
 <link>http://silverlight.sys-con.com/node/1098476</link>
 <description>Check out Charles Torre talking with George Moore (21 year MS veteran) about the what is behind the billing of Azure. Watch the interview on Channel 9 here.
21 year Microsoft veteran and Software Architect George Moore is involved in defining and implementing an effective strategy for taking Windows Azure from technology preview to enterprise business [...]


Related posts:&lt;ul&gt;&lt;li&gt;&lt;a href=&#039;http://www.azurejournal.com/2009/04/windows-azure-geo-location/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: Windows Azure Geo-Location&#039;&gt;Windows Azure Geo-Location&lt;/a&gt; &lt;small&gt;As it was announced at MIX this year, Windows Azure Geo...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#039;http://www.azurejournal.com/2009/01/windows-azure-cloud-outages/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: Windows Azure Cloud Outages&#039;&gt;Windows Azure Cloud Outages&lt;/a&gt; &lt;small&gt;The cloud is crashing too often. However, if you want...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#039;http://www.azurejournal.com/2008/12/i-have-a-bad-feeling-about-windows-azure/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: I Have A Bad Feeling About Windows Azure&#039;&gt;I Have A Bad Feeling About Windows Azure&lt;/a&gt; &lt;small&gt;After more than two &amp;#8220;azure&amp;#8221; months, with lots of new...&lt;/small&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1098476&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 09 Sep 2009 09:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1098476</guid>
</item>
<item>
 <title>Eval JavaScript in a Global Context</title>
 <link>http://silverlight.sys-con.com/node/1098134</link>
 <description>Even though it&#039;s considered bad practice, it&#039;s often handy to eval code in JavaScript.  And in my case, it was simply necessary, since the JSF specification requires eval of scripts. And it&#039;s also necessary to execute those evaluated scripts in the global scope. It&#039;s not as easy as it first looks.

For our first naive implementation, we&#039;d simply used eval(src) in our first pass at the implementation. &lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1098134&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 08 Sep 2009 19:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1098134</guid>
</item>
<item>
 <title>Use Windows Azure Right Now</title>
 <link>http://silverlight.sys-con.com/node/1092795</link>
 <description>Until this week, using the Windows Azure CTP meant signing up and then waiting a couple of days for an invitation code to arrive by email. No more. You can now register for access and receive an invitation code right there on the spot. No email, no waiting, no excuses.
Go register now and build something cool!
(Via [...]


Related posts:&lt;ul&gt;&lt;li&gt;&lt;a href=&#039;http://www.azurejournal.com/2009/04/no-more-invitation-codes-needed-for-net-services-and-slq-services/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: No More Invitation Codes Needed For .NET Services And SLQ Services&#039;&gt;No More Invitation Codes Needed For .NET Services And SLQ Services&lt;/a&gt; &lt;small&gt; No more invitation codes needed for .NET Services and...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#039;http://www.azurejournal.com/2008/12/weekly-cloud-application-showcase/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: Weekly Cloud Application Showcase&#039;&gt;Weekly Cloud Application Showcase&lt;/a&gt; &lt;small&gt;We&amp;#8217;re starting a new weekly cloud application showcase. Every week,...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&#039;http://www.azurejournal.com/2009/08/project-riviera-windows-azure-code-samples/&#039; rel=&#039;bookmark&#039; title=&#039;Permanent Link: Project Riviera - Windows Azure Code Samples&#039;&gt;Project Riviera - Windows Azure Code Samples&lt;/a&gt; &lt;small&gt;Project Riviera is a comprehensive code sample to demonstrate how...&lt;/small&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1092795&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 08 Sep 2009 13:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1092795</guid>
</item>
<item>
 <title>Bridging to Open Ajax</title>
 <link>http://silverlight.sys-con.com/node/1094783</link>
 <description>The Open Ajax Alliance is a standards organization with the mission of ensuring interoperability within Web based Ajaxified applications. One of their standards relates to intercomponent communication - the ability to subscribe and publish messages which can then be picked up by code written by other authors. 

Please note that if you don&#039;t have an interest in Open Ajax, this post may not be especially illuminating - I&#039;ve talked about the addOnEvent function before, even recently. &lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1094783&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 08 Sep 2009 12:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1094783</guid>
</item>
<item>
 <title>Meeting the Constant Challenges of Desktop Management </title>
 <link>http://silverlight.sys-con.com/node/1096961</link>
 <description>Desktop management is a constant challenge for most IT or call center managers. A new update, service pack or totally new version of operating system can cause headaches for even the most experienced IT professional. The challenges with provisioning new versions of operating systems for desktops haven’t changed over the years.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1096961&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 08 Sep 2009 09:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1096961</guid>
</item>
<item>
 <title>Live Framework Developers Get Boned</title>
 <link>http://silverlight.sys-con.com/node/1092793</link>
 <description>When I first read this, I was all &quot;OMFGWTFNoMesh!?!&quot; and exploded in front of my computer. After cleaning the bits of my exploded brain off the keyboard and looking at it again, some of it made sense. They are taking the Live Framework stuff down and theoretically coming up with a better, more in-depth, more unified API for Live. This step is long overdue because for a very, very long time developers have been confused because there is &quot;old live framework&quot; and then &quot;live mesh/live framework&quot; and then there&#039;s Azure and then there&#039;s a bunch of crap that&#039;s been labelled as part of &quot;Live&quot; for which there is no developer API.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1092793&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 08 Sep 2009 09:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1092793</guid>
</item>
<item>
 <title>Silverlight Polling Duplex Channel is NOT a Scalable Solution</title>
 <link>http://silverlight.sys-con.com/node/1022582</link>
 <description>This is great and the programming model for communicating with the Polling Duplex channel is brain-dead simple. It does NOT get any easier to implement push data to a RIA - not in Flash, not in AIR, and certainly not in JavaFX. The problem is that this solution doesn&#039;t scale. On the server side, for each concurrently running Silverlight application (so probably one per concurrent user), there is a full live socket being consumed that will not be relinquished until the client disconnects/closes their browser.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1022582&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 08 Sep 2009 09:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1022582</guid>
</item>
<item>
 <title>OpenXava 3.1.4 Released</title>
 <link>http://silverlight.sys-con.com/node/1086134</link>
 <description>OpenXava 3.1.4 is a framework focused in productivity for developing business Java applications. The idea is that you write only your POJOs annotated with JPA and you get an application ready for production.

With OpenXava, you only need to write your model, POJOs and Java annotations. You do not need to write the view, and the controller (for CRUD, printing, etc) is reused. And from that you&#039;ll have an application for CRUD, report generation in PDF, export to Excel, searching, sorting, validations etc. You only need to write a simple Java class, no XMLs, no JSPs and no code generation.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1086134&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 28 Aug 2009 09:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1086134</guid>
</item>
<item>
 <title>Rich Content with a Database Server</title>
 <link>http://silverlight.sys-con.com/node/1073425</link>
 <description>Enterprises are increasingly being called upon to provide a high level of user experience with compelling and interactive content. Serving enterprise content and data securely to internet / intranet has become a very common necessity and is routinely handled by web servers. Web services technology, on the other hand, addresses the application-to-application transparent interaction over the web using industry standards. Delivery of web services can also be handled by databases which are responsive to HTTP requests. In this article a simple example of serving a static web page containing dynamic content from a SQL Anywhere 11 database server is described. The web page has examples of jQuery, DOJO, as well as an embedded ADOBE flash file. 
&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1073425&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 17 Aug 2009 22:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1073425</guid>
</item>
<item>
 <title>.NET RIA Services: Separate Solution Files</title>
 <link>http://silverlight.sys-con.com/node/1068817</link>
 <description>&lt;p&gt;Still updating my Mix 09 Silverlight 3 + RIA Services talk with more fun stuff.&amp;#160; This time I take up a challenge from &lt;a href=&quot;http://wildermuth.com/&quot;&gt;Mr. Wildermuth&lt;/a&gt;.&amp;#160; Shawn recently raised a very interesting issue with RIA Services&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1068817&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 12 Aug 2009 15:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1068817</guid>
</item>
<item>
 <title>Silverlight 3 RTM and .NET RIA Services wirth NHibernate</title>
 <link>http://silverlight.sys-con.com/node/1064501</link>
 <description>I am having a blast with the series where I am updating my simple Mix 09 Business Application demo.  In this part, I wanted to explore one of the most popular data access solution for .NET – NHibernate.  Many customers finds that the flexibility of NHibernate makes it easier for them to build maintainable and testable applications.  As an aside, I think NHibernate is an excellent example of the vibrant open source community on .NET that I’d like to support.  &lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1064501&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 07 Aug 2009 16:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1064501</guid>
</item>
<item>
 <title>Business Apps Example for Silverlight 3 RTM and .NET RIA Services: Part 18</title>
 <link>http://silverlight.sys-con.com/node/1060230</link>
 <description>Continuing in our discussion of Silverlight 3 and  the update to .NET RIA Services.  I have been updating  the example from my Mix09 talk “building business applications with Silverlight 3”.   RIA Services is very much an extension of the LINQ project.  Effectively you can think of RIA Services as n-tier LINQ.  As such, I thought it would be interesting to show how any of the tons of Linq Providers can be used with RIA Services.  &lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1060230&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 04 Aug 2009 17:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1060230</guid>
</item>
<item>
 <title>Why Silverlight in Web 2.0?</title>
 <link>http://silverlight.sys-con.com/node/1055704</link>
 <description>Silverlight is the next step towards user experience in enriching today’s 2.0 technology. Microsoft Silverlight is a web application framework with added interactivity features and supports .NET language and development tools. It is basically a programming model to develop and distribute Rich Internet Applications (RIAs). It is a free cross browser plug-in for delivering multimedia experiences for the web. It is considered as an Adobe flash alternative.

Silverlight supports Microsoft’s Common Language Runtime (CLR), which allows both designers and developers to run the .NET environment within a browser and do so in a relatively lightweight package
&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1055704&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 31 Jul 2009 07:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1055704</guid>
</item>
<item>
 <title>What’s the Point of Yahoo?</title>
 <link>http://silverlight.sys-con.com/node/1054898</link>
 <description>Let’s be clear on this one: Microsoft isn’t partnering with Yahoo. It’s devouring it. It’s gobbling it up whole like a party snack before moving onto its next conquest. The argument, of course, is that not having to fund search will save Yahoo “hundreds of millions of dollars.”

Well done. If Nike halted the production of shoes it would save itself hundreds of millions of dollars too. The only drawback being they’d have bugger-all to sell. All of which begs the question: is Yahoo nothing more than a brand?&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1054898&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 30 Jul 2009 16:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1054898</guid>
</item>
<item>
 <title>Widget Wars: OpenSocial vs. OpenAjax vs. W3C Widgets</title>
 <link>http://silverlight.sys-con.com/node/1053819</link>
 <description>The popularity of widgets these days has brought to attention the need for interoperability, i.e. for widgets developed for one site or platform to be able to run in other sites and widgets developed by different people to be able to work with each other. 

So much so that I know of at least 3 somewhat competing specifications for widgets. 

There&#039;s the gadget portion of the OpenSocial specs which was adopted from the Google Gadgets work. Then there&#039;s OpenAjax which is more broadly focused on Ajax interoperability but has a lot of pieces geared towards widget interoperability. &lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1053819&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 30 Jul 2009 13:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1053819</guid>
</item>
<item>
 <title>Business Apps Example for Silverlight 3 RTM and .NET RIA Services: Part 12</title>
 <link>http://silverlight.sys-con.com/node/1049931</link>
 <description>More from my Mix09 talk “building business applications with Silverlight 3”. Many customers have told me that they love Entity Framework and LinqToSql, but that they are not always able to use them in their projects just yet. In fact the number of folks that are using ADO.NET DataSet, DataReader, etc. is very high. &lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1049931&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 28 Jul 2009 10:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1049931</guid>
</item>
<item>
 <title>Why Do I Lose My ASP.NET Sessions Due to Constant AppDomain’s Recyclings?</title>
 <link>http://silverlight.sys-con.com/node/1047287</link>
 <description>This might be an “old hat” for most of you experienced ASP.NET Developers out there – but I think it is worth another blog entry as I just ran into the following problem:

Step 1: Migrated an Application from .NET 1.1 to .NET 2.0

I worked with an ASP.NET Application originally developed on ASP.NET 1.1. We upgraded to . NET 2.0 using Visual Studio 2008 and the project conversion wizard. Besides some problems with the conversation of project files and web service proxies – that could all be fixed manually – the conversion went smoothly. The application could be started without any problems and seemed to work fine – at least as long as we did not modify the data in the file based data store. All these transactions seemed to cause the loss of all our current ASP.NET Sessions.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1047287&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 24 Jul 2009 09:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1047287</guid>
</item>
<item>
 <title>Upgrading the default ASP.NET MVC project with IoC and the Unity Controller Factory</title>
 <link>http://silverlight.sys-con.com/node/965589</link>
 <description>The ASP.NET MVC framework is one of the coolest things to happen to ASP.NET since its creation. One of the things that I love about the MVC framework more than anything else is its flexibility. This flexibility allows it to be configured anyway the developer likes, including replacing the factory that creates controllers.

There are two main things that I wanted to accomplish with the Unity integration. The first was that I wanted my controllers to have the objects on which they depend injected into them in standard DI fashion. Secondly, I wanted the controllers themselves to be resolved through the IoC container rather than being tightly coupled by the routing rules. This would allow me to yank in and out different controller implementations if I need to (I figured this would come in quite handy for TDD and unit testing). &lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/965589&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 22 Jul 2009 11:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/965589</guid>
</item>
<item>
 <title>Review: ASP.NET 3.5 AJAX Unleashed</title>
 <link>http://silverlight.sys-con.com/node/1035521</link>
 <description>Nowadays, many web developers have implemented AJAX in their web applications. This enables them to create dynamic, rich web sites. There are numerous resources available on the web for learning ASP.NET 3.5 AJAX, but it is always nice to refer to a book as and when required. In his latest book, ASP.NET 3.5 AJAX Unleashed, [...]


No related posts.&lt;p&gt;&lt;a href=&quot;http://silverlight.sys-con.com/node/1035521&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 22 Jul 2009 10:15:00 EDT</pubDate>
 <guid isPermaLink="true">http://silverlight.sys-con.com/node/1035521</guid>
</item>
</channel>
</rss>
