Thursday, May 28 2009
The Windows Azure and Visual Studio teams have just released the new version of the Windows Azure SDK and the Windows Azure Tools for Microsoft Visual Studio.
New for May 2009:
- Support for Visual Studio 2010 Beta 1
- Update for Visual Studio 2008
- Improved integration with the Development Fabric and Storage services to improve the reliability of debug and run of Cloud Services from Visual Studio
- Enhanced robustness and stability
Release notes/Known issues are available here
Visual Studio 2010 compatible samples are available here
The Azure Services Training Kit is here.
There is also a training kit on Visual Studio 2010 here, and some great content on Visual Studio 2010 & .Net Framework 4.0 on the 10-4 show.
Note, .Net Framework 4.0 is not yet supported in the Windows Azure Cloud. Please see this post for more information.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: windows-azure, azure, ctp
Saturday, May 23 2009
The team have been busy over the last few weeks getting some more samples out for Azure. Here is a quick run down:
Bid Now Sample
Bid Now is an online auction site designed to demonstrate how you can build highly scalable consumer applications.
This sample is built using Windows Azure and uses Windows Azure Storage. Auctions are processed using Windows Azure Queues and Worker Roles. Authentication is provided via Live Id. One of the cool things that Bid Now demonstrates is how you can de-normalize data in Windows Azure Table Storage, to build a very scalable application. Check out Bid Now at http://code.msdn.microsoft.com/bidnowsample.
Windows Azure Management Tool (MMC)
The Windows Azure Management Tool was created to manage your storage accounts in Windows Azure. Developed as a managed MMC, the tool allows you to create and manage both blobs and queues. Easily create and manage containers, blobs, and permissions. Add and remove queues, inspect or add messages or empty queues as well. You can find out more about the MMC at http://code.msdn.microsoft.com/windowsazuremmc.
Contoso Cycles
Contoso Cycles shows how the Azure Services Platform can be used to build a supply chain application. .NET Services allows messages to flow between companies across firewalls, NATs and routers. You can download Contoso Cycles from http://code.msdn.microsoft.com/contosocycles.
Please feel free to feedback on this samples in the discussions on each site.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: windows-azure, azure, samples
Thursday, April 09 2009
Azure Services Training Kit – April Update
Today we released an updated version of the Azure Services Training Kit. The first Azure Services Training Kit was released during the week of PDC and it contained all of the PDC hands-on labs. Since then, the Azure Services Evangelism team has been creating new content as the services are updated.
The Azure Services Training Kit April update now includes the following content covering Windows Azure, .NET Services, SQL Services, and Live Services:
- 11 hands-on labs – including new hands-on labs for PHP and Native Code on Windows Azure.
- 18 demo scripts – These demo scripts are designed to provide detailed walkthroughs of key features so that someone can easily give a demo of a service
- 9 presentations – the presentations used for our 3 day training workshops including speaker notes.
All of this content is available as an installable package on the Microsoft Download Center. You can download it here http://go.microsoft.com/fwlink/?LinkID=130354
Azure Services Management Tools – April Update
The Azure Services Management Tools include an MMC SnapIn and Windows PowerShell cmdlets that enable a user to configure and manage several Azure Services including .NET Access Control Services, and the .NET Workflow Service. These tools can be helpful when developing and testing applications that use Azure Services. For instance, using these tools you can view and change .NET Access Control Rules, and deploy and view workflows.
You can download the latest management tools from http://code.msdn.microsoft.com/AzureManagementTools.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: windows-azure, azure, training-kit
Thursday, February 12 2009
It’s not often I have a post that points to someone else’s post (in fact this could be a first).
Bill Lodin has built a WPF app for reading Windows Azure logs. Following on from my previous post of the online log viewer this new viewer looks really cool and has some basic filter capability. After I saw it, I said “Bill you should blog this” and he did.
Do check it out at http://blogs.itmentors.com/bill/2009/02/10/windows-azure-log-viewer/.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: windows-azure, log-reader
Monday, February 09 2009
Whilst looking for a simple asp.net application I could “migrate” to Windows Azure, I stumbled upon the Small Business Starter Kit at the ASP.NET web site - http://www.asp.net/downloads/starter-kits/small-business/.
One of the features of the Small Business Starter Kit is the Provider Model. You can either use an SQL or XML data source. Bingo I thought. An XML data source! All I’d need to do with this is load the XML data from Windows Azure Blob storage instead of the file system and it would be running on Windows Azure!
Here is what I did (I assume you are using Visual Studio Web Developer Express & have the Windows Azure SDK & Tools installed):
- Downloaded the Starter Kit, and created a new Small Business Web Site.
- Created a new Cloud project, with a Web Role.
- Deleted the default.aspx & Web.config from the new web role
- Using windows explorer, copied the files from the web site created in step 1, to the folder for the web role created in step 2.
- Added the newly copied files to the project.
- Right clicked the Web Role project and selected Convert to Web Application (this fixes all the build properties, and creates the missing designer files etc.)
Now you can hit F5, and the site runs in Windows Azure. Magic. Clicking on Items, or People will give you errors, because we are trying to load the xml data from the file system. (Actually the error is because the files aren’t copied as part of the output. We could fix that, but really we want them in blob storage so they can be updated at runtime.)
The next step is to update the XML Provider to read the xml files from Blob storage, rather than the file system. Here are the steps I took:
- Added a reference to the storage client sdk sample.
- Added the required configuration to the servicedefinition.csdef and serviceconfiguration.cscfg files for AccountName, AccountSharedKey and BlobStorageEndpoint.
- Updated the ReadAndValidateXml method in the util.cs class to read from blob storage.
- Copied the xml files into blob storage. For this I used the Powershell provider for Windows Azure storage, which is shipped as source code in the SDK.
Hitting F5 runs the site, and reads the items, people etc. from blob storage.
Here is my serviceconfiguration.cscsf file:
<?xml version="1.0"?>
<ServiceConfiguration serviceName="starterbktest" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="WebRole">
<Instances count="1"/>
<ConfigurationSettings>
<Setting name="AccountName" value="devstoreaccount1" />
<Setting name="AccountSharedKey" value="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" />
<Setting name="BlobStorageEndpoint" value="http://127.0.0.1:10000" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
And here is my changed ReadAndValidateXml method:
public static DataSet ReadAndValidateXml(string xmlFilePath, string schemaFilePath)
{
xmlFilePath = Path.GetFileName(xmlFilePath).ToLower();
schemaFilePath = "schemas\\" + Path.GetFileName(schemaFilePath).ToLower();
DataSet dataSet = null;
BlobStorage store = BlobStorage.Create(StorageAccountInfo.GetDefaultBlobStorageAccountFromConfiguration());
BlobContainer container = store.GetBlobContainer("sbkit");
BlobContents xmlFileBlob = new BlobContents(new MemoryStream());
BlobContents xmlSchemaBlob = new BlobContents(new MemoryStream());
container.GetBlob(xmlFilePath, xmlFileBlob, false);
container.GetBlob(schemaFilePath, xmlSchemaBlob, false);
byte[] ook = xmlFileBlob.AsBytes();
byte[] schemaook = xmlSchemaBlob.AsBytes();
dataSet = new DataSet();
dataSet.ReadXmlSchema(new MemoryStream(schemaook));
dataSet.ReadXml(new MemoryStream(ook), XmlReadMode.IgnoreSchema);
return dataSet;
}
The first few lines rework the paths for the files. The rest is simple Blob storage code to read blobs.
For those with more than enough thiings to do already, here is the source code zip.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: windows-azure, winazure
Friday, February 06 2009
I’m pleased to announce we have completed the latest revision of the Azure Services Platform training kit. You can find the training kit here.
The Azure Services Training Kit includes a comprehensive set of technical content including hands-on labs, presentations, and demos that are designed to help you learn how to use the Azure Services Platform.
The February release includes the following updates:
- 19 demo scripts that walkthrough several of the services
- 10 presentations covering the entire Azure Services Platform
- 3 additional hands-on labs for Live Services
This technical content covers services including:
- Windows Azure
- .NET Services
- SQL Services
- Live Services
If you want a head start on our Azure platform. This is the kit to get.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: windows-azure, hands-on-labs, azure-services, training-kit, winazure
Thursday, January 15 2009
First a thank you to everyone who provided feedback, comments and suggestions on the Windows Azure SDK CTP
Yesterday we released the latest CTP for Windows Azure. Features include:
- Improved VS integration
- Bug fixes & performance improvements for local execution and debugging
- Updates and improvements to the sample Storage Client and ASP.NET providers
- Support for Debugging for Silverlight in a Web Role
Note there are NO cloud changes, and your applications should simply work, but the development experience just got a little better.
Download the Windows Azure SDK - CTP January 2009
Download the Windows Azure Tools for Visual Studio - CTP January 2009
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: windows-azure, azure, sdk
Tuesday, December 16 2008
A few weeks back I had the pleasure of chatting with Carl and Richard again on the .Net Rocks Internet Audio Talk show (show 403!). This time the topic was the Azure Services platform. Its always great chatting with Carl and Richard, they do make it very easy and ask some great (if awkward) questions! Do download the show to your favorite music player device, and if you've never listened to .NET Rocks - take a look at the excellent show list and subscribe to the RSS.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: .net-rocks, windows-azure, azure
Monday, December 15 2008
Happy Holidays!
The good folks at Mix are offering a discounted MIX09 conference passes for $795 USD (that's 40% off the full price) to the first 200 people to register. To take advantage of this offer, go to registration and select the "Register for the event using an RSVP Code" option. Enter the RSVP code MIXspecial1 to receive your discounted conference pass.
If you’re a designer or developer who builds on the web, MIX09 is the place to learn about products and technologies that help you plan for the future while addressing today’s economic challenges. Hear about advances in technologies like Silverlight, Expression, ASP.NET, Windows 7, and Windows Azure, and discuss topics like design, user experience, web standards, data visualization, workflow, and social networks. Learn how to use technology to increase customer satisfaction and impact the bottom line.
Network with attendees from recognized companies like frog design, Yahoo!, MySpace, Baidu, ESPN.com, Metaliq, Adobe, Digg, Facebook, schematic, Netflix, Fidelity, NASA, Amazon.com, and many, many more. Be among the first to walk away with early versions of our latest software, and don’t forget that you’ll stay at the spectacular Venetian Hotel in Las Vegas.
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: mix09
Thursday, December 11 2008
Jim Nakashima wrote a great blog post on how to get at your Windows Azure logs via the PowerShell powered Cloud Drive. (see http://blogs.msdn.com/jnak/archive/2008/11/12/using-the-clouddrive-sample-to-access-windows-azure-logs.aspx).
I've been working on a project lately, and its required some examination of logs. Copying the logs from blob storage is great, but you still have to parse the logs, and if you are working with multiple instances, this can be time consuming.
I decided that I should have a tool that would parse the logs, and display the log output from all the logs. Enter my Windows Azure Online Log Reader. (and you can download the code at the bottom!)
When you need to view your logs, the first step is to navigate to the portal, then issue a copy logs command. This will copy your logs to the blob storage you name in the portal.
If you examine the folder structure created you will see nodes for WebRole and WorkerRole. Within each of these folders you will see a folder for each instance that is running. These instance folders contain the log files for each instance. Last time I copied the files there were 103 log files to process!
My Log reader is a quick and simple implementation - all you need to do to use it is feed in your storage account name, shared key and the container that you copied the logs too. What the reader does is enumerate all the blobs in that path, using the client storage SDK sample library, its a simple to enumerate all the blobs:
BlobContainer logContainer = blobStore.GetBlobContainer(txtSrcFolder.Text);
var blobs = logContainer.ListBlobs("", false);
Next I read all the blobs into memory one by one, loading the contents into an XmlDocument. The xml for a log file looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<ServiceDiagnostics Service="DemoGroup" Role="WebRole" ServiceDeployment="1a3c641000111111b52388a4183ad693.0" RoleInstance="WebRole_IN_0" xmlns="http://www.microsoft.com/UtlityComputing/ServiceDiagnostics/2008-08-01">
<Events>
<Event Time="2008-12-09T07:41:28.2482737Z" ThreadId="2284" Name="Information" Severity="Info">
<EventProperty Name="Message">Web Role Initalized</EventProperty>
</Event>
<Event Time="2008-12-09T07:41:28.2488483Z" ThreadId="2284" Name="Information" Severity="Info">
<EventProperty Name="Message">Web Role Started</EventProperty>
</Event>
</Events>
</ServiceDiagnostics>
I created a new class to hold each event entry. I have a future idea that involves filtering, sorting and other nice-to-have features. The class today looks like this:
public class ServiceDiagnosticEvent
{
public string ServiceName { get; set; }
public string Role { get; set; }
public string DeploymentId { get; set; }
public int RoleInstance { get; set; }
public DateTime EventTime { get; set; }
public int ThreadId { get; set; }
public string EventType { get; set; }
public string EventSeverity { get; set; }
public string EventMessage { get; set; }
}
Can you guess the rest? Read the properties from each XML node and add a new ServiceDiagnosticEvent object to a list. Finally bind the List to a GridView for instant list action. The only other thing I did was to remove the GetHealth calls to the worker role.
Simple, but effective - I don't have to copy the logs anymore, and eventually I'll add some features that allow filtering, sorting aggregation etc.
Enjoy, and if you do make some changes - let me know what you did!
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS
Tagged as: windows-azure, logging