Neudesic Blogs

Passion for Innovation

Full Suite of Azure Storage Examples

David Pallmann has posted a full set of Azure Storage examples up on CodePlex. Very, very cool - REST and .NET examples are delivered side-by-side. Read more on his blog.

Posted: Feb 21 2011, 08:28 by mickey.williams | Comments (0) RSS comment feed

Tags:
Categories: Neudesic Main | Azure

New Azure AppFabric Labs Release

If you’re working with Azure, you really should be checking out AppFabric labs to get early exposure to new features. There’s a new preview for potential new features in the Azure AppFabric Access Control Service (ACS), including new support for Google, Yahoo, and Facebook identity providers. I have a blog post coming, but for more info see Justin Smith’s posting.

Posted: Aug 11 2010, 03:23 by mickey.williams | Comments (0) RSS comment feed

Tags:
Categories: Azure | Neudesic Main

Uninstalling the Windows Phone 7 CTP

I have an older touch-screen laptop with an early Windows Phone CTP installed. The control-panel uninstaller is broken - and won't uninstall unless you have the orginal media. Like I have media that I used to install something last week, let alone months ago. Anyway, I found a great blog post with a solution - just browse to the installation folder and manually uninstall by right-clicking vs_setup.exe. The linked blog post has more details.

Posted: Jul 30 2010, 05:31 by mickey.williams | Comments (0) RSS comment feed

Tags:
Categories: Neudesic Main | Windows Phone 7

The Command Query Separation Principle

A fundamental pattern in Eiffel is the principle of Command Query Separation (also known as CQS). The idea behind CQS is that you separate class operations into two categories:

  • Commands that mutate state on an instance of the class
  • Queries that expose information about the instance

Commands and queries are different; although a successful command will usually alter the state of the targeted object, a query has no side-effects.

Although it’s a bedrock feature in Eiffel, there is no reason why it can’t be used in many languages, such as C#, and queries can be expressed in C# with a read-only property, such as:

public class Account
{
    /// <summary>
    /// What is the current balance?
    /// </summary>
    /// <value>The balance.</value>
    public decimal Balance { get; }
}

Note that a query is typically commented as a question (in my code, anyway). In those cases where an instance must be able to change state via the property you can declare the setter with more restrictive access:

public class Account
{
    /// <summary>
    /// What is the current balance?
    /// </summary>
    /// <value>The balance.</value>
    public decimal Balance { get; private set; }
}

The advantage of CQS is that queries can be executed without side-effects – multiple queries can be executed without any concern for mutating the object state; and query results can be cached (at least between command invocations.) By providing a clear separation between the operations that do (and do not) impact object state, other advanced patterns such as Design by Contract are enabled.

Posted: Jul 29 2010, 07:18 by mickey.williams | Comments (0) RSS comment feed

Tags:
Categories: Custom Application Development | Neudesic Main

July 2010 App Fabric Release

There's an updated version of Azure App Fabric released yesterday - read more about it and get download details on Zane Adam's blog here. In addition to .NET 4.0 support, this release supports Silverlight development by enabling cross-domain calls (this also helps something called Flash, which seems to be a SL clone.) This was a feature initially rolled out to the community as part of the App Fabric Labs project - read more about App Fabric Labs here.

Posted: Jul 02 2010, 01:48 by mickey.williams | Comments (0) RSS comment feed

Tags:
Categories: Azure | Connected Systems | Custom Application Development | Headlines | Neudesic Main

Heading up to Redmond

I’ll be in Redmond most of the week of 7/5 for some meetings at Microsoft about this and that. If you’re in the area drop me a line and we can get together to discuss Azure, ApFabric, or other distributed computing topics. I’ve also got The David Pallmann™ with me in case you need someone intelligent in addition to me.

Posted: Jul 01 2010, 05:26 by mickey.williams | Comments (0) RSS comment feed

Tags:
Categories: Connected Systems | Custom Application Development | General | Neudesic Main | Azure

Clustered Indexes Required for SQL Azure

There’s a great explanation about why we need clustered indexes for SQL Azure tables over at the SQL Azure team blog. Short answer? It’s because the platform is keeping three replicas of the data, and the index is required for the replication.

http://blogs.msdn.com/b/sqlazure/archive/2010/05/12/10011257.aspx

Posted: Jul 01 2010, 05:23 by mickey.williams | Comments (0) RSS comment feed

Tags:
Categories: Custom Application Development | Headlines | Neudesic Main | Azure

About Mickey Williams


RSS Feed

Tags

Categories

Archive

Blogroll

Neudesic Social Media

Follow Neudesic on Twitter Follow Neudesic on Facebook Neudesic Neudesic