Foreword by S. Somasegar
Microsoft Enterprise Library has a long and accomplished history of providing architectural guidance, recommended practices, and reusable components (called “application blocks”) to help developers, architects, and IT professionals efficiently build and deploy line-of-business (LOB) systems.
I’ve been following the evolution of Enterprise Library since the early days of v1.0 back in 2005. Over the years, the Enterprise Library has achieved a significant reach, seeing over 4 million downloads and powering countless customer applications, partner offerings and ISV applications, as well as our own products and services. During this time Enterprise Library helped drive proven development patterns and practices into the mainstream, including dependency injection, transient fault handling, on-demand autoscaling, and semantic logging.
Many development teams have embraced and benefited from systematic application block reuse, focusing on their business logic as opposed to the underlying “plumbing.” Of course, they still configure and customize the application blocks to fit their contexts. As with previous versions, the latest Enterprise Library release contains a wealth of features to help developers, architects, and other IT professionals improve their productivity by providing pre-written, customizable blocks to help them address common cross-cutting concerns in their applications running on-premises on Windows Server or hosted in Microsoft Azure.
The standout feature for me in the latest release of Enterprise Library is the new Semantic Logging Application Block which will help you to move towards a more structured approach to logging in your applications and help you gain operational and business insights from that log data later.
The new version of Enterprise Library not only includes new application blocks but also extends the library’s integration with other technologies, such as ASP.NET MVC and ASP.NET Web API, and simplifies its learning and usage.
The patterns & practices team takes learnability and usability of the library as seriously as developing the blocks themselves. The second edition of the Developer’s Guide is a primer on the core architecture of Enterprise Library and its application blocks. It is fully updated to cover the latest application blocks, including: Data Access, Exception Handling, Logging, Semantic Logging, Policy Injection, Transient Fault Handling, and Validation. The in-depth treatment of the Unity Application Block and Unity Interception is presented in a separate sister guide focused on dependency injection and interception.
The guide uses numerous code samples to showcase various capabilities and to go deeper into each of the blocks. It also provides discussions that relate to the use of Enterprise Library in a variety of scenarios and types of application. Perspectives offered from the personae used—from a software developer to an architect to an IT Pro—contain useful insights and trade-offs.
Keep in mind that this guide is not the only learning resources available to you. It is complemented by a comprehensive set of hands-on labs and a reference implementation. One learns best by practicing. The patterns & practices team provides plenty of ways for you to do so–from small code snippets, to more involved code samples, all the way to a large sample application which you can slice and dice, and experiment with.
The guide is written for a wide variety of software development practitioners–including those experienced with previous versions of Enterprise Library and those who are new to it.
This guide is an absolute must read for anybody looking to put Enterprise Library into practice. Its clear and pragmatic advice is invaluable.
S. Somasegar
Corporate Vice-President
Microsoft Developer Division
Redmond, Washington
November 7, 2013