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:
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:
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:
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:
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:
Visual Studio will then automatically filter the items that show up in the Server Explorer appropriately:
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:
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:
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.
- On the shortcut menu for the Windows Azure project, choose Properties, and then choose the Web tab.
- 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.
- On the Web tab, choose the option for Emulator Express.
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:
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.
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.
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:
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