Synopses & Reviews
Welcome to the era of software reuse! Microsoft Enterprise Library helps accelerate development by providing reusable components and guidance on proven practices. If you build applications that run on the Microsoft .NET Framework, whether they are enterprise-level business applications or even relatively modest Windows® Forms, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), or ASP.NET applications, you can benefit from using Enterprise Library. This guide helps you to quickly grasp what Enterprise Library can do for you, presents examples, and makes it easier for you to start experimenting with Enterprise Library. Enterprise Library is made up of a series of application blocks, each aimed at managing specific cross-cutting concerns.
The guide will walk you through the most common usage scenarios for each of the functional application blocks, including:
- Improving performance by utilizing a local in-memory or isolated storage cache.
- Calling into your database stored procedures and managing the results exposed as a sequence of objects for client side querying.
- Incorporating cryptography mechanisms to protect your data.
- Designing and implementing a consistent strategy for managing exceptions that occur in various architectural layers of your application.
- Implementing system logging through the wide variety of out-of-the box logging sinks or your custom provider.
- Performing structured and easy-to-maintain validation using attributes and rules sets.
The guide also demonstrates various ways of configuring Enterprise Library blocks. Let Enterprise Library do the heavy lifting for you and spend more time focusing on your business logic and less on application plumbing.
“You are holding in your hands a book that will make your life as an enterprise developer a whole lot easier.” Scott Guthrie Corporate Vice-President, Microsoft .NET Developer Platform
The Microsoft Enterprise Library is a collection of reusable software components (application blocks) designed to assist software developers with common enterprise development cross-cutting concerns (such as logging, validation, data access, exception handling, and many others). This book is designed to help developers on teams that have chosen to adopt Enterprise Library get up to speed quickly.
Make the right architectural decisions up front—and improve the quality and reliability of your results. Led by two enterprise programming experts, you’ll learn how to apply the patterns and techniques that help control project complexity—and make systems easier to build, support, and upgrade—right from the start.
Get pragmatic architectural guidance on how to: Build testability, maintainability, and security into your system early in the design Expose business logic through a service-oriented interface Choose the best pattern for organizing business logic and behavior Review and apply the patterns for separating the UI and presentation logic Delve deep into the patterns and practices for the data access layer Tackle the impedance mismatch between objects and data Minimize development effort and avoid over-engineering—and deliver more robust results
Get code samples on the Web.
About the Author
Dino Esposito is a well-known ASP.NET and AJAX expert. He speaks at industry events, including DevConnections and Microsoft TechEd, contributes to MSDN Magazine and other publications, and has written several popular Microsoft Press books, including Microsoft ASP.NET and AJAX: Architecting Web Applications.
Table of Contents
Acknowledgments; Dinos Credits; Andreas Credits; Introduction; What Is Architecture?; Who This Book Is For; Companion Content; Hardware and Software Requirements; Find Additional Content Online; Support for This Book; Part I: Principles; Chapter 1: Architects and Architecture Today; 1.1 Whats a Software Architecture, Anyway?; 1.2 Whos the Architect, Anyway?; 1.3 Overview of the Software Development Process; 1.4 Summary; 1.5 Murphys Laws of the Chapter; Chapter 2: UML Essentials; 2.1 UML at a Glance; 2.2 UML Diagrams; 2.3 Summary; 2.4 Murphys Laws of the Chapter; Chapter 3: Design Principles and Patterns; 3.1 Basic Design Principles; 3.2 Object-Oriented Design; 3.3 From Principles to Patterns; 3.4 Applying Requirements by Design; 3.5 From Objects to Aspects; 3.6 Summary; 3.7 Murphys Laws of the Chapter; Part II: Design of the System; Chapter 4: The Business Layer; 4.1 Whats the Business Logic Layer, Anyway?; 4.2 The Transaction Script Pattern; 4.3 The Table Module Pattern; 4.4 The Active Record Pattern; 4.5 The Domain Model Pattern; 4.6 Summary; 4.7 Murphys Laws of the Chapter; Chapter 5: The Service Layer; 5.1 Whats the Service Layer, Anyway?; 5.2 The Service Layer Pattern in Action; 5.3 Related Patterns; 5.4 Service-Oriented Architecture; 5.5 The Very Special Case of Rich Web Front Ends; 5.6 Summary; 5.7 Murphys Laws of the Chapter; Chapter 6: The Data Access Layer; 6.1 Whats the Data Access Layer, Anyway?; 6.2 Designing Your Own Data Access Layer; 6.3 Crafting Your Own Data Access Layer; 6.4 Power to the DAL with an O/RM Tool; 6.5 To SP or Not to SP; 6.6 Summary; 6.7 Murphys Laws of the Chapter; Chapter 7: The Presentation Layer; 7.1 User Interface and Presentation Logic; 7.2 Evolution of the Presentation Patterns; 7.3 Design of the Presentation; 7.4 Idiomatic Presentation Design; 7.5 Summary; 7.6 Murphys Laws of the Chapter; Final Thoughts; Mantra #1It Depends; Mantra #2Requirements Are Lord Over All; Mantra #3Program to an Interface; Mantra #4Keep It Simple but Not Simplistic; Mantra #5Inheritance Is About Polymorphism, Not Reuse; Mantra #6Not the DAL? Dont Touch SQL Then; Mantra #7Maintainability First; Mantra #8All User Input Is Evil; Mantra #9Post-Mortem Optimization; Mantra #10Security and Testability Are by Design; The Northwind Starter Kit; Motivation for Creating NSK; Whats in NSK?; Future Evolution of NSK; About the Authors; Dino Esposito; Andrea Saltarello; Additional Resources for Developers from Microsoft Press; Visual Basic; Visual C#; Web Development; Data Access; .NET Framework; Other Developer Topics; More Great Developer Resources; Developer Step by Step; Developer Reference; Focused Topics;