Bernie Cook's Blog

Azure, C#, .NET, Architecture & Related Tech News

Leave a comment

A Simple Differentiation of IaaS, PaaS & SaaS

CloudGetting a handle on how IaaS, PaaS and SaaS differ isn’t particularly difficult but I have to say I don’t think I’ve ever seen it illustrated, or explained, as well as this slide from the Windows Azure Jump Start tutorials on Channel 9.

Hopefully this helps clarify the difference between the three, particularly in light of the Windows Azure Infrastructure Services release in mid-April (2013) Continue reading


Leave a comment

Distributed Design: Applying the Command Pattern to Azure’s Web/Worker Roles

WorkerRoleOne place I regularly come across the use of the Command pattern is when working on Azure projects that employ worker roles to execute long running tasks initiated by a scheduled process or user action. The Command pattern lends itself to the distributed nature of these solutions with very little plumbing required when working in Azure.

The following post provides a sample application; CommandQueue which contains 3 examples of a web and worker role utilising the Command pattern. The web role is designed to provide a rapid responses to the user, offloading any lengthy operations to the worker role. The source code for the CommandQueue solution is available on GitHub so feel free to clone, compile and execute it while working through this post.

Continue reading


Azure Visio Shapes & Stencils

Azure VisioA few years ago, David Pullman posted a blog entitled “Windows Azure Design Patterns, Part 1: Architectural Symbols“, within which he released a large number of very useful symbols to represent all of the artifacts, resources, etc. that can be found in Azure. He was kind enough to release the icons in EMF and PNG format but not as Visio shapes. Thankfully a generous software architect by the name of Ricardo later released the same symbols for Visio. In addition, Simon Hart has also made available a number of additional Azure Visio shapes more aligned with the Microsoft Patterns & Practice’s look and feel.

These Visio shapes are an incredibly useful resource for those architects wishing to construct Azure diagrams for a variety of different scenarios. Unfortunately Microsoft hasn’t released any shapes or stencils for the Azure space, even in the latest release of Visio 2013. Shape samples and links to the aforementioned resources are provided below. Continue reading


Repository Caching with Aspect Oriented Programming

Repository Caching with Aspect Oriented ProgrammingThis post provides a walkthrough of how to implement basic cache handling at the repository layer using Aspect Oriented Programming (AOP). I’ve chosen PostSharp’s AOP framework and built a relatively simple Domain-Driven Design (DDD) solution in .NET to illustrate how it all ties together.

I want delve into too much AOP detail up front other than to reiterate the usual AOP pitch – that it’s an incredibly useful programming paradigm which addresses cross-cutting coding concerns within application development. What does that mean in English? Once you’ve mastered the basic AOP terminology and implementation requirements you can use it to remove a lot of duplicate code that appears throughout your solution. If you’re not familiar with AOP then take a quick moment to watch one of PostSharp’s many introductory screencasts or browse through their documentation. Keep in mind that AOP isn’t OOP as you work your way through the following code, it complements OOP extremely well but doesn’t follow object-oriented principles. Continue reading


Distributed Caching in Azure – Cache Worker Role

In June 2012 version 1.7 of the Windows Azure Platform release was introduced and with it came the new cache worker role. This provided another distributed cache management option for Azure developers alongside the likes of AppFabric Caching, or Memcached, to name a few. There are a number of ways to utilise and configure cache worker roles and this post covers one of them, providing a step by step guide to creating a new cloud solution where a web and worker role (cache clients) share the same cache worker role (cache cluster). Continue reading

Leave a comment

Async in Windows Azure

At the time of writing (November 2012) Windows Azure C# development is only available with the .NET 3.5 and 4.0 Frameworks. So what happens when you want to implement some asynchronous server-based programming using the .NET 5.0 Async language features?

Microsoft’s answer is to install the Async Targeting Pack for Visual Studio 2012. The only prerequisite is that you’re developing with Visual Studio 2012. Continue reading

1 Comment

SQL 2005 to SQL Azure Migration

Over the last few weeks I have, amongst other things, been migrating an n-tiered ASP.NET 3.5/SQL 2005 solution to Windows Azure. Usually when I hear the “migration” word I curl into a fetal position and start rocking in a dark corner but I finally had a chance to move the last of a set of solutions I manage to Azure so I was more relieved than anything.

After working through a number of ASP.NET migration issues, i.e. migrating over to the Azure session state provider and caching service, etc. I could finally see light at the end of the tunnel. I wasn’t overly concerned about the SQL migration as my database wasn’t overly complex in the scheme of things. The following post is a collection of steps I followed to successfully migrate the SQL database to the cloud. Continue reading