<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>azurecontrib Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/azurecontrib/Wiki/View.aspx?title=Home</link><description>azurecontrib Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://azurecontrib.codeplex.com/wikipage?version=12</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;A contrib project for Microsoft Windows Azure. This project aims to make life as a Cloud Developer easier and provide easily adopted added value to your Cloud Computing and Cloud Storage Applications.&lt;br /&gt;&lt;br /&gt;Please &lt;b&gt;note&lt;/b&gt; that this is not an official Microsoft release! This is an open source community contribution project to Windows Azure.&lt;br /&gt;&lt;br /&gt;Any one who loves...&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=azurecontrib&amp;DownloadId=316945" alt="WindowsAzureLogo.png" title="WindowsAzureLogo.png" /&gt;&lt;br /&gt;&lt;br /&gt;...may download, enjoy, ammend and even upload to this project either as a contributor or simply by contacting the admins and send their code!&lt;br /&gt;&lt;br /&gt;Have fun on Windows Azure!&lt;br /&gt;
&lt;h2&gt;Newer release&lt;/h2&gt;
Built on the Windows Azure SDK 1.6 and .NET Framework 3.5 there is now a project called &lt;a href="http://WindowsAzure.Storage.Contrib" class="externalLink"&gt;http://nuget.org/packages/WindowsAzure.Storage.Contrib&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. The code will soon be pushed to this location and the other packages for RunTime, Diagnostics and Drive will follow.&lt;br /&gt;
&lt;h2&gt;Older release&lt;/h2&gt;
There is now an older AzureContrib release with a NuGet: &lt;a href="http://nuget.org/List/Packages/AzureContrib" class="externalLink"&gt;AzureContrib NuGet&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;!*&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Tue, 20 Dec 2011 17:25:15 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20111220052515P</guid></item><item><title>Updated Wiki: Home</title><link>http://azurecontrib.codeplex.com/wikipage?version=11</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;A contrib project for Microsoft Windows Azure. This project aims to make life as a Cloud Developer easier and provide easily adopted added value to your Cloud Computing and Cloud Storage Applications.&lt;br /&gt;
&lt;h2&gt;Current release&lt;/h2&gt;
There is now a new AzureContrib project with just a few features. This new project will be a wash of the old project which is still in the source code. More to follow... until then:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;There is also a NuGet for this project: &lt;a href="http://nuget.org/List/Packages/AzureContrib" class="externalLink"&gt;AzureContrib NuGet&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;!&lt;/b&gt;&lt;br /&gt;
&lt;h2&gt;Old release&lt;/h2&gt;
The old release of AzureContrib aims to make your Windows Azure Applications Extensible as well as Persistence Ignorant for Cloud Storage (v2) and Testable (v1). This release uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Read more on the release page:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/wikipage?title=Extensible%20Windows%20Azure&amp;referringTitle=Home"&gt;Extensible Windows Azure&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;h2&gt;Previous releases&lt;/h2&gt;
&lt;a href="http://azurecontrib.codeplex.com/wikipage?title=Azure%20Contrib%20Version%202&amp;referringTitle=Home"&gt;Persistence Ignorant Windows Azure&lt;/a&gt;&lt;br /&gt;&lt;a href="http://azurecontrib.codeplex.com/wikipage?title=Testable%20Windows%20Azure&amp;referringTitle=Home"&gt;Testable Windows Azure&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Future release&lt;/h2&gt;
vNext of AzureContrib is slated to include a dashboard app that enables you to modify the work priority order of worker roles at run-time.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Wed, 27 Apr 2011 20:48:32 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110427084832P</guid></item><item><title>Updated Wiki: Home</title><link>http://azurecontrib.codeplex.com/wikipage?version=10</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;A contrib project for Microsoft Windows Azure. This project aims to make life as a Cloud Developer easier and provide easily adopted added value to your Cloud Computing and Cloud Storage Applications.&lt;br /&gt;
&lt;h2&gt;Current release&lt;/h2&gt;
The current release of AzureContrib aims to make your Windows Azure Applications Extensible as well as Persistence Ignorant for Cloud Storage (v2) and Testable (v1). This release uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Read more on the release page:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/wikipage?title=Extensible%20Windows%20Azure&amp;referringTitle=Home"&gt;Extensible Windows Azure&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;h2&gt;Previous releases&lt;/h2&gt;
&lt;a href="http://azurecontrib.codeplex.com/wikipage?title=Azure%20Contrib%20Version%202&amp;referringTitle=Home"&gt;Persistence Ignorant Windows Azure&lt;/a&gt;&lt;br /&gt;&lt;a href="http://azurecontrib.codeplex.com/wikipage?title=Testable%20Windows%20Azure&amp;referringTitle=Home"&gt;Testable Windows Azure&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Future release&lt;/h2&gt;
vNext of AzureContrib is slated to include a dashboard app that enables you to modify the work priority order of worker roles at run-time.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Tue, 01 Dec 2009 21:12:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091201091201P</guid></item><item><title>Updated Wiki: Extensible Windows Azure</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Extensible Windows Azure&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Extensible Windows Azure&lt;/h1&gt;
The main addition in this release compared to &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=previous%20releases&amp;referringTitle=Home"&gt;previous releases&lt;/a&gt; is the addition of Work Services.&lt;br /&gt;
&lt;h2&gt;Work Services&lt;/h2&gt;
We have been using &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fmef.codeplex.com%2f&amp;referringTitle=Home"&gt;Managed Extensibility Framework &amp;#40;MEF&amp;#41;&lt;/a&gt; throughout this project. Up until now it's mostly been used for &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fen.wikipedia.org%2fwiki%2fDependency_injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt; purposes. MEF in itself is not built to be a DI Container but solves the extensibility challenge by way of using this technique. For DI we could have used any of the many DI containers out there. In &lt;i&gt;this&lt;/i&gt; release, however, the use of MEF and the rationale behind it becomes more apparent.&lt;br /&gt;&lt;br /&gt;The current worker role in Windows Azure works by way of entering a perpetual loop, waiting for more work and executing it as it comes in. This is the canonical example for extensibility!&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;override&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Start()
{
   &lt;span style="color:Blue;"&gt;while&lt;/span&gt; (&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)
   {
      &lt;span style="color:Green;"&gt;// do work here&lt;/span&gt;
   }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;The problem arises when you want to begin adding more than one task to your loop or even N tasks. The main app code references all other code and the maintenance of this little hamster wheel soon becomes a nightmare.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;override&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Start()
{
   &lt;span style="color:Blue;"&gt;while&lt;/span&gt; (&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)
   {
      &lt;span style="color:Green;"&gt;// do work 1&lt;/span&gt;
      &lt;span style="color:Green;"&gt;// or work 2&lt;/span&gt;
      &lt;span style="color:Green;"&gt;// or work 3&lt;/span&gt;
     &lt;span style="color:Green;"&gt;// [...]&lt;/span&gt;
   }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Enter the WorkService! ;~)&lt;br /&gt;
&lt;h3&gt;Work Service&lt;/h3&gt;
The work service turns the above code mess into pure elegance:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;protected&lt;/span&gt; &lt;span style="color:Blue;"&gt;override&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnStart()
{
   &lt;span style="color:Blue;"&gt;while&lt;/span&gt; (&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)
   {
      &lt;span style="color:Blue;"&gt;var&lt;/span&gt; work = WorkService.GetWork();
      RoleStatus = work.DoWork();
   }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;But wait a minute that's just hiding the problem away somewhere else! And what if there is no work?&lt;br /&gt;&lt;br /&gt;To answer the question first; there is always work. If there isn't the work is an &amp;quot;idle&amp;quot; work task that puts the worker to sleep for a short while.&lt;br /&gt;And, no, this WorkService does not hide the problem away somewhere else. The WorkService uses &lt;b&gt;MEF&lt;/b&gt; to import all the available work and sort it in a good and prioritized order!&lt;br /&gt;&lt;br /&gt;Inside the work service the main .GetWork() method looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
[Import]
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; IWorkSchedulerProvider WorkSchedulerProvider { &lt;span style="color:Blue;"&gt;get&lt;/span&gt;; &lt;span style="color:Blue;"&gt;set&lt;/span&gt;; }

[Import]
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; IRoleManager RoleManager { &lt;span style="color:Blue;"&gt;get&lt;/span&gt;; &lt;span style="color:Blue;"&gt;set&lt;/span&gt;; }

[ImportMany]
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; IEnumerable&amp;lt;Lazy&amp;lt;IWork, IWorkMetadata&amp;gt;&amp;gt; Works { &lt;span style="color:Blue;"&gt;get&lt;/span&gt;; &lt;span style="color:Blue;"&gt;set&lt;/span&gt;; }

&lt;span style="color:Blue;"&gt;public&lt;/span&gt; IWork GetWork()
{
	&lt;span style="color:Blue;"&gt;var&lt;/span&gt; workScheduler = WorkSchedulerProvider.GetCurrentWorkScheduler();
	&lt;span style="color:Blue;"&gt;var&lt;/span&gt; orderedWorks = workScheduler.ScheduleWork(Works);

	&lt;span style="color:Blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; lazyWork &lt;span style="color:Blue;"&gt;in&lt;/span&gt; orderedWorks)
	{
		&lt;span style="color:Blue;"&gt;if&lt;/span&gt; (lazyWork.Value.HasWork)
		{
			&lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; WorkTemplate(lazyWork, RoleManager);
		}
	}
	&lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; IdleWork(RoleManager);
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;There is a blog post here that explains this code snippet further: &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fblog.noop.se%2farchive%2f2009%2f09%2f07%2fextensible-windows-azure-projects-using-mef.aspx&amp;referringTitle=Home"&gt;Extensible Windows Azure projects using MEF&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;One-Time Work Service&lt;/h3&gt;
The One-Time Work Serivce is a staeful work service that will execute a specific set of IOneTimeWork tasks once (per Windows Azure Role instance).&lt;br /&gt;
&lt;h2&gt;Sample&lt;/h2&gt;
The release also comes with a small sample (default.aspx). This consists of a page that can add (fake) work to two different work queues and a worker role that picks up work tasks to run. The tasks are all sleep tasks. The interesting thing to check out in the sample apart from the code is the usage of logging that shows the roles staring up and logging IOneTimeWork and also shows each IWork task created and executed. The sample has two work tasks “A” and “B” where the first one is more prioritized in the worker.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32588"&gt;Download this release&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 22:09:31 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Extensible Windows Azure 20090906100931P</guid></item><item><title>Updated Wiki: Azure Contrib Version 2</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Azure Contrib Version 2&amp;version=9</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Persistence Ignorant Windows Azure&lt;/h1&gt;
This release aims to add the ability to work with Windows Azure Applications that leverage Cloud Storage to remain testable. It uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to achieve this end.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.ServiceRuntime&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.ServiceRuntime&lt;/a&gt;: This part of the project contains additions to the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.aspx" class="externalLink"&gt;Microsoft.ServiceHosting.ServiceRuntime Namespace&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.StorageClient&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.StorageClient&lt;/a&gt;: This part of the project implements the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on Windows Azure.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20posts&amp;referringTitle=Home"&gt;Blog posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Links&amp;referringTitle=Home"&gt;References&amp;#47;Dependencies&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31916"&gt;Download this release&lt;/a&gt;&lt;/b&gt; (however there is a newer release that also includes this)&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 19:30:11 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Azure Contrib Version 2 20090906073011P</guid></item><item><title>Updated Wiki: Extensible Windows Azure</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Extensible Windows Azure&amp;version=1</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Extensible Windows Azure&lt;/h1&gt;
The main addition in this release compared to &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=previous%20releases&amp;referringTitle=Home"&gt;previous releases&lt;/a&gt; is the addition of Work Services.&lt;br /&gt;
&lt;h2&gt;Work Services&lt;/h2&gt;
We have been using &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fmef.codeplex.com%2f&amp;referringTitle=Home"&gt;Managed Extensibility Framework &amp;#40;MEF&amp;#41;&lt;/a&gt; throughout this project. Up until now it's mostly been used for &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fen.wikipedia.org%2fwiki%2fDependency_injection&amp;referringTitle=Home"&gt;Dependency Injection&lt;/a&gt; purposes. MEF in itself is not built to be a DI Container but solves the extensibility challenge by way of using this technique. For DI we could have used any of the many DI containers out there. In &lt;i&gt;this&lt;/i&gt; release, however, the use of MEF and the rationale behind it becomes more apparent.&lt;br /&gt;&lt;br /&gt;The current worker role in Windows Azure works by way of entering a perpetual loop, waiting for more work and executing it as it comes in. This is the canonical example for extensibility!&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;override&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Start()
{
   &lt;span style="color:Blue;"&gt;while&lt;/span&gt; (&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)
   {
      &lt;span style="color:Green;"&gt;// do work here&lt;/span&gt;
   }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;The problem arises when you want to begin adding more than one task to your loop or even N tasks. The main app code references all other code and the maintenance of this little hamster wheel soon becomes a nightmare.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;"&gt;override&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Start()
{
   &lt;span style="color:Blue;"&gt;while&lt;/span&gt; (&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)
   {
      &lt;span style="color:Green;"&gt;// do work 1&lt;/span&gt;
      &lt;span style="color:Green;"&gt;// or work 2&lt;/span&gt;
      &lt;span style="color:Green;"&gt;// or work 3&lt;/span&gt;
     &lt;span style="color:Green;"&gt;// [...]&lt;/span&gt;
   }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Enter the WorkService! ;~)&lt;br /&gt;
&lt;h3&gt;Work Service&lt;/h3&gt;
The work service turns the above code mess into pure elegance:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;protected&lt;/span&gt; &lt;span style="color:Blue;"&gt;override&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; OnStart()
{
   &lt;span style="color:Blue;"&gt;while&lt;/span&gt; (&lt;span style="color:Blue;"&gt;true&lt;/span&gt;)
   {
      &lt;span style="color:Blue;"&gt;var&lt;/span&gt; work = WorkService.GetWork();
      RoleStatus = work.DoWork();
   }
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;But wait a minute that's just hiding the problem away somewhere else! And what if there is no work?&lt;br /&gt;&lt;br /&gt;To answer the question first; there is always work. If there isn't the work is an &amp;quot;idle&amp;quot; work task that puts the worker to sleep for a short while.&lt;br /&gt;And, no, this WorkService does not hide the problem away somewhere else. The WorkService uses &lt;b&gt;MEF&lt;/b&gt; to import all the available work and sort it in a good and prioritized order!&lt;br /&gt;&lt;br /&gt;Inside the work service the main .GetWork() method looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
[Import]
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; IWorkSchedulerProvider WorkSchedulerProvider { &lt;span style="color:Blue;"&gt;get&lt;/span&gt;; &lt;span style="color:Blue;"&gt;set&lt;/span&gt;; }

[Import]
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; IRoleManager RoleManager { &lt;span style="color:Blue;"&gt;get&lt;/span&gt;; &lt;span style="color:Blue;"&gt;set&lt;/span&gt;; }

[ImportMany]
&lt;span style="color:Blue;"&gt;public&lt;/span&gt; IEnumerable&amp;lt;Lazy&amp;lt;IWork, IWorkMetadata&amp;gt;&amp;gt; Works { &lt;span style="color:Blue;"&gt;get&lt;/span&gt;; &lt;span style="color:Blue;"&gt;set&lt;/span&gt;; }

&lt;span style="color:Blue;"&gt;public&lt;/span&gt; IWork GetWork()
{
	&lt;span style="color:Blue;"&gt;var&lt;/span&gt; workScheduler = WorkSchedulerProvider.GetCurrentWorkScheduler();
	&lt;span style="color:Blue;"&gt;var&lt;/span&gt; orderedWorks = workScheduler.ScheduleWork(Works);

	&lt;span style="color:Blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:Blue;"&gt;var&lt;/span&gt; lazyWork &lt;span style="color:Blue;"&gt;in&lt;/span&gt; orderedWorks)
	{
		&lt;span style="color:Blue;"&gt;if&lt;/span&gt; (lazyWork.Value.HasWork)
		{
			&lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; WorkTemplate(lazyWork, RoleManager);
		}
	}
	&lt;span style="color:Blue;"&gt;return&lt;/span&gt; &lt;span style="color:Blue;"&gt;new&lt;/span&gt; IdleWork(RoleManager);
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;There is a blog post here that explains this code snippet further:&lt;br /&gt;
&lt;h3&gt;One-Time Work Service&lt;/h3&gt;
The One-Time Work Serivce is a staeful work service that will execute a specific set of IOneTimeWork tasks once (per Windows Azure Role instance).&lt;br /&gt;
&lt;h2&gt;Sample&lt;/h2&gt;
Sample description to come.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32588"&gt;Download this release&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 19:28:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Extensible Windows Azure 20090906072842P</guid></item><item><title>Updated Wiki: Testable Windows Azure</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Testable Windows Azure&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Testable Windows Azure&lt;/h1&gt;This project aims to make the Windows Azure SDK more testable by enhancing The Windows Azure Project Template with &lt;a href="http://codeplex.com/mef" class="externalLink"&gt;Managed Extensibility Framework (MEF)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The goal is to 1) Enable testability of Windows Azure using MEF, 2) Use the same technology to enable persistence ignorance and again using the same technology 3) make Windows Azure extensible.&lt;br /&gt;&lt;br /&gt;The following blog post goes through everything in detail: &lt;a href="http://blog.noop.se" class="externalLink"&gt;Windows Azure + Managed Extensibility Framework (MEF) = true&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;MEF&lt;/h2&gt;In order to run this code you also need to download &lt;a href="http://codeplex.com/mef" class="externalLink"&gt;Managed Extensibility Framework (MEF)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; Preview 5 from the MEF site. Since MEF is under &lt;a href="http://msdn.microsoft.com/en-us/library/cc707818.aspx" class="externalLink"&gt;MSPL license&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and this project is under a different license you have to compose these things your self locally on your machine. Furthermore it makes no sense to upload code in duplicate.&lt;br /&gt;
&lt;h2&gt;The Project Release&lt;/h2&gt;
The release is not very big. It contains one main contract IRoleManager, one supporting class EventLogName and a contract implementation RoleManagerService. Also it contains two base classes to use in the Windows Azure Web and Worker Roles; one that derives from System.Web.UI.Page and one that defives from Microsoft.ServiceHosting.ServiceRuntime.RoleEntryPoint. Naturally there is a suite of tests to support the implementation. All of this is downloadable in the source code section or as a separate release.&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=IRoleManager&amp;referringTitle=Home"&gt;IRoleManager&lt;/a&gt; contract and it's supporting class &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=EventLogName&amp;referringTitle=Home"&gt;EventLogName&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29245"&gt;Download this release&lt;/a&gt;&lt;/b&gt; (however there is a newer release that also includes this)&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 18:20:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Testable Windows Azure 20090906062007P</guid></item><item><title>Updated Wiki: Azure Contrib Version 2</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Azure Contrib Version 2&amp;version=8</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Persistence Ignorant Windows Azure&lt;/h2&gt;
This release aims to add the ability to work with Windows Azure Applications that leverage Cloud Storage to remain testable. It uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to achieve this end.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.ServiceRuntime&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.ServiceRuntime&lt;/a&gt;: This part of the project contains additions to the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.aspx" class="externalLink"&gt;Microsoft.ServiceHosting.ServiceRuntime Namespace&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.StorageClient&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.StorageClient&lt;/a&gt;: This part of the project implements the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on Windows Azure.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20posts&amp;referringTitle=Home"&gt;Blog posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Links&amp;referringTitle=Home"&gt;References&amp;#47;Dependencies&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31916"&gt;Download this release&lt;/a&gt;&lt;/b&gt; (however there is a newer release that also includes this)&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 18:19:49 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Azure Contrib Version 2 20090906061949P</guid></item><item><title>Updated Wiki: Home</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Home&amp;version=9</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;A contrib project for Microsoft Windows Azure. This project aims to make life as a Cloud Developer easier and provide easily adopted added value to your Cloud Computing and Cloud Storage Applications.&lt;br /&gt;
&lt;h2&gt;Current release&lt;/h2&gt;
The current release of AzureContrib aims to make your Windows Azure Applications Extensible as well as Persistence Ignorant for Cloud Storage (v2) and Testable (v1). This release uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Read more on the release page:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Extensible%20Windows%20Azure"&gt;Extensible Windows Azure&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;h2&gt;Previous releases&lt;/h2&gt;
&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Azure%20Contrib%20Version%202"&gt;Persistence Ignorant Windows Azure&lt;/a&gt;&lt;br /&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Testable%20Windows%20Azure"&gt;Testable Windows Azure&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Future release&lt;/h2&gt;
vNext of AzureContrib is slated to include a dashboard app that enables you to modify the work priority order of worker roles at run-time.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 18:16:31 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090906061631P</guid></item><item><title>Updated Wiki: Home</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Project Description&lt;/h1&gt;A contrib project for Microsoft Windows Azure. This project aims to make life as a Cloud Developer easier and provide easily adopted added value to your Cloud Computing and Cloud Storage Applications.&lt;br /&gt;
&lt;h2&gt;Current release&lt;/h2&gt;
The current release of AzureContrib aims to make your Windows Azure Applications Extensible as well as Persistence Ignorant for Cloud Storage (v2) and Testable (v1). This release uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. Read more on the release page:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Extensible%20Windows%20Azure"&gt;Extensible Windows Azure&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;h2&gt;Future release&lt;/h2&gt;
vNext of AzureContrib is slated to include a dashboard app that enables you to modify the work priority order of worker roles at run-time.&lt;br /&gt;&lt;br /&gt;(Se also &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Previous%20Releases"&gt;Previous Releases&lt;/a&gt;)&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 18:12:09 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090906061209P</guid></item><item><title>Updated Wiki: Azure Contrib Version 2</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Azure Contrib Version 2&amp;version=7</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Persistence Ignorant Windows Azure&lt;/h2&gt;
This release aims to add the ability to work with Windows Azure Applications that leverage Cloud Storage to remain testable. It uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to achieve this end.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.ServiceRuntime&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.ServiceRuntime&lt;/a&gt;: This part of the project contains additions to the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.aspx" class="externalLink"&gt;Microsoft.ServiceHosting.ServiceRuntime Namespace&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.StorageClient&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.StorageClient&lt;/a&gt;: This part of the project implements the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on Windows Azure.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20posts&amp;referringTitle=Home"&gt;Blog posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Links&amp;referringTitle=Home"&gt;References&amp;#47;Dependencies&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fazurecontrib.codeplex.com%2fRelease%2fProjectReleases.aspx%3fReleaseId%3d31916&amp;referringTitle=Home"&gt;Download this release&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 18:09:34 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Azure Contrib Version 2 20090906060934P</guid></item><item><title>Updated Wiki: Previous Releases</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Previous Releases&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Azure%20Contrib%20Version%202&amp;referringTitle=Home"&gt;Persistence Ignorant Windows Azure - AzureContrib V2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Testable%20Windows%20Azure&amp;referringTitle=Home"&gt;Testable Windows Azure - AzureContrib V1&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 18:09:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Previous Releases 20090906060901P</guid></item><item><title>Updated Wiki: Testable Windows Azure</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Testable Windows Azure&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Testable Windows Azure&lt;/h1&gt;This project aims to make the Windows Azure SDK more testable by enhancing The Windows Azure Project Template with &lt;a href="http://codeplex.com/mef" class="externalLink"&gt;Managed Extensibility Framework (MEF)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The goal is to 1) Enable testability of Windows Azure using MEF, 2) Use the same technology to enable persistence ignorance and again using the same technology 3) make Windows Azure extensible.&lt;br /&gt;&lt;br /&gt;The following blog post goes through everything in detail: &lt;a href="http://blog.noop.se" class="externalLink"&gt;Windows Azure + Managed Extensibility Framework (MEF) = true&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;MEF&lt;/h2&gt;In order to run this code you also need to download &lt;a href="http://codeplex.com/mef" class="externalLink"&gt;Managed Extensibility Framework (MEF)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; Preview 5 from the MEF site. Since MEF is under &lt;a href="http://msdn.microsoft.com/en-us/library/cc707818.aspx" class="externalLink"&gt;MSPL license&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and this project is under a different license you have to compose these things your self locally on your machine. Furthermore it makes no sense to upload code in duplicate.&lt;br /&gt;
&lt;h2&gt;The Project Release&lt;/h2&gt;
The release is not very big. It contains one main contract IRoleManager, one supporting class EventLogName and a contract implementation RoleManagerService. Also it contains two base classes to use in the Windows Azure Web and Worker Roles; one that derives from System.Web.UI.Page and one that defives from Microsoft.ServiceHosting.ServiceRuntime.RoleEntryPoint. Naturally there is a suite of tests to support the implementation. All of this is downloadable in the source code section or as a separate release.&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=IRoleManager&amp;referringTitle=Home"&gt;IRoleManager&lt;/a&gt; contract and it's supporting class &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=EventLogName&amp;referringTitle=Home"&gt;EventLogName&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fazurecontrib.codeplex.com%2fRelease%2fProjectReleases.aspx%3fReleaseId%3d29245&amp;referringTitle=Home"&gt;Download this release&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 17:47:10 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Testable Windows Azure 20090906054710P</guid></item><item><title>Updated Wiki: Azure Contrib Version 2</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Azure Contrib Version 2&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Azure Contrib Version 2&lt;/h2&gt;
This release aims to add the ability to work with Windows Azure Applications that leverage Cloud Storage to remain testable. It uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to achieve this end.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.ServiceRuntime&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.ServiceRuntime&lt;/a&gt;: This part of the project contains additions to the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.aspx" class="externalLink"&gt;Microsoft.ServiceHosting.ServiceRuntime Namespace&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.StorageClient&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.StorageClient&lt;/a&gt;: This part of the project implements the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on Windows Azure.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20posts&amp;referringTitle=Home"&gt;Blog posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Links&amp;referringTitle=Home"&gt;References&amp;#47;Dependencies&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fazurecontrib.codeplex.com%2fRelease%2fProjectReleases.aspx%3fReleaseId%3d31916&amp;referringTitle=Home"&gt;Download this release&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Sun, 06 Sep 2009 17:46:14 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Azure Contrib Version 2 20090906054614P</guid></item><item><title>Updated Wiki: Samples</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Samples&lt;/h1&gt;
The project contains a sample site called SampleService that shows off some of the features of this project. A couple of &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20Posts&amp;referringTitle=Home"&gt;Blog Posts&lt;/a&gt; outline the samples and here are a few more comments:&lt;br /&gt;&lt;br /&gt;One main purpose of this project is to enable testability for Windows Azure Applications. This also means you separate Web front-end logic from the data access logic. Commonly this is done using an MVP or MVC pattern. We could have used an ASP.NET MVC application for these samples but we opted not to. The reason is that we want to keep these samples very brief and not to require any other knowledge. a simplified version of MVP is used &lt;br /&gt;
&lt;h2&gt;Using Message Queue&lt;/h2&gt;
The Message Queue sample puts messages from a textbox on a Message Queue at the click of a button. It then and retrieves the messages again at the click of another button.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=azurecontrib&amp;DownloadId=80355" alt="messagequeue.png" title="messagequeue.png" /&gt;&lt;br /&gt;&lt;br /&gt;The sample page is QueueSample.aspx and the Controller it uses is SampleService_WebRole.Controllers.QueueSampleController.&lt;br /&gt;
&lt;h2&gt;Using Blob Storage&lt;/h2&gt;
You can upload a blob file to the site and have it listed in a list of available blobs.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=azurecontrib&amp;DownloadId=80356" alt="blobcontainer.png" title="blobcontainer.png" /&gt;&lt;br /&gt;&lt;br /&gt;The sample page is BlobSample.aspx and the Controller it uses is SampleService_WebRole.Controllers.BlobSampleController.&lt;br /&gt;
&lt;h2&gt;Using Entity Storage&lt;/h2&gt;
There is a sample entity that will be stored in a Cloud Storage table. The entity is the PersonEntity Entity. For this sample to run in the &lt;a href="http://msdn.microsoft.com/en-us/library/dd179455.aspx" class="externalLink"&gt;Development Fabric&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; you have to create a local table in your &lt;a href="http://msdn.microsoft.com/en-us/library/dd179339.aspx" class="externalLink"&gt;Development Storage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. This is done by right klicking your SampleService project and selecting &amp;quot;Create Test Storage Tables&amp;quot;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=azurecontrib&amp;DownloadId=80358" alt="entitytable.png" title="entitytable.png" /&gt;&lt;br /&gt;&lt;br /&gt;The sample page is EntitySample.aspx and the Controller it uses is SampleService&lt;i&gt;WebRole.Controllers.EntitySampleController. This sample also uses an Entity Sample SampleService&lt;/i&gt;WebRole.Entities.PersonEntity and an Entity Data Context SampleService_WebRole.Entities.PersonEntityDataContext.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Mon, 24 Aug 2009 12:31:13 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Samples 20090824123113P</guid></item><item><title>Updated Wiki: Samples</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Samples&lt;/h1&gt;
The project contains a sample site called SampleService that shows off some of the features of this project. A couple of &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20Posts&amp;referringTitle=Home"&gt;Blog Posts&lt;/a&gt; outline the samples and here are a few more comments:&lt;br /&gt;
&lt;h2&gt;Using Message Queue&lt;/h2&gt;
The Message Queue sample puts messages on a Message Queue and retrieves them &lt;br /&gt;
&lt;h2&gt;Using Blob Storage&lt;/h2&gt;&lt;h2&gt;Using Entity Storage&lt;/h2&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Mon, 24 Aug 2009 12:10:56 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Samples 20090824121056P</guid></item><item><title>Updated Wiki: Samples</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;version=1</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Samples&lt;/h1&gt;
The project contains a sample site called SampleService that shows off some of the features of this project. A couple of &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20Posts&amp;referringTitle=Home"&gt;Blog Posts&lt;/a&gt; outline the samples and here are a few more comments:&lt;br /&gt;
&lt;h2&gt;Using Message Queue&lt;/h2&gt;
The Message Queue sample puts messages on a Message Queue and retrieves them &lt;br /&gt;
&lt;h2&gt;Using Blob Storage&lt;/h2&gt;&lt;h2&gt;Using Entity Storage&lt;/h2&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Mon, 24 Aug 2009 12:10:28 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Samples 20090824121028P</guid></item><item><title>Updated Wiki: Azure Contrib Version 2</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Azure Contrib Version 2&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Azure Contrib Version 2&lt;/h2&gt;
This release aims to add the ability to work with Windows Azure Applications that leverage Cloud Storage to remain testable. It uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to achieve this end.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.ServiceRuntime&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.ServiceRuntime&lt;/a&gt;: This part of the project contains additions to the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.servicehosting.serviceruntime.aspx" class="externalLink"&gt;Microsoft.ServiceHosting.ServiceRuntime Namespace&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.StorageClient&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.StorageClient&lt;/a&gt;: This part of the project implements the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on Windows Azure.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20posts&amp;referringTitle=Home"&gt;Blog posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Links&amp;referringTitle=Home"&gt;References&amp;#47;Dependencies&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Mon, 24 Aug 2009 12:04:56 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Azure Contrib Version 2 20090824120456P</guid></item><item><title>Updated Wiki: Azure Contrib Version 2</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Azure Contrib Version 2&amp;version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Azure Contrib Version 2&lt;/h2&gt;
This release aims to add the ability to work with Windows Azure Applications that leverage Cloud Storage to remain testable. It uses the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://mef.codeplex.com" class="externalLink"&gt;Managed Extensibility Framework MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to achieve this end.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.ServiceRuntime&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.ServiceRuntime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=AzureContrib.ServiceHosting.StorageClient&amp;referringTitle=Home"&gt;AzureContrib.ServiceHosting.StorageClient&lt;/a&gt;: This part of the release implements the &lt;a href="http://cloudstorageapi.codeplex.com" class="externalLink"&gt;CloudStorage.API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; on Windows Azure.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog%20posts&amp;referringTitle=Home"&gt;Blog posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Links&amp;referringTitle=Home"&gt;References&amp;#47;Dependencies&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Mon, 24 Aug 2009 12:04:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Azure Contrib Version 2 20090824120407P</guid></item><item><title>Updated Wiki: Blog posts</title><link>http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Blog posts&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Blog Posts&lt;/h1&gt;
There are a bunch of blog posts that cover the usage of this contrib code. Have you written one and want to be on this page? Contact project coordinator &lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=http%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fview%2fNoopMan&amp;referringTitle=Home"&gt;noopman&lt;/a&gt;!&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.noop.se/archive/2009/07/03/windows-azure-plus-managed-extensibility-framework-mef-true.aspx" class="externalLink"&gt;Windows Azure + Managed Extensibility Framework (MEF) = true&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.noop.se/archive/2009/08/15/introducing-the-cloud-storage-api.aspx" class="externalLink"&gt;Introducing the Cloud Storage API&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.noop.se/archive/2009/08/17/using-the-cloudstorage.api-the-message-queue.aspx" class="externalLink"&gt;Using the CloudStorage.API: The Message Queue&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Sample on this site&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.noop.se/archive/2009/08/19/using-the-cloudstorage.api-the-blob-storage.aspx" class="externalLink"&gt;Using the CloudStorage.API: The Blob Storage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Sample on this site&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.noop.se/archive/2009/08/20/using-the-cloudstorage.api-the-entity-storage.aspx" class="externalLink"&gt;Using the CloudStorage.API: The Entity Storage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (&lt;a href="http://azurecontrib.codeplex.com/Wiki/View.aspx?title=Samples&amp;referringTitle=Home"&gt;Sample on this site&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Your blog post goes here...&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>NoopMan</author><pubDate>Mon, 24 Aug 2009 12:03:46 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Blog posts 20090824120346P</guid></item></channel></rss>