Enterprise Library 5.0 Integration Pack for Microsoft Azure
This content and the technology described is outdated and is no longer being maintained. For more information, see Transient Fault Handling.
Microsoft Enterprise Library is a collection of reusable application blocks that address common cross-cutting concerns in enterprise software development. The Microsoft Enterprise Library Integration Pack for Microsoft Azure is an extension to Microsoft Enterprise Library 5.0 that can be used with the Microsoft Azure technology platform. It includes the Autoscaling Application Block, Transient Fault Handling Application Block, blob configuration source, protected configuration provider, and learning materials.
Binaries and source also available via NuGet.
Building Elastic and Resilient Cloud Applications: Developer's Guide to the Enterprise Library Integration Pack for Microsoft Azure is available in paperback from Amazon.com
Feedback and Issue Reporting
CloudCover Show Episode 68 - Transient Fault Handling Application Block demo (with background information on SQL Azure Throttling)
The Enterprise Library Integration Pack for Microsoft Azure extends Microsoft Enterprise Library 5.0 to add additional support for developing and managing Azure applications. It shares the same benefits as Enterprise Library and helps developers achieve the same goals.
The Enterprise Library Integration Pack for Microsoft Azure is a major release, and it contains many compelling new features and updates that will make Azure developers and system administrators more productive:
- Two new application blocks:
- The Autoscaling Application Block to help you to automatically scale your Azure applications.
- The Transient Fault Handling Application Block to help you make your Azure applications more resilient when they encounter transient fault conditions.
- The Blob configuration source to load configuration information from a blob into your Azure Storage account so that you can modify it without having to redeploy your application to Azure.
- Windows PowerShell cmdlets to browse and manipulate the Autoscaling Application Block settings directly from Windows PowerShell.
- Protected configuration provider to allow you to encrypt sections of your configuration files in Azure.
- Updated database creation scripts so that you can migrate your code using the database trace listeners of the Logging Application Block and the Caching Application Block.
Learning resources to help you ramp up quickly, including:
- Reference Documentation
- Developer's Guide
- Reference Implementation that illustrates the use of the application blocks
The Enterprise Library Integration Pack for Microsoft Azure is one of several existing and planned integration packs for Enterprise Library.
The Integration Pack addresses the following high-level scenarios:
- Autoscaling both web and worker roles in Azure by dynamically changing instance counts or performing throttling.
- Autoscaling Azure roles based on timetables.
- Autoscaling Azure roles based on metrics collected from the application and/or Azure but constrained by upper and lower bounds on the instance count per role.
- Managing the autoscaler configuration by using Windows PowerShell.
- Making Azure applications resilient to transient errors when they are using these cloud services: SQL Azure, Azure Storage, Azure Caching, and Azure Service Bus.
- Storing Enterprise Library configuration settings in Azure blob storage.
- Storing Enterprise Library configuration settings securely.
These reusable components and guidance are intended primarily for software developers and software architects developing Azure enterprise applications as well as IT professionals and system administrators managing these applications. To get the greatest benefit from this guidance, developers and architects should have an understanding of the following technologies:
- Microsoft Azure
- Microsoft Visual C# or Microsoft Visual Basic
- Microsoft .NET Framework
Familiarity with Enterprise Library will help but is not required.
Contents of This Release
Microsoft Enterprise Library 5.0 Integration Pack for Microsoft Azure contains the following:
- Binaries (pre-compiled, strong-named assemblies for all the source code)
- Source code
- Symbols for debugging
- Unit tests
For the application blocks:
- Operating systems: Windows 7 Professional or higher, 32-bit and 64-bit; Windows Server 2008 R2 or Windows Server 2008.
- Azure Tools for Visual Studio and Azure SDK v1.6 (all-in-one installer can be found at http://www.microsoft.com/windowsazure/sdk).
- Additionally, in order to run unit tests, Moq is required (v4.0 or later). It will be installed automatically if you install the Enterprise Library Integration Pack for Microsoft Azure Source package via NuGet.
- Optionally, in order to use the Logging Application Block Logger, the Microsoft Enterprise Library 5.0 Logging Application Block is required (available via NuGet or as an MSDN download).
For the Windows PowerShell cmdlets:
- Operating systems: Windows 7 Professional or higher, 32-bit and 64-bit; Windows Server 2008 R2 or Windows Server 2008; Windows PowerShell cmdlets have also been tested on Windows Server 2003.
For the Tailspin Surveys sample application:
- Run the dependency checker and follow the instructions from the Tailspin Surveys installation guide (in the Developer's Guide).
- The Reference Implementation has been tested on Windows 7 Professional 32-bit and 64-bit and on the Windows Server 2008 R2 platforms. It will likely work on other platforms if you satisfy the prerequisites identified by the dependency checker, but those have not been included in the test matrix.
For a rich development environment, the following is recommended:
- Microsoft Visual Studio 2010 Service Pack 1.
The Enterprise Library Integration Pack for Microsoft Azure, like many patterns & practices deliverables, is associated with a community site: www.codeplex.com/entlib. On this community site you can provide feedback and connect with other users to share ideas. You can post questions and get support using the Enterprise Library Discussion forum. You can also download additional content, such as extensions and training material. Community members can also help Microsoft plan and test future releases of Enterprise Library and other application blocks. Community-developed extensions to Enterprise Library and its integration packs are available on the EntLib Contrib site.
Feedback and Support
Questions? Comments? Suggestions? To provide feedback about this release, or to get help with any problems, please visit the Enterprise Library discussion forum and the Enterprise Library community site. The community site is the preferred feedback and support channel because it allows you to share your ideas, questions, and solutions with the entire community. Enterprise Library Integration Pack for Microsoft Azure is a guidance offering, designed to be reused, customized, and extended. Code-based guidance is shipped "as is" and without warranties. Customers can obtain support through Microsoft Premier Support Services for a fee, but the code is considered user-written by Microsoft support staff.
Authors and Contributors
Microsoft Enterprise Library 5.0 Integration Pack for Microsoft Azure was produced by the following individuals:
- Product/Program Management: Grigori Melnik (Microsoft Corporation).
- Architecture/Development: Julian Dominguez (Microsoft Corporation), Fernando Simonazzi (Clarius Consulting), Jérémi Bourgault (nVentive Inc.), Ercenk Keresteci (Full Scale 180 Inc).
- Testing: Mani Krishnaswami and Carlos Farre (Microsoft Corporation), Neeraj Jain, Murugesh Muthuvilavan, Karthick Natarajan, Thamilarasi Nataraj and Rathi Velusamy (Infosys Technologies Ltd.).
- Documentation: Dominic Betts (Content Master Ltd), Nelly Delgado (Microsoft Corporation) and Erwin van der Valk (Erwin van der Valk).
- Editing and production: Richard Burte (ChannelCatalyst.com, Inc.), Rick Carr (DCB Software Testing, Inc), RoAnn Corbisier (Microsoft Corporation), Nancy Michell (Content Master Ltd.) and Katie Niemer (Modeled Computation).
Many thanks to our advisors:
Ivan Bodyagin, (ABBYY), Daniel Piessens (Zywave), Francois Tanguay (nVentive), Trent Swenson (Full Scale 180), Jason De Oliveira (Capgemini Sogeti), Michael Wood (Cumulux Inc.), Paweł Wilkosz (Motorola Solution Systems), Mihai Tataran (HPC Consulting), Ştefan Filip (HPC Consulting), Hans De Graaf (New Day at Work), Marc Remmers (42windmills), Philippe Vialatte, Michael Collier, Nuno Filipe Godinho, Neil Mackenzie, Leandro Boffi, Keith Stobie , Oleg Volkov (New Day At Work), Federico Boerr (Southworks), Nikolai Blackie (Adaptiv), Stas Tkachenko (Arkadium), Sam Fold (Arkadium), Dave Fellows (GreenButton), Guido Vilariño (3mellons/Disney), Gabriel Szletchman (3mellons)), and our Microsoft colleagues: David Aiken, Kashif Alam, Jaime Alva Bravo, Cihan Biyikoglu, Jim Davis, John Dawson, Scott Densmore, Lenny Fenster, Danny Garber, Rick Hines, Tom Hollander, Dmitri Martynov, Steve Marx, Tony Meleg, Suren Machiraju, Ade Miller, Valery Mizonov, Walter Myers, Masashi Narumoto, Bhushan Nene, Eugenio Pace, Curt Peterson, James Podgorski, Srilatha Rayasam, Paolo Salvatori, Marc Schweigert, Mark Simms, Eric Slippern, Vijay Sen, and Tim Wieman.
Particularly, contributions of Valery Mizonov and the Microsoft AppFabric Customer Advisory Team (CAT) are appreciated. The Transient Fault Handling Application Block is based on the detection and retry strategies originally developed by the AppFabric CAT team. The enhanced Transient Fault Handling Application Block is a product of collaboration between the patterns & practices and the AppFabric CAT teams.
Many thanks to Mark Aggar, Rahul Rai, Sudhakar Reddy D V, Maarten Baaliauw, Zoiner Tejada and all beta users who previewed the Enterprise Library Integration Pack for Microsoft Azure and provided meaningful feedback.
- Microsoft patterns & practices Developer Center
- Microsoft Enterprise Library home page
- Microsoft patterns & practices cloud development guidance
Last built: June 7, 2012