Announcing the release of the Windows Azure SDK 2.1 for .NET

Today we released the v2.1 update of the Windows Azure SDK for .NET.  This is a major refresh of the Windows Azure SDK and it includes some great new features and enhancements. These new capabilities include:

  • Visual Studio 2013 Preview Support: The Windows Azure SDK now supports using the new VS 2013 Preview
  • Visual Studio 2013 VM Image: Windows Azure now has a built-in VM image that you can use to host and develop with VS 2013 in the cloud
  • Visual Studio Server Explorer Enhancements: Redesigned with improved filtering and auto-loading of subscription resources
  • Virtual Machines: Start and Stop VM’s w/suspend billing directly from within Visual Studio
  • Cloud Services: New Emulator Express option with reduced footprint and Run as Normal User support
  • Service Bus: New high availability options, Notification Hub support, Improved VS tooling
  • PowerShell Automation: Lots of new PowerShell commands for automating Web Sites, Cloud Services, VMs and more

All of these SDK enhancements are now available to start using immediately and you can download the SDK from the Windows Azure .NET Developer Center.  Visual Studio’s Team Foundation Service (http://tfs.visualstudio.com/) has also been updated to support today’s SDK 2.1 release, and the SDK 2.1 features can now be used with it (including with automated builds + tests).

Below are more details on the new features and capabilities released today:

Visual Studio 2013 Preview Support

Today’s Window Azure SDK 2.1 release adds support for the recent Visual Studio 2013 Preview. The 2.1 SDK also works with Visual Studio 2010 and Visual Studio 2012, and works side by side with the previous Windows Azure SDK 1.8 and 2.0 releases.

To install the Windows Azure SDK 2.1 on your local computer, choose the “install the sdk” link from the Windows Azure .NET Developer Center. Then, chose which version of Visual Studio you want to use it with.  Clicking the third link will install the SDK with the latest VS 2013 Preview:

image

If you don’t already have the Visual Studio 2013 Preview installed on your machine, this will also install Visual Studio Express 2013 Preview for Web.

Visual Studio 2013 VM Image Hosted in the Cloud

One of the requests we’ve heard from several customers has been to have the ability to host Visual Studio within the cloud (avoiding the need to install anything locally on your computer).

With today’s SDK update we’ve added a new VM image to the Windows Azure VM Gallery that has Visual Studio Ultimate 2013 Preview, SharePoint 2013, SQL Server 2012 Express and the Windows Azure 2.1 SDK already installed on it.  This provides a really easy way to create a development environment in the cloud with the latest tools. With the recent shutdown and suspend billing feature we shipped on Windows Azure last month, you can spin up the image only when you want to do active development, and then shut down the virtual machine and not have to worry about usage charges while the virtual machine is not in use.

You can create your own VS image in the cloud by using the New->Compute->Virtual Machine->From Gallery menu within the Windows Azure Management Portal, and then by selecting the “Visual Studio Ultimate 2013 Preview” template:

image

Visual Studio Server Explorer: Improved Filtering/Management of Subscription Resources

With the Windows Azure SDK 2.1 release you’ll notice significant improvements in the Visual Studio Server Explorer. The explorer has been redesigned so that all Windows Azure services are now contained under a single Windows Azure node.  From the top level node you can now manage your Windows Azure credentials, import a subscription file or filter Server Explorer to only show services from particular subscriptions or regions.

Note: The Web Sites and Mobile Services nodes will appear outside the Windows Azure Node until the final release of VS 2013. If you have installed the ASP.NET and Web Tools Preview Refresh, though, the Web Sites node will appear inside the Windows Azure node even with the VS 2013 Preview.

Once your subscription information is added, Windows Azure services from all your subscriptions are automatically enumerated in the Server Explorer. You no longer need to manually add services to Server Explorer individually. This provides a convenient way of viewing all of your cloud services, storage accounts, service bus namespaces, virtual machines, and web sites from one location:

image

Subscription and Region Filtering Support

Using the Windows Azure node in Server Explorer, you can also now filter your Windows Azure services in the Server Explorer by the subscription or region they are in.  If you have multiple subscriptions but need to focus your attention to just a few subscription for some period of time, this a handy way to hide the services from other subscriptions view until they become relevant. You can do the same sort of filtering by region.

To enable this, just select “Filter Services” from the context menu on the Windows Azure node:

image

Then choose the subscriptions and/or regions you want to filter by. In the below example, I’ve decided to show services from my pay-as-you-go subscription within the East US region:

image

Visual Studio will then automatically filter the items that show up in the Server Explorer appropriately:

image

With storage accounts and service bus namespaces, you sometimes need to work with services outside your subscription. To accommodate that scenario, those services allow you to attach an external account (from the context menu). You’ll notice that external accounts have a slightly different icon in server explorer to indicate they are from outside your subscription.

Other Improvements

We’ve also improved the Server Explorer by adding additional properties and actions to the service exposed. You now have access to most of the properties on a cloud service, deployment slot, role or role instance as well as the properties on storage accounts, virtual machines and web sites. Just select the object of interest in Server Explorer and view the properties in the property pane.

We also now have full support for creating/deleting/update storage tables, blobs and queues from directly within Server Explorer.  Simply right-click on the appropriate storage account node and you can create them directly within Visual Studio:

image

Virtual Machines: Start/Stop within Visual Studio

Virtual Machines now have context menu actions that allow you start, shutdown, restart and delete a Virtual Machine directly within the Visual Studio Server Explorer. The shutdown action enables you to shut down the virtual machine and suspend billing when the VM is not is use, and easily restart it when you need it:

image

This is especially useful in Dev/Test scenarios where you can start a VM – such as a SQL Server – during your development session and then shut it down / suspend billing when you are not developing (and no longer be billed for it).

You can also now directly remote desktop into VMs using the “Connect using Remote Desktop” context menu command in VS Server Explorer. 

Cloud Services: Emulator Express with Run as Normal User Support

You can now launch Visual Studio and run your cloud services locally as a Normal User (without having to elevate to an administrator account) using a new Emulator Express option included as a preview feature with this SDK release.  Emulator Express is a version of the Windows Azure Compute Emulator that runs a restricted mode – one instance per role – and it doesn’t require administrative permissions and uses 40% less resources than the full Windows Azure Emulator. Emulator Express supports both web and worker roles.

To run your application locally using the Emulator Express option, simply change the following settings in the Windows Azure project.

  1. On the shortcut menu for the Windows Azure project, choose Properties, and then choose the Web tab.
  2. Check the setting for IIS (Internet Information Services). Make sure that the option is set to IIS Express, not the full version of IIS. Emulator Express is not compatible with full IIS.
  3. On the Web tab, choose the option for Emulator Express.

image

Service Bus: Notification Hubs

With the Windows Azure SDK 2.1 release we are adding support for Windows Azure Notification Hubs as part of our official Windows Azure SDK, inside of Microsoft.ServiceBus.dll (previously the Notification Hub functionality was in a preview assembly).

You are now able to create, update and delete Notification Hubs programmatically, manage your device registrations, and send push notifications to all your mobile clients across all platforms (Windows Store, Windows Phone 8, iOS, and Android).

Learn more about Notification Hubs on MSDN here, or watch the Notification Hubs //BUILD/ presentation here.

Service Bus: Paired Namespaces

One of the new features included with today’s Windows Azure SDK 2.1 release is support for Service Bus “Paired Namespaces”.  Paired Namespaces enable you to better handle situations where a Service Bus service namespace becomes unavailable (for example: due to connectivity issues or an outage) and you are unable to send or receive messages to the namespace hosting the queue, topic, or subscription. Previously,to handle this scenario you had to manually setup separate namespaces that can act as a backup, then implement manual failover and retry logic which was sometimes tricky to get right.

Service Bus now supports Paired Namespaces, which enables you to connect two namespaces together. When you activate the secondary namespace, messages are stored in the secondary queue for delivery to the primary queue at a later time. If the primary container (namespace) becomes unavailable for some reason, automatic failover enables the messages in the secondary queue.

For detailed information about paired namespaces and high availability, see the new topic Asynchronous Messaging Patterns and High Availability.

Service Bus: Tooling Improvements

In this release, the Windows Azure Tools for Visual Studio contain several enhancements and changes to the management of Service Bus messaging entities using Visual Studio’s Server Explorer. The most noticeable change is that the Service Bus node is now integrated into the Windows Azure node, and supports integrated subscription management.

Additionally, there has been a change to the code generated by the Windows Azure Worker Role with Service Bus Queue project template. This code now uses an event-driven “message pump” programming model using the QueueClient.OnMessage method.

PowerShell: Tons of New Automation Commands

Since my last blog post on the previous Windows Azure SDK 2.0 release, we’ve updated Windows Azure PowerShell (which is a separate download) five times. You can find the full change log here. We’ve added new cmdlets in the following areas:

  • China instance and Windows Azure Pack support
  • Environment Configuration
  • VMs
  • Cloud Services
  • Web Sites
  • Storage
  • SQL Azure
  • Service Bus

China Instance and Windows Azure Pack

We now support the following cmdlets for the China instance and Windows Azure Pack, respectively:

  • China Instance: Web Sites, Service Bus, Storage, Cloud Service, VMs, Network
  • Windows Azure Pack: Web Sites, Service Bus

We will have full cmdlet support for these two Windows Azure environments in PowerShell in the near future.

Virtual Machines: Stop/Start Virtual Machines

Similar to the Start/Stop VM capability in VS Server Explorer, you can now stop your VM and suspend billing:

image

If you want to keep the original behavior of keeping your stopped VM provisioned, you can pass in the -StayProvisioned switch parameter.

Virtual Machines: VM endpoint ACLs

We’ve added and updated a bunch of cmdlets for you to configure fine-grained network ACL on your VM endpoints. You can use the following cmdlets to create ACL config and apply them to a VM endpoint:

  • New-AzureAclConfig
  • Get-AzureAclConfig
  • Set-AzureAclConfig
  • Remove-AzureAclConfig
  • Add-AzureEndpoint -ACL
  • Set-AzureEndpoint –ACL

The following example shows how to add an ACL rule to an existing endpoint of a VM.

image

Other improvements for Virtual Machine management includes

  • Added -NoWinRMEndpoint parameter to New-AzureQuickVM and Add-AzureProvisioningConfig to disable Windows Remote Management
  • Added -DirectServerReturn parameter to Add-AzureEndpoint and Set-AzureEndpoint to enable/disable direct server return
  • Added Set-AzureLoadBalancedEndpoint cmdlet to modify load balanced endpoints

Cloud Services: Remote Desktop and Diagnostics

Remote Desktop and Diagnostics are popular debugging options for Cloud Services. We’ve introduced cmdlets to help you configure these two Cloud Service extensions from Windows Azure PowerShell.

Windows Azure Cloud Services Remote Desktop extension:

  • New-AzureServiceRemoteDesktopExtensionConfig
  • Get-AzureServiceRemoteDesktopExtension
  • Set-AzureServiceRemoteDesktopExtension
  • Remove-AzureServiceRemoteDesktopExtension

Windows Azure Cloud Services Diagnostics extension

  • New-AzureServiceDiagnosticsExtensionConfig
  • Get-AzureServiceDiagnosticsExtension
  • Set-AzureServiceDiagnosticsExtension
  • Remove-AzureServiceDiagnosticsExtension

The following example shows how to enable Remote Desktop for a Cloud Service.

image

Web Sites: Diagnostics

With our last SDK update, we introduced the Get-AzureWebsiteLog –Tail cmdlet to get the log streaming of your Web Sites. Recently, we’ve also added cmdlets to configure Web Site application diagnostics:

  • Enable-AzureWebsiteApplicationDiagnostic
  • Disable-AzureWebsiteApplicationDiagnostic

The following 2 examples show how to enable application diagnostics to the file system and a Windows Azure Storage Table:

image

image

SQL Database

Previously, you had to know the SQL Database server admin username and password if you want to manage the database in that SQL Database server. Recently, we’ve made the experience much easier by not requiring the admin credential if the database server is in your subscription. So you can simply specify the -ServerName parameter to tell Windows Azure PowerShell which server you want to use for the following cmdlets.

  • Get-AzureSqlDatabase
  • New-AzureSqlDatabase
  • Remove-AzureSqlDatabase
  • Set-AzureSqlDatabase

We’ve also added a -AllowAllAzureServices parameter to New-AzureSqlDatabaseServerFirewallRule so that you can easily add a firewall rule to whitelist all Windows Azure IP addresses.

Besides the above experience improvements, we’ve also added cmdlets get the database server quota and set the database service objective. Check out the following cmdlets for details.

  • Get-AzureSqlDatabaseServerQuota
  • Get-AzureSqlDatabaseServiceObjective
  • Set-AzureSqlDatabase –ServiceObjective

Storage and Service Bus

Other new cmdlets include

  • Storage: CRUD cmdlets for Azure Tables and Queues
  • Service Bus: Cmdlets for managing authorization rules on your Service Bus Namespace, Queue, Topic, Relay and NotificationHub

Summary

Today’s release includes a bunch of great features that enable you to build even better cloud solutions.  All the above features/enhancements are shipped and available to use immediately as part of the 2.1 release of the Windows Azure SDK for .NET.

If you don’t already have a Windows Azure account, you can sign-up for a free trial and start using all of the above features today.  Then visit the Windows Azure Developer Center to learn more about how to build apps with it.

Hope this helps,

Scott

P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu

29 Comments

  • VS 2013 in the cloud. That's killer.

  • 'Visual Studio 2013 VM' I love that part :D

  • The last Windows Azure Powershell 0.6.18 release is not yet available neither on Web Platform Installer neither on official GitHub.
    Anyone has a download link please?

  • Very cool!


    I think here is a small typing mistake :)
    - Visual Studio 2013 Preview Support: The Windows Azure SDK now supports using the new VS 2012 Preview

    That should probably mean VS 2013 Preview

  • Yet more great stuff. Will the Visual Studio 2013 VM be updated to the final version and continue to be available after the product is released, or is it just to test the newest version?
    Thanks

  • There is type mistake : Visual Studio 2013 Preview Support: The Windows Azure SDK now supports using the new VS 2012 Preview
    Should be : Visual Studio 2013 Preview Support: The Windows Azure SDK now supports using the new VS 2013 Preview

  • "Visual Studio 2013 VM Image Hosted in the Cloud" - My Surface RT just became a fully fledged travel development system :)

  • congratulations. I love windows azure.

    I have one question... Do we have any Management Api(IaaS) for mobile services?

    thanks

  • Is Windows Phone really supported in Notification Hubs now? MSDN hasn't been updated yet if so.

  • Nice. On another somewhat related note, please tell me that the long awaited, often promised to be just weeks away, CORS support for Blob Storage is coming soon.

  • Typo: Visual Studio 2013 Preview Support: The Windows Azure SDK now supports using the new VS 2012 Preview. (Should be 2013 Preview.)

    As an avid user of Python Tools for Visual Studio, I am curious to know if/when we might expect to be able to take advantage of Service Bus relays with non-WCF services? No good writing Django apps, if they cant communicate back to our Enterprise services. I have an entire department of developers who are willing to try Azure, but even little inequalities like these make it difficult to assure people that MS/Azure is truly open to empowering non-MS developers. Thank you

  • Try to use the Emulator Express and I got a path too long when the project try to start. I switched back to Full Emulator and it works fine. I'm going to gather more details if I can and I will post back.

  • Start and Stop Vm's through Visual Studio: awesome!! =]

  • excellent SDK,
    specially VS 2013 VM

  • After several attempts, webPI still says:

    "This product did not install successfully: Downloaded file failed signature verification and may have been tampered with"

    You guys might need to check out the webpi install package.

  • -> The last Windows Azure Powershell 0.6.18 release is not yet available neither on Web Platform Installer neither on official GitHub.
    -> Anyone has a download link please?

    You can download the latest command line tools from here: http://www.windowsazure.com/en-us/downloads/#cmd-line-tools

  • I tried everything I could on this path too long error and I can't figure out why it doesn't work. So far it seems that it has something to do with converting a 2.0 project to 2.1. The reason I say that is that I created a brand new project with the same characteristics as far as name is concern and it works fine.
    BTW, I have one project which has a much longer path than the one that is failing and that one is working. Because of that, I thought it was because of spaces or periods in the name, but that even though I followed the same naming in the new project it worked.

  • @Pete and @MCKLMT

    I just tried the Windows Azure PowerShell WebPI feed. It actually installs 0.6.18 for me. One thing is that the updated date didn't get changed in the feed. I'm working on fix it. Will let you know when it's done.

    @Pete, could you clean up the folder under C:\Users\guayan\AppData\Local\Microsoft\Web Platform Installer\logs, try install again and then send me the log files if you still see the error? My email is Guang.Yang@microsoft.com.

    The standalone installer can be found at both https://github.com/WindowsAzure/azure-sdk-tools/releases and https://github.com/WindowsAzure/azure-sdk-tools/wiki/Downloads. GitHub recently added the releases page and we are in the middle of moving the standalone download list over. For now, we will have installers for recent releases in both places.

  • -> After several attempts, webPI still says:
    -> "This product did not install successfully: Downloaded file failed signature verification and may have been tampered with"
    -> You guys might need to check out the webpi install package.Pete,

    We require that you have the latest windows security updates installed on your computer, in particular hotfix KB2749655 http://support.microsoft.com/kb/2749655. Additionally, the installation will fail if you computer is in a 'pending reboot' state (which happens after installing a program or update that requires a restart of your computer). If you are still experiencing issues after applying this patch please keep us posted so that we can resolve your issue.

    Thanks,
    Joost

  • Are there any updates to ServiceBus for Windows Server included in this release? There was an issue with 2.0 libraries which could not be used on SB for WinServer. Is that resolved in 2.1?

  • I second the question asked by Dragan Panjkov regarding Service Bus for Windows Server. With the 2.0 release, the "single API for cloud/on-premis environments" was broken (i.e. the 2.0 release don't support Service Bus on Windows Server).

    Scott, we're still a large number of developers/companies that ship software that run both in the cloud and on-premise; and, we'd like to take advantage of more the tables, queues and topics features available in the cloud.

    When are we going to see a 2.0 release of Service Bus for Windows Server?

  • If I write a Windows Phone app on an Azure Visual Studio VM, can I run it on a Windows Phone emulator hosted on that same VM?

  • WebPI feed for Windows Azure PowerShell is updated with the correct update time.

  • @Anders Borum, The Service Bus client library in SDK 2.1 is symmetric and compatible with Azure Service Bus as well as Service Bus 1.1 for Windows Server (preview) http://msdn.microsoft.com/en-us/library/windowsazure/dn282144(v=azure.10).aspx

    This SDK 2.1 will continue to function for the RTM bits for the Service Bus 1.1 release too. As there is no update released at this time for Service Bus 1.0 for Windows Server, SDK 2.1 and 2.0 are not compatible with that version. However all the functionality in SB 1.0 is available using SDK 1.8 client library (which is also supported in Azure Service Bus). So for every On-premise version you choose for Service Bus you have a symmetric client library available for Service Bus on-premise and Azure Service Bus.

  • @omeszar Could you give us more details about your package and environment? e.g. OS version, VS version, .Net version, etc. Please send to my email address: Hyonho.Lee@microsoft.com . Also, did you run it from VS or using csrun.exe? If you can send us procmon trace of the startup, it would be great. Path too long error occurs during build process, so it should not be related with the emulator. Did you get the error during build process, or starting up of emulator? Thanks.

  • Great SDK! This is what we were expecting since long times, especially for VS 2013 VM

  • @abhishekrlal

    Thanks for the clarification - so, just to be clear: The Service Bus SDK 2.1 supports both Windows Server and Windows Azure.

    What I'm also wondering about (and part of my previous question) is when we're going to see new features available in Service Bus for Windows Server. I realize the two environments are quite different, but it would be nice as a software developer (with the requirement of supporting cloud / on-premise) to be able to develop a single code base (e.g. using queues and topics, but also table storage).

    As table storage is not currently available in Service Bus for Windows Server, we're left with two different implementations. What's the reason there are just two features in Service Bus for Windows Server?

  • I'm impressed with your updates, particularly the vs tooling and paired namespaces. I'm again disappointed with the lack of CORS support for storage containers. These 'couple weeks' have stretched into a 'few months' and counting. *Tries to wait patiently*

    Do we have any better estimate on when this feature (CORS) will make it into azure storage?

  • Great stuff...Have been waiting for this long time.

Comments have been disabled for this content.