<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>domgreen.com &#187; Azure</title>
	<atom:link href="http://domgreen.com/tag/azure/feed/" rel="self" type="application/rss+xml" />
	<link>http://domgreen.com</link>
	<description>The geek will inherit the Earth</description>
	<lastBuildDate>Mon, 07 Jun 2010 08:42:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Azure dev Portal, OS Settings</title>
		<link>http://domgreen.com/2010/06/07/azure-dev-portal-os-settings/</link>
		<comments>http://domgreen.com/2010/06/07/azure-dev-portal-os-settings/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 08:42:44 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[dev portal]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/06/07/azure-dev-portal-os-settings/</guid>
		<description><![CDATA[Microsoft have made a small update to the Windows Azure Dev Portal and added the ability to configure the operating system that are running on your nodes and how they are updated.
As you can see in the below image the new magic “OS Settings…” button is now available.
 
Clicking on the “OS Settings…” button takes [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft have made a small update to the Windows Azure Dev Portal and added the ability to configure the operating system that are running on your nodes and how they are updated.</p>
<p>As you can see in the below image the new magic “OS Settings…” button is now available.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/06/image.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/06/image_thumb.png" width="625" height="250" /></a> </p>
<p>Clicking on the “OS Settings…” button takes you to the following screen to configure your operating system options and how it is updated:</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/06/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/06/image_thumb1.png" width="643" height="209" /></a> Hopefully, more updates will start rolling out to the dev portal over the coming months.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/06/07/azure-dev-portal-os-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud Coffee at #dddscot</title>
		<link>http://domgreen.com/2010/05/09/cloud-coffee-at-dddscot/</link>
		<comments>http://domgreen.com/2010/05/09/cloud-coffee-at-dddscot/#comments</comments>
		<pubDate>Sun, 09 May 2010 22:25:56 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[DDDScot]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/05/09/cloud-coffee-at-dddscot/</guid>
		<description><![CDATA[DDD Scotland has been a great weekend of lots of geek-ery, fun and fire. It was also my first experience of speaking at a large conference and gave me the opportunity to talk about some of the things I had learned whilst developing on the Windows Azure platform over the past year, working with the [...]]]></description>
			<content:encoded><![CDATA[<p>DDD Scotland has been a great weekend of lots of geek-ery, fun and fire. It was also my first experience of speaking at a large conference and gave me the opportunity to talk about some of the things I had learned whilst developing on the Windows Azure platform over the past year, working with the European Environmental Agency and RiskMetrics.</p>
<div align="center">
<div style="width: 425px" id="__ss_4029570"><strong style="margin: 12px 0px 4px; display: block"><a title="CloudCoffee" href="http://www.slideshare.net/domgreen/cloudcoffee">CloudCoffee</a></strong><object id="__sse4029570" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=domgreendddscotland-copy-100509161838-phpapp02&amp;stripped_title=cloudcoffee" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed name="__sse4029570" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=domgreendddscotland-copy-100509161838-phpapp02&amp;stripped_title=cloudcoffee" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/domgreen">domgreen</a>.</div>
</p></div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/05/09/cloud-coffee-at-dddscot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Infrastructure Access Layer</title>
		<link>http://domgreen.com/2010/04/25/infrastructure-access-layer/</link>
		<comments>http://domgreen.com/2010/04/25/infrastructure-access-layer/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 16:06:44 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Cloud Ready]]></category>
		<category><![CDATA[IAL]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/04/25/infrastructure-access-layer/</guid>
		<description><![CDATA[The Infrastructure Access Layer, or IAL for short is a simple concept, nothing new, in-fact you have all been using something similar for years when programming against your databases. I have just expanded the concept to the cloud (and the ability to create “cloud ready” applications).
Infrastructure Access Layer (IAL)
&#160;

The Infrastructure Access Layer is simply a [...]]]></description>
			<content:encoded><![CDATA[<p>The <strong>Infrastructure Access Layer</strong>, or <strong>IAL </strong>for short is a simple concept, nothing new, in-fact you have all been using something similar for years when programming against your databases. I have just expanded the concept to the cloud (and the ability to create “cloud ready” applications).</p>
<h2>Infrastructure Access Layer (IAL)</h2>
<p>&#160;</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/04/image4.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb4.png" width="480" height="366" /></a></p>
<p>The Infrastructure Access Layer is simply a way to abstract away your underlying infrastructure from your business logic or processing. This means that I can easily change how my applications interact with the infrastructure just by changing a method within the IAL and the business logic would be none the wiser.</p>
<p>Lets take a simple example, I may be developing an applications that takes work items and processes them. I create a method in the IAL called <strong>GetWorkItem</strong> which will return to my business logic the work item to be processed. This method can then call out to Azure Queues to get a work item, or maybe in the future you will want to switch out where we are getting the work item from, maybe we want to use a web service to call another location, use blob storage to store large work items or listen for a work item to be passed onto a service bus. This can all be dealt with in a single place.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/04/image5.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb5.png" width="400" height="125" /></a></p>
<p>All the business logic knows and cares about is that it is going to call the <strong>GetWorkItem </strong>method and get a work item back, not where it came from or how it received it it.</p>
<h2>Cloud Ready…</h2>
<p>Even with more and more people are moving toward the cloud, there are still companies that aren&#8217;t quite ready to make the jump, but realise that in the near future may have to and want to know how to create applications that will be able to transition easily to the cloud when they are ready.</p>
<p>By programming against the Infrastructure Access Layer companies will be able to make this move a lot smoother, by just replacing the needed classes so that they interact with the cloud rather than the old infrastructure.</p>
<p>A great example of this would be using a messaging system such as MSMQ as part of your on premise application, and then being able to easily switch this out for Windows Azure Queues or the App Fabric Service Bus when moving into the cloud. Having to make minimal if any changes to your business logic.</p>
<h2>Keeping the cloud contained</h2>
<p>As I talked about in my <a href="http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/">last post</a> the cloud can end up getting everywhere and you can soon end up breaking the principle of DRY (Don’t&#160; Repeat Yourself).</p>
<p>With the IAL you can easily keep the cloud contained, letting a minimal number of project have access to the cloud, making SDK upgrades and maintenance easier.</p>
<h2>Is that it?</h2>
<p>It is indeed. As I said at the start, the IAL is a simple concept that allows you to abstract away your underlying infrastructure from your business logic and also help create cloud ready applications for when people are ready to make that push to the cloud.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/04/25/infrastructure-access-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning&#8217;s From The Ash Cloud</title>
		<link>http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/</link>
		<comments>http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 14:17:56 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Ash Cloud]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/</guid>
		<description><![CDATA[I&#8217;m sure everyone is aware of the recent volcanic eruption in Iceland and the cloud of ash that has been spewed out and more importantly the knock on effects this ash cloud has had on not just Europe but the whole world.
 
Clouds can Spread …
The ash cloud started out in Iceland where it eventually [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure everyone is aware of the recent volcanic eruption in Iceland and the cloud of ash that has been spewed out and more importantly the knock on effects this ash cloud has had on not just Europe but the whole world.</p>
<h2><a href="http://domgreen.com/wp-content/uploads/2010/04/image2.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb2.png" width="526" height="386" /></a> </h2>
<h2>Clouds can Spread …</h2>
<p>The ash cloud started out in Iceland where it eventually moved and spread out to cover the UK and Europe, even some reports say that it got as far as Canada. Grounding planes and crippling transport for a number of weeks.</p>
<p>This got me thinking, not all clouds are nice white clouds, some are evil volcanic clouds that actually do more harm than good especially when not contained to where we want them to be.&#160; (the ash cloud would have been fine if it had not strayed into European airspace).</p>
<p>The same is true in your applications, when developing for the cloud you can find that the cloud can end up spreading throughout your applications and if your not careful touching every section of code you write.</p>
<p>This can then be a real problem when the underlying SDK to interact with the cloud changes and you have to go through all of your application looking where to refractor and make changes.</p>
<h2>Contain Your Cloud</h2>
<p>To combat this I contain any code that will access the cloud within few specialised “cloud” projects within my application.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/04/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://domgreen.com/wp-content/uploads/2010/04/image_thumb3.png" width="263" height="189" /></a> </p>
<p>This means that throughout the application if I want to access the Azure message queue, I call a single method from one of my cloud project that will return me a message, meaning that no other part of you application needs to know how to deal with the cloud.</p>
<h2>Added Benefits</h2>
<p>Containing your cloud not only allows you to keep to the DRY principles and code re-use it, makes maintenance of your application easier and can reduce code smells. One of the biggest benefits is that it also allows you to easier test your applications without having to rely on the cloud or developer fabric, as you can create your cloud methods in a mock-able way.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/04/24/learnings-from-the-ash-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paying or Not Paying?</title>
		<link>http://domgreen.com/2010/01/24/paying-or-not-paying/</link>
		<comments>http://domgreen.com/2010/01/24/paying-or-not-paying/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 23:00:35 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[billing]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/01/24/paying-or-not-paying/</guid>
		<description><![CDATA[
I have recently been asked a number of questions both internally and from customers about when you will be billed for Azure usage.
As Eric Nelson’s recent post describes, if you suspend a service you will still be paying this is due to the fact you will still have your application deployed on the server ready [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://domgreen.com/wp-content/uploads/2010/01/azurepayment.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Dom Green - azurepayment" border="0" alt="Dominic Green - azurepayment" src="http://domgreen.com/wp-content/uploads/2010/01/azurepayment_thumb.png" width="661" height="295" /></a>
<p>I have recently been asked a number of questions both internally and from customers about when you will be billed for Azure usage.</p>
<p>As Eric Nelson’s recent <a href="http://geekswithblogs.net/iupdateable/archive/2010/01/19/qanda-when-do-i-get-charged-for-compute-hours-on.aspx" target="_blank">post</a> describes, if you <u><strong>suspend</strong></u> a service you <strong>will still be paying </strong>this is due to the fact you will still have your application deployed on the server ready to start again. With your application utilizing the server others will not be able to provision its usage.</p>
<p>When you select <strong><u>delete</u></strong> you will <strong>stop paying</strong> as you will no longer have servers provisioned for your application and the recourses will be freed up for others to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/01/24/paying-or-not-paying/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Memcached-ed</title>
		<link>http://domgreen.com/2010/01/18/windows-azure-memcached-ed/</link>
		<comments>http://domgreen.com/2010/01/18/windows-azure-memcached-ed/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 07:57:49 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[Memcached]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/01/18/windows-azure-memcached-ed/</guid>
		<description><![CDATA[
Memcached is a distributed cache used to help speeding up large scale web applications by taking pressure off the database. Memcached is used by many of the internets biggest sites, including Twitter, Wikipedia, and YouTube to name just a few.
A distributed cache is one of the things that I’ve been hoping to see released for [...]]]></description>
			<content:encoded><![CDATA[</p>
<p><a href="http://memcached.org/" target="_blank">Memcached</a> is a distributed cache used to help speeding up large scale web applications by taking pressure off the database. Memcached is used by many of the internets biggest sites, including Twitter, Wikipedia, and YouTube to name just a few.</p>
<p>A distributed cache is one of the things that I’ve been hoping to see released for Windows Azure for quite a while, and I am hoping that <a href="http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx" target="_blank">AppFabric Caching</a> will make the move to the cloud in the coming year. However, until that happens I was determined to find a way to get a distributed cache and this great <a href="http://code.msdn.microsoft.com/winazurememcached" target="_blank">Windows Azure Memcached</a> sample showed me how.</p>
<h2>“Brad Fitzpatrick, I love your ass!&quot;</h2>
<p>Sorry, I just couldn&#8217;t help myself. I found this great quote on in the <a href="http://code.google.com/p/memcached/wiki/TutorialCachingStory" target="_blank">Caching Story</a> page of the Memcached wiki.</p>
<p>After installing and setting up Memcached you will be able to cache any data, including data that is retrieved from your database so that the next time you need it you can get it from cache and not need to re-query your database. Therefore, reduce the pressure on the database and earning the love of our DBA.</p>
<h2>Azure Memcached sample</h2>
<p>You can download the sample code for Windows Azure from the <a href="http://code.msdn.microsoft.com/winazurememcached/Release/ProjectReleases.aspx?ReleaseId=3551" target="_blank">codeplex download page</a> you then need to download a Windows friendly version of Memcached (<a href="http://labs.northscale.com/memcached-packages/" target="_blank">here is where I got mine</a>). With the sample code from codeplex just add the memcached exe to your worker roles. You will now be able to run the sample code either on the dev fabric or in the cloud.</p>
<p>One thing to watch out for, the Memcached exe’s seem to take an age to get up and running. I actually left mine to set up overnight (glad I&#8217;m still on a CTP account) as the Memcached Worker Roles were all showing busy for a long time, during which the sample would not work correctly.</p>
<p>After the servers have started up you can easily set and retrieve values from the cache as shown in the screenshots below.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/01/memchacedset.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Dom Green - memchacedset" border="0" alt="Dominic Green - memchacedset" src="http://domgreen.com/wp-content/uploads/2010/01/memchacedset_thumb.png" width="388" height="317" /></a><a href="http://domgreen.com/wp-content/uploads/2010/01/memchacedget.png"><img style="border-right-width: 0px; margin: 0px auto; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Dom Green - memchacedget" border="0" alt="Dominic Green - memchacedget" src="http://domgreen.com/wp-content/uploads/2010/01/memchacedget_thumb.png" width="382" height="320" /></a>&#160; </p>
<h2>&#160;</h2>
<h2>Under the hood</h2>
<p>Now that we have got our distributed cache working lets have a look how the sample code works.</p>
<h3>Memcached Server</h3>
<p>On the server side we set up an internal endpoint that will be used to connect the clients to the Memcached server. When the node is created we launch the Memcached server that we downloaded before, passing in the nodes cache size and endpoint as arguments.</p>
<pre class="brush: c-sharp" name="code">          string arguments = 	&quot;-m &quot; + cacheSize +
				&quot; -l &quot; + endpoint.Address +
				&quot; -p &quot; + endpoint.Port;

            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.CreateNoWindow = false;
            startInfo.UseShellExecute = false;
            startInfo.FileName = &quot;memcached.exe&quot;;
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;
            startInfo.Arguments = arguments;</pre>
<p>This node is now exposing a Memcached server, which can be used by the client nodes to cache data.</p>
<h3>Utilizing Memcached &#8211; Clients</h3>
<p>The client node in the example looks a lot more complicated that it actually is. The most important part is adding the configuration for our memcached client within the settings tab of the node.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/01/image3.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Dom Green - client settings" border="0" alt="Dominic Green - client settings" src="http://domgreen.com/wp-content/uploads/2010/01/image_thumb3.png" width="467" height="255" /></a> </p>
<p>Then comes the interesting bit using the <em>Enyim</em> caching library (others libraries are available) and creating a <em>MemcachedClient </em>object, allowing us to get and set objects in the cache. </p>
<p>Each time a new MemcacedClient is needed the program loads a configuration based upon the data within the settings (picture above) and then loops through all of the instances of memcached servers nodes that we are running in our hosted service getting their endpoint, to add this to the configuration of available servers.</p>
<pre class="brush: c-sharp" name="code">            _endpoints = new Dictionary<string , ipendpoint>();

            foreach (var endpoint in RoleEnvironment.Roles[_memcachedRoleName].Instances)
            {
                foreach (var epi in endpoint.InstanceEndpoints)
                  {
                    if (epi.Key == &quot;memcached&quot;)
                    {

                        _endpoints.Add(epi.Value.RoleInstance.Id.ToString(),epi.Value.IPEndpoint);
                    }
                }
            }</string></pre>
<p>Now that the connection to our memcached nodes we can use the caching library to set and get values in the cache.</p>
<pre class="brush: c-sharp" name="code">AzureMemcached.Client.Store(StoreMode.Set, key, value);          

AzureMemcached.Client.Get(key);</pre>
<p>With this code we now have distributed caching on Windows Azure, and can use the example to build out much bigger applications. <img src='http://domgreen.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> &#160; </p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/01/18/windows-azure-memcached-ed/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Service management API &#8211; REST on REST</title>
		<link>http://domgreen.com/2010/01/11/service-management-api-rest-on-rest/</link>
		<comments>http://domgreen.com/2010/01/11/service-management-api-rest-on-rest/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 23:39:29 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[service management API]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WCF REST]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/01/11/service-management-api-rest-on-rest/</guid>
		<description><![CDATA[In a previous post I mentioned using the Service Management API sample library to call out to the Azure fabric from within a C# application.
The natural progression from here was to get the code working from within a web or worker role instance hosted within the cloud. Using a web role, I used the OnStart [...]]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://domgreen.com/2010/01/06/azure-service-management-api-via-c/" target="_blank">previous post</a> I mentioned using the Service Management API <a href="http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=windowsazuresamples&amp;ReleaseId=3233" target="_blank">sample library</a> to call out to the Azure fabric from within a C# application.</p>
<p>The natural progression from here was to get the code working from within a web or worker role instance hosted within the cloud. Using a web role, I used the OnStart method to set up a IServiceManagent class that could then be shared with the remainder of the classes within the role.</p>
<p>When tracing the hosted services from either the OnStart method or from within default.aspx.cs I could successfully print out all of the services within my account. However, when I set up a WCF REST service to return these hosted services in an array I started to get an error with the connection to the Management API. Giving a argument error stating that a property with the name “httpRequest” is not present. This was even happening when I was using <strong>exactly</strong> the same code as I was elsewhere.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2010/01/image1.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Dom Green - httpRequest" border="0" alt="Dominic Green - httpRequest" src="http://domgreen.com/wp-content/uploads/2010/01/image_thumb1.png" width="642" height="209" /></a> </p>
<p>After a push in the right direction from <a href="http://blogs.msdn.com/simondavies/default.aspx" target="_blank">Simon Davies</a> we found out&#160; that the issue was in the WCF REST service already having an OperationContext from the original REST call before calling out to the Service Management API. This <a href="http://blogs.msdn.com/pedram/archive/2008/07/19/webchannelfactory-inside-a-wcf-service.aspx" target="_blank">handy blog post</a>, help solve all my issues, all that was needed was to create a second OperationalContext before calling the management service.</p>
<pre class="brush: c-sharp" name="code">using(new OperationContextScope((IContextChannel)WebRole.serviceManagement))
{
  var hostedServices = WebRole.serviceManagement.ListHostedServices(subscriberID);

  foreach (HostedService service in hostedServices)
  {
    Trace.TraceInformation(&quot;Hosted Service: {0}&quot;, service.ServiceName);
  }
}
            </pre>
<p>Ta dar … everything now works, we can use the above code snippet to retrieve back all our hosted services by calling our own web role.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/01/11/service-management-api-rest-on-rest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Azure Data Centres open Worldwide?</title>
		<link>http://domgreen.com/2010/01/05/azure-data-centres-open-worldwide/</link>
		<comments>http://domgreen.com/2010/01/05/azure-data-centres-open-worldwide/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 16:38:10 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://domgreen.com/2010/01/05/azure-data-centres-open-worldwide/</guid>
		<description><![CDATA[&#160;&#160;

This afternoon I noticed that I was able to select Europe and Asia regions to deploy my Azure application.
I have yet to see official word of these locations being available, but this must be for the move from CTP to production.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://domgreen.com/wp-content/uploads/2010/01/azureEuropeAsia.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="azureEuropeAsia" border="0" alt="azureEuropeAsia" src="http://domgreen.com/wp-content/uploads/2010/01/azureEuropeAsia_thumb.png" width="604" height="400" /></a>&#160;&#160;
</p>
<p>This afternoon I noticed that I was able to select Europe and Asia regions to deploy my Azure application.</p>
<p>I have yet to see official word of these locations being available, but this must be for the move from CTP to production.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2010/01/05/azure-data-centres-open-worldwide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keeping an Eye on Earth</title>
		<link>http://domgreen.com/2009/11/23/keeping-an-eye-on-the-earth/</link>
		<comments>http://domgreen.com/2009/11/23/keeping-an-eye-on-the-earth/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 13:51:07 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[EyeOnEarth]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[EEA]]></category>
		<category><![CDATA[Eye On Earth]]></category>
		<category><![CDATA[Phones]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">http://domgreen.com/2009/11/23/keeping-an-eye-on-the-earth/</guid>
		<description><![CDATA[Over the past few months I have been part of an extremely exciting project, I am pleased that I am finally able to share it with you.
Eye On Earth is a new application that provides air and water quality to more than 500 million people across Europe, using both measurement stations and modelling data, along [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few months I have been part of an extremely exciting project, I am pleased that I am finally able to share it with you.</p>
<p><strong>Eye On Earth</strong> is a new application that provides air and water quality to more than 500 million people across Europe, using both measurement stations and modelling data, along with social observations from people around not only Europe, but the whole world.</p>
<p>This is one of the first applications to be built and run on Windows Azure and SQL Azure allowing near real-time data to be presented at air stations and in a Europe wide air quality model.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2009/11/image9.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Eye on Earth - Dom Green" border="0" alt="Eye on Earth - Dominic Green" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb8.png" width="643" height="359" /></a></p>
<h3>Environmental issues, Bleeding Edge Solution</h3>
<p>Eye On Earth uses a number of bleeding edge technologies including Windows Azure, SQL Azure and Silverlight to bring a rich user experience that can be scaled on demand whilst still processing all the near real-time data.</p>
<p>One of the first things that you notice when you visit Eye on Earth is how great it looks- it really shows off what you can do with <a href="http://silverlight.net/" target="_blank">Silverlight</a> and the latest <a href="http://www.microsoft.com/maps/developers/" target="_blank">Bing Maps Silverlight Control</a>.</p>
<p><a href="http://www.microsoft.com/windowsazure/" target="_blank">Windows Azure</a> is at the core of Eye On Earth and is not only used to host the front end, but also on the back end sits on it too &#8211; with a number of worker roles that are used to process compute intense tasks, without effecting the performance of the front end.</p>
<p>Eye on Earth is heavily focused on data, all of which is stored and queried using <a href="http://www.microsoft.com/windowsazure/sqlazure/" target="_blank">SQL Azure</a>, along with this the application has large volumes of data being entered at near real-time from the European Environmental Agency.</p>
<h3>But I Don&#8217;t Have Silverlight …</h3>
<p>Eye On Earth will still love you. While it was primarily designed to be run as a Silverlight application, but with not everyone being able to use this technology, a parallel site has also been created using ASP.NET (along with some blood, sweat and tears). The ASP.NET version not only allows you to run the application anywhere &#8211; it gives you the vast majority of the features you would see in the Silverlight version.</p>
<p>Along with ASP.NET the team utilized <a href="http://jquery.com/" target="_blank">jQuery</a> and the recently released Microsoft AJAX Content Delivery Network (<a href="http://www.asp.net/ajaxlibrary/cdn.ashx" target="_blank">CDN</a>) to give all the rich user interactions without the power of Silverlight. When being re-directed to <a href="http://eyeonearth.eu/home.aspx" target="_blank">this version</a> of the site you can hardly tell the difference between what you would have experienced in Silverlight and what you see in ASP.NET</p>
<p>Quick Tip – <a href="http://domgreen.com/2009/11/20/turning-off-silverlight-without-uninstalling/" target="_blank">turn off Silverlight and check it out</a>.</p>
<h3>Lighting up Europe</h3>
<p>&#160;</p>
<p><a href="http://domgreen.com/wp-content/uploads/2009/11/image10.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Light map showing stations across Europe - Dom Green" border="0" alt="Light map showing stations across Europe - Dominic Green" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb9.png" width="618" height="296" /></a> </p>
<p>Eye on Earth has a number of “light maps” that are overlaid on a Bing Map controls to show a visual representation of both the air and water stations as well as user feedback.</p>
<p>Different coloured dots are used to visualise where the measurement stations are and allows users to zoom in and view more fine grained data.</p>
<p>User feedback, for both air and water quality can be turned on and off at the top of the map control and will show a colour coded display of where users have rated the air or water in a given location. These user ratings are coloured differently to the official readings, so that the user will be able view the social rating of given areas.</p>
<p>As more users rate the air and water quality around the world the light map will automatically re-generate and show an updated view of the social ratings.</p>
<p>Each of the light map tiles in the application have been generated using using a number complex algorithms, and processed on Azure worker roles before being stored in blobs for retrieval when a user views the site. This makes it much easier to create the tiles in parallel over multiple nodes, ensuring that the process is both fast and efficient.</p>
<h3>Modelling Air Quality</h3>
<p>&#160;</p>
<p><a href="http://domgreen.com/wp-content/uploads/2009/11/image11.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Air Quality Model - Dom Green" border="0" alt="Air Quality Model - Dominic Green" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb10.png" width="601" height="337" /></a> </p>
<p>You can also see air quality models put together by the European Environmental Agency on an hourly basis. With this model, users can be given a overview of the quality of the air around Europe from either a heat map, or placing push pins. </p>
<p>As this data arrives it is directly input into SQL Azure and processed, and passing the a number of compute tasks to Azure worker roles so that the images are generated correctly and displayed in the fastest possible manner.</p>
<h3>Station to Station</h3>
<p>&#160;<a href="http://domgreen.com/wp-content/uploads/2009/11/image12.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Eye On Earth, measurement stations - Dom Green" border="0" alt="Eye On Earth, measurement stations - Dominic Green" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb11.png" width="587" height="350" /></a> </p>
<p>As you zoom into the map within the Eye on Earth application measurement station appear as icons. Round icons represent water stations and the square icons with a wind-sock represent the air stations.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2009/11/image13.png"><img style="border-right-width: 0px; margin: 10px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Station Data - Dom Green" border="0" alt="Station Data - Dominic Green" align="left" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb12.png" width="264" height="239" /></a>You can mouse over or click on individual measurement stations, to view more in depth data about the given station. On the left hand side the station will show the official EEA rating and a break down of the measurements that give the station this rating. On the right social user ratings are displayed, giving an idea of how the general public rate the air or water quality at the given location.</p>
<p>As you can see in the image this station has a <em>good</em> user rating, but a rating of <em>very good </em>from the EEA.</p>
<p>As more users rate the station or the air in surrounding areas, the word cloud on the left will update giving an idea of keywords that users have selected when rating the quality at this location.</p>
<p>Eye on Earth also displays historical water data on the water stations, allowing the user to see what the station has measured the water to be like over the past couple of years. Along with a yearly update seasonal updates will be displayed, showing how the current water season has been for the location.</p>
<h3>We Live in a Social Environment</h3>
<p>It’s not just the EEA that get to put data on the site – as a user, you can rate the quality of air and water in your region too.</p>
<p>Rating a location is simple, all you need to do is identify how good the air or water quality is at this location and then select one or more rating keywords that best describe the area.</p>
<p>Sharing the data at a given location can be via a number of social networks, including Facebook, Twitter and Live Spaces.</p>
<p><a href="http://domgreen.com/wp-content/uploads/2009/11/image14.png"><img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Eye On Earth, Rate - Dom Green" border="0" alt="Eye On Earth, Rate - Dominic Green" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb13.png" width="282" height="186" /></a><a href="http://domgreen.com/wp-content/uploads/2009/11/image15.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Eye On Earth, Share - Dom Green" border="0" alt="Eye On Earth, Share - Dominic Green" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb14.png" width="279" height="187" /></a> </p>
<h3>&#160;</h3>
<h3>I Can See my House from Up Here</h3>
<p>Viewing the air data within Europe is not restricted only to the measurement stations within the application. Using the air model we allow users to place pushpins anywhere on the map, and if this is within the data areas for the model it will return what the quality of air is at that location.</p>
<p>The user will then be able to rate or share the information at this pushpin location as if they had viewed the data from a measurement station.</p>
<p>If the pushpin is placed outside of the air model for Europe no air data will be retrieved, however you will still be able to rate the air at the location, using the rate button. This allows something that doesn&#8217;t exit anywhere else &#8211; a worldwide air quality indication generated by users.</p>
<h3>Data On the Go, via SMS<a href="http://domgreen.com/wp-content/uploads/2009/11/image16.png"><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SMS - Dom Green" border="0" alt="SMS - Dominic Green" align="right" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb15.png" width="278" height="160" /></a></h3>
<p>Users wont always be in the comfort of their own home or workplace&#160; and therefore not always have access to a computer – and so it was a logical step to build a mobile solution into the application for the user to get data on the move.</p>
<p>Eye On Earth has a SMS service that allows users to text in their location, and retrieve an automated response showing what the quality is like at the given location.&#160; </p>
<h3>Je Ne Comprends Pas</h3>
<p>It’s always easy to forget that English isn’t everyone’s first language – and over the next couple of weeks we’ll be adding 24 additional languages to the Eye On Earth site, enabling more and more individuals to benefit from the site via Silverlight, ASP.NET and SMS.</p>
<p>Eye on Earth will automatically detect your locale as it loads, and switch not only to the correct language but also giving you localized map controls.</p>
<h3>And Finally…</h3>
<p>Eye on Earth is a stunning, elegant and full featured application that allows businesses, governments and individuals from around Europe to view and rate the air and water quality where they are, using the latest technologies such as Azure and Silverlight. All of this data contributes to the biggest, most up-to-date Europe wide map of air and water quality publicly available on the Internet.</p>
<p>Go to <a href="http://www.eyeonearth.eu">www.eyeonearth.eu</a> and try the site yourself.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2009/11/23/keeping-an-eye-on-the-earth/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>NxtGenUG Oxford &#8211; January 2010</title>
		<link>http://domgreen.com/2009/11/23/nxtgenug-oxford-january-2010/</link>
		<comments>http://domgreen.com/2009/11/23/nxtgenug-oxford-january-2010/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 00:46:30 +0000</pubDate>
		<dc:creator>domgreen</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[NxtGenUG]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://domgreen.com/2009/11/23/nxtgenug-oxford-january-2010/</guid>
		<description><![CDATA[ The guys over at NxtGenUG Oxford have invited me along on the 5th of January 2010 to give a talk on Windows Azure and to share what I have learned over the past couple of months whilst developing on the platform.
Along with my talk, Ben Nunney will be giving a presentation on Powershell for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://domgreen.com/wp-content/uploads/2009/11/image8.png"><img style="border-right-width: 0px; margin: 0px auto 10px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Oxford - Dom Green" border="0" alt="Oxford - Dominic Green" src="http://domgreen.com/wp-content/uploads/2009/11/image_thumb7.png" width="614" height="207" /></a> The guys over at <a href="http://www.nxtgenug.net/Region.aspx?RegionID=3" target="_blank">NxtGenUG Oxford</a> have invited me along on the 5th of January 2010 to give a talk on Windows Azure and to share what I have learned over the past couple of months whilst developing on the platform.</p>
<p>Along with my talk, <a href="http://www.theopenbracket.net/" target="_blank">Ben Nunney</a> will be giving a presentation on Powershell for developers. Showing how developers can make PowerShell work for them, whilst proving that the command line is still cool.</p>
<p>Here is a breakdown of the event with overviews of each talk:</p>
<h3>Cloud Coffee – Dominic Green</h3>
<p>Cloud Coffee is the latest in a wide range of coffee shops on the high-street. What makes Cloud Coffee different is that they use latest “cloud” principles, keeping costs low by using utility based staffing, maintaining a decoupled working environment and ensuring good scalability to meet customer demand. Cloud Coffee has very quickly risen to high street fame.    <br />This analogy will help you understand how things work in the cloud, specifically Windows Azure. During this talk Dominic will elaborate and expand upon on the concept of ‘Cloud Coffee’, sharing some of the lessons he learned whilst developing one of the first production applications for the Windows Azure Platform.</p>
<h3>The Power of PowerShell – Ben Nunney</h3>
<p>It&#8217;s a long time since DOS ruled the world, and the classic command shell was in serious need of an upgrade. Enter PowerShell &#8211; focusing on accuracy, extensibility, and congruent syntax, it is one of the most powerful and misunderstood things to come out of Microsoft in recent years. Who says a command shell can’t be interesting? By the time the session is over you’ll have seen what PowerShell can do for you as a developer, know exactly how to get there, and who knows &#8211; you may have even fallen in love with the command line all over again.</p>
<p>You can find out more information and register for the event <a href="http://www.nxtgenug.net/ViewEvent.aspx?EventID=260" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://domgreen.com/2009/11/23/nxtgenug-oxford-january-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
