SOA with .NET and Windows Azure: Realizing Service-Orientation with the Microsoft Platform

Hardcover
from $0.00

Author: Thomas Erl

ISBN-10: 0131582313

ISBN-13: 9780131582316

Category: Enterprise Application Development & Integration

Search in google:

“Explaining the intersection of these two worlds—service-orientation and .NET technologies—is exactly what this book does. Its team of specialist authors provides a concrete, usable guide to this combination, ranging from the fundamentals of service-orientation to the more rarified air of .NET services in the cloud and beyond. If you’re creating service-oriented software on the Microsoft platform—that is, if you’re a serious .NET developer—mastering these ideas is a must.”—From the Foreword by David Chappell, Chappell & Associates“Microsoft’s diverse product line has long supported the service-oriented enterprise, but putting it all together into a cohesive whole can be daunting. From more established products, like Windows Communication Foundation, Windows Workflow Foundation, Microsoft Office SharePoint Server, and BizTalk Server, to newer offerings like Windows Azure and AppFabric, the experts assembled here expose the sweet spots for each technology, talk through the high-level trade-offs, and offer a roadmap to a unified Microsoft SOA story.”—Kevin P. Davis, Ph.D., Software Architect“This book excels in giving hands-on and in-depth expertise on the SOA architecture style with the .NET framework and the Azure cloud platform. It’s a practical guide for developers, architects, and SOA implementers. A must read!”—Ricardo P. Schluter, ICT Architect, Parnassia Bavo Group“While the industry overall may have hyped ‘the cloud’ to the level it often seems to cure world hunger, SOA with .NET and Windows Azure helps cut through the questions and hype and more clearly discusses the benefits and practical techniques for putting it to work in the real world. This book helps you understand the benefits associated with SOA and cloud computing, and also the techniques for connecting your current IT assets with new composite applications and data running in the cloud. This book will help you understand modern middleware technologies and harness the benefits of the cloud both on and off premises.”—Burley Kawasaki, Director of Product Management, Microsoft“The authors have a combined SOA and .NET experience of several decades–which becomes obvious when reading this book. They don’t just lead you down one path with a single descriptive solution. Instead, the sometimes nasty trade-offs that architects face in their design decisions are addressed. These are then mapped to the Microsoft .NET platform with clear code examples. A very refreshing look at this major contender in the SOA space and a definite must for the .NET SOA practitioner!”—Dr. Thomas Rischbeck, IT Architect, Innovation Process Technology“In order to evolve as a software craftsman one must read excellent books that will help you grow and evolve in your profession. One of those books that every software craftsmen interested in good design and best practices should read is SOA with .NET and Windows Azure. With this book, you will learn which design patterns will provide the best solution for the kinds of software design problems you, as a developer or designer, face every day. This book has everything that software architects, software designers, and programmers need to know when building great quality software with Microsoft technologies.“This will undoubtedly be one of those books that you reference repeatedly when starting new SOA projects. There is plenty of information that even those not working with typical service-oriented architecture will find very useful. With plenty of real-life examples (code, design, and modeling), readers see in a practical manner how they could use SOA patterns to solve everyday software problems and be more productive. SOA with .NET and Windows Azure will fit in my top three books and will definitely be one of those that I will use in my everyday work.”—Arman Kurtagic, Consultant at Omegapoint ABThe Authoritative Guide to Building Service-Oriented Solutions with Microsoft .NET Technologies and the Windows Azure Cloud Computing PlatformIn SOA with .NET and Windows Azure, top Microsoft technology experts team up with Thomas Erl to explore service-oriented computing with Microsoft’s latest .NET service technologies and Windows Azure innovations.The authors provide comprehensive documentation of on-premise and cloud-based modern service technology advancements within the Microsoft platform and further show how these technologies have increased the potential for applying and realizing service-orientation practices and goals.Specifically, the book delves into Microsoft enterprise technologies, such as: Windows Communication Foundation (WCF) Windows Azure Windows Workflow Foundation (WF) Windows Azure AppFabric BizTalk Server Windows Presentation Foundation (WPF)...as well as industry service mediums, including WS-* and REST, and many related service industry standards and technologies.The book steps through common SOA design patterns and service-orientation principles, along with numerous code-level examples that further detail various technology architectures and implementations.Topic AreasThis book covers the following primary topics: Microsoft Service Technologies Microsoft Enterprise Technologies On-Premise & Cloud-Based Service Topics Industry Service Technologies & Mediums Service-Oriented Technology Architectural Models Service-Orientation Design Paradigm Service-Orientation Design Principles SOA Design PatternsAbout the Web SitesThis book series is further supported by a series of resources sites, including: www.soabooks.com www.soaspecs.com www.soamag.com www.serviceorientation.com www.soapatterns.org www.soaprinciples.com www.whatissoa.com

Foreword by S. Somasegar xxxiForeword by David Chappell xxxiiiAcknowledgments xxxvCHAPTER 1: Introduction 11.1 About this Book 21.2 Objectives of this Book 31.3 Who this Book is For 41.4 What this Book Does Not Cover 41.5 Prerequisite Reading 41.6 How this Book is Organized 6Part I: Fundamentals 7Chapter 3: SOA Fundamentals 7Chapter 4: A Brief History of Legacy .NET Distributed Technologies 7Chapter 5: WCF Services 7Chapter 6: WCF Extensions 7Chapter 7: .NET Enterprise Services Technologies 7Chapter 8: Cloud Services with Windows Azure 8Part II: Services and Service Composition 8Chapter 9: Service-Orientation with .NET Part I: Service Contracts and Interoperability 8Chapter 10: Service-Orientation with .NET Part II: Coupling, Abstraction, and Discoverability 8Chapter 11: Service-Orientation with .NET Part III: Reusability and Agnostic Service Models 8Chapter 12: Service-Orientation with .NET Part IV: Service Composition and Orchestration Basics 9Chapter 13: Orchestration Patterns with WF 9Chapter 14: Orchestration Patterns with BizTalk Server 9Part III: Infrastructure and Architecture 9Chapter 15: Enterprise Service Bus with BizTalk Server and Windows Azure 9Chapter 16: Windows Azure Platform AppFabric Service Bus 10Chapter 17: SOA Security with .NET and Windows Azure 10Chapter 18: Service-Oriented Presentation Layers with .NET 10Chapter 19: Service Performance Optimization 10Chapter 20: SOA Metrics with BAM 10Part IV: Appendices 10Appendix A: Case Study Conclusion 10Appendix B: Industry Standards Reference 11Appendix C: Service-Orientation Principles Reference 11Appendix D: SOA Design Patterns Reference 11Appendix E: The Annotated SOA Manifesto 11Appendix F: Additional Resources 111.7 How Principles and Patterns are Used in this Book 11Sources 11Reference Notation 121.8 Symbols, Figures, and Style Conventions 13Symbol Legend 13How Color is Used 13Additional Information 13Updates, Errata, and Resources (www.soabooks.com) 13Master Glossary (www.soaglossary.com) 13Referenced Specifications (www.soaspecs.com) 13SOASchool.com™ SOA Certified Professional (SOACP) 14The SOA Magazine (www.soamag.com) 14Notification Service 14CHAPTER 2: Case Study Background 152.1 How Case Studies Are Used 162.2 Case Study Background #1: Standard Mold 16History 16Technical Infrastructure 16Business Goals and Obstacles 172.3 Case Study Background #2: Superior Stamping 18History 18Technical Infrastructure 18Business Goals and Obstacles 19PART I: FUNDAMENTALS CHAPTER 3: SOA Fundamentals 233.1 Basic SOA Terminology 24Service-Oriented Computing 25Service-Orientation 25Service-Oriented Architecture (SOA) 27Services 28Services as Components 29Services as Web Services 30Services as REST Services 31Service Models 31Agnostic Logic and Non-Agnostic Logic 32Service Composition 33Service Inventory 34Service-Oriented Analysis 34Service Candidate 35Service-Oriented Design 35Service Contract 36Service-Related Granularity 37SOA Design Patterns 383.2 Service-Oriented Computing Goals 40Increased Intrinsic Interoperability 40Increased Federation 40Increased Vendor Diversification Options 40Increased Business and Technology Domain Alignment 413.3 Further Reading 41CHAPTER 4: A Brief History of Legacy .NET Distributed Technologies 434.1 Distributed Computing 101 44Client-Server 44Distributed Architecture 45Service-Oriented Architecture 474.2 .NET Enterprise Services 48It All Began with COM (and DCOM) 48COM+ Services 49.NET Assemblies 51Distributed Transaction Coordinator 51.NET Enterprise Services and Service-Orientation 534.3 .NET Remoting 54.NET Remoting Architecture 54Serializable Classes 56Remotable Classes 56Ordinary Classes 56Hosting .NET Remoting Components 56Windows Service 56IIS Hosting Under ASP.NET 57Hosting a .NET Remoting Component in a Console Application 57.NET COM+ Services 57.NET Remoting Configurations 57Activation Types 58Message Formats 60Communication Protocols 60Object Lifetime Management 61.NET Remoting and Service-Orientation 614.4 Microsoft Messaging Queue (MSMQ) 63The Queues 64Sending and Receiving Messages 65MSMQ and Service-Orientation 664.5 System.Transactions 67Distributed Resource Transactions 67Explicit and Implicit Programming Models 68Ambient Transactions 694.6 Web Services (ASMX and WSE) 70The WebService Attribute 71The WebMethod Attribute 72Web Service Enhancements (WSE) 734.7 REST Service Processing with IHttpHandler 74CHAPTER 5: WCF Services 755.1 Overview 765.2 Service Contracts with WCF 78WCF Terminology 78WCF Service Contract 78Interface Contract 78Operation Contract 78Data Contract 78Message Contract 79Service Endpoint 79The ServiceContract and OperationContract Attributes 79Data Models and the DataContract Attribute 82Messaging and the MessageContract Attribute 83Service Endpoints and the endpoint Element 86Address 88Bindings 89Contract 92REST Service Classes and Attributes 92The WebGet Attribute 93The WebInvoke Attribute 95WCF UriTemplate Attribute 96Faults and the FaultContract Attribute 98MEX Endpoints 100Versioning Considerations 1025.3 Service Implementation with WCF 104Behaviors 104Instancing 105A Sample Implementation 1065.4 Service Hosting with WCF 108Self-Hosted Services 110Managed Windows Services 112IIS Process Boundary 113Windows Activation Services (WAS) 114Hosting REST Services 1155.5 Service Consumers with WCF 116Using the Service Metadata Tool 117Writing the Proxy Class for a Service 118Using the ChannelFactory Class 119CHAPTER 6: WCF Extensions 1216.1 WCF Security 122Security Modes 123Authorization 125Federated Identity 1266.2 WCF Transactions 127Operation Attributes for Transactions 127TransactionScopeRequired 128TransactionAutoComplete 128TransactionFlow 128Service Attributes for Transactions 129TransactionIsolationLevel 129TransactionAutoCompleteOnSessionClose 130TransactionTimeout 130Durable Services 1316.3 WCF Router 132The RoutingService Class 133Routing Contracts 134Routing Configuration 135Step 1: Define Endpoints 135Step 2: Configure Service Behavior 136Step 3: Enumerate Target Endpoints 136Step 4: Define Message Filters 137Step 5: Create a Filter Table 138Fault Tolerance 1396.4 WCF Discovery 140Discovery Modes 141Locating a Service Ad Hoc 143Sending and Receiving Service Announcements 144Discovery Proxies for Managed Discovery 146Discovering from a Discovery Proxy 146Implicit Service Discovery 1476.5 WCF Extensibility 148WCF Layers 149Layered Extensibility 149Channel Layer Extensibility 1506.6 WCF Management Tools 151Administration 151Troubleshooting 151Logging Messages 153CHAPTER 7: .NET Enterprise Services Technologies 1557.1 SQL Server 156NativeService Broker (SSB) 160Query Notification 1657.2 Windows Workflow Foundation (WF) 166WF Architecture 167Workflows 168Sequential Workflows 169State Machine Workflows 169Workflow Designer 169Workflow Persistence (with WF) 170Communicating with the Host Container 171Activities 172Workflow Runtime Environment 175WF Programming Model 176Passing Parameters into a Workflow Instance 178Returning Parameters from a Workflow Instance 178Workflow-Enabled Services 179Versioning Orchestrations 180WF Extensibility 180Business Rules 1807.3 Application Blocks and Software Factories 181Application Blocks 182Software Factories 184Guidance Toolkits 184Web Services Software Factory 1847.4 Windows Server AppFabric 187Configurable Hosting Environment 188Workflow Persistence (with AppFabric) 189In-Memory Application Cache Platform 190Manageability Extensions 192Application Server Event Collector 1927.5 BizTalk Server 193BizTalk Server Architecture 194Messaging 196Pipelines 197Pipeline Components 198Ports and Locations 199Adapters 199Context Properties 200Itineraries 201Unified Exception Management 202CHAPTER 8: Cloud Services with Windows Azure 2058.1 Cloud Computing 101 206Cloud Deployment Models 208Public Cloud 208Private Cloud 208Community Cloud 209Other Deployment Models 209The Intercloud (Cloud of Clouds) 209Deployment Models and Windows Azure 210Service Delivery Models 210Infrastructure-as-a-Service (IaaS) 210Platform-as-a-Service (PaaS) 211Software-as-a-Service (SaaS) 211Other Delivery Models 211IaaS vs. PaaS 2118.2 Windows Azure Platform Overview 213Windows Azure (Application Container) 216SQL Azure 217Windows Azure Platform AppFabric 2188.3 Windows Azure Roles 219Web Roles and Worker Roles 220Virtual Machines 220Input Endpoints 221Inter-Role Communication 2228.4 Hello World in Windows Azure 2231. Create a Cloud Service Project 2242. Choose an ASP.NET Web Role 2243. Create the Solution 2254. Instantiate the Service 2268.5 A Web Service in Windows Azure 2271. Create a Host Service and Storage Service 2332. Create and Deploy a Service Package 2333. Promote the Service to Production 2348.6 A REST Service in Windows Azure 235REST Service Addressing 235Creating a Windows Azure REST Service 2368.7 Windows Azure Storage 239Tables 240Entities and Properties 240Data Access 241Queues 241Blobs 242Block BlobsPage Blobs 243Windows Azure Drive 243PART II: SERVICES AND SERVICE COMPOSITIONCHAPTER 9: Service-Orientation with .NET Part I: Service Contracts and Interoperability 2479.1 Standardized Service Contract 250Contract-First 2501. Create or Reuse Data Contract 2512. Create Message Contract 2513. Create Interface Contract 252Standardized Service Contract and Patterns 2529.2 Canonical Schema 253Creating Schemas with Visual Studio 254Generating .NET Types 258Using the DataContract Library 2649.3 Data Model Transformation 267Object-to-Object 269LINQ-to-XSLT Transformation 2729.4 Canonical Protocol 274Web Service 275REST Service 277Component 278Another WCF Option: Named Pipes 279Dual Protocols with WCF 2799.5 Canonical Expression 280Service Naming Conventions 280Service Capability Naming Conventions 281CHAPTER 10: Service-Orientation with .NET Part II: Coupling, Abstraction, and Discoverability 28310.1 Service Loose Coupling 285Service Loose Coupling and Patterns 28610.2 Decoupled Contract 288WSDL-First 289Generating Service Code Using Svcutil 294Generating WCF Service Code Using WSCF.blue 297Generating ASMX Service Code Using WSCF.classic 30210.3 Service Façade 30410.4 Concurrent Contracts 30710.5 Service Loose Coupling and Service Capability Granularity 30810.6 Service Abstraction 31310.7 Validation Abstraction 31510.8 Exception Shielding 31910.9 Service Discoverability 321In-line Documentation 322REST and Hypermedia 323Service Profiles 32310.10 Metadata Centralization 325CHAPTER 11: Service-Orientation with .NET Part III: Reusability and Agnostic Service Models 32711.1 Service Reusability and the Separation of Concerns 329Functional Decomposition 330Service Encapsulation 332Agnostic Context 332Agnostic Capability 334Utility Abstraction 335Entity Abstraction 336The Inventory Analysis Cycle 337Additional Design Considerations 33911.2 Case Study Example: Utility Abstraction with a .NET Web Service 33911.3 Case Study Example: Entity Abstraction with a .NET REST Service 351CHAPTER 12: Service-Orientation with .NET Part IV: Service Composition and Orchestration Basics 36912.1 Service Composition 101 371Service-Orientation and Service Composition 371Service Composability (PSD) 373Capability Composition and Capability Recomposition 374Capability Composition 375Capability Recomposition 375Composition Roles 377Service Layers 377Non-Agnostic Context 379Process Abstraction and Task Services 38012.2 Orchestration 382Process Abstraction, Process Centralization, and Orchestrated Task Services 382Process Centralization and Tools 384Process Abstraction and WS-BPEL 385State Repository and Compensating Service Transaction 385State Repository with .NET 386Compensating Service Transaction 387Other Patterns 388Microsoft Orchestration Platforms: WF and BizTalk Server 388CHAPTER 13: Orchestration Patterns with WF 39313.1 Process Abstraction and Orchestrated Task Services 397A Brief History of WF Service Contract Support 397Publishing WF Workflows as Web Services and Activities 399Workflows Published as ASMX Services 399Workflows Published via WCF 3.5 Activities 408Workflows Published via WCF 4.0 Activities 410Workflows Published via ExternalDataExchange Services 413WS-I BasicProfile Support 417Publishing WF Workflows as REST Services 419JSON Encoding 421Send and Receive Activity Configuration 422Orchestrated Task Services with REST and WF 4.0 42313.2 Process Centralization 425Centralized Process Maintenance 425WS-BPEL Support 42613.3 State Repository 426SQL Persistence Service and Scaling Out in WF 3.0 429SQL Persistence Service and Scaling Out in WF 4 43113.4 Compensating Service Transaction 434Creating Compensations 434Triggering Compensations 43513.5 Case Study Example 436CHAPTER 14: Orchestration Patterns with BizTalk Server 44114.1 Process Abstraction and Orchestrated Task Services 443Orchestrated Task Service Contracts 445WS-* Support 447Case Study Example 44814.2 Process Centralization 450Centralized Process Maintenance 450WS-BPEL Support 451Exporting BizTalk Orchestrations to WS-BPEL 451Importing WS-BPEL Processes into BizTalk 45414.3 State Repository 45514.4 Compensating Service Transaction 456Case Study Example 459PART III: INFRASTRUCTURE AND ARCHITECTURECHAPTER 15: Enterprise Service Bus with BizTalk Server and Windows Azure 46515.1 Microsoft and the ESB 46615.2 Integration with BizTalk 467Application Integration 101 467The BizTalk Hub-Bus Model 46915.3 The ESB Toolkit 470Itineraries 472Itineraries Types 474The Itinerary Lifecycle 475Resolvers 476Adapter Providers 478WCF-Custom and REST Services 47915.4 Distributed and Scalable ESB Architecture 480Configuring for High-Availability 480Techniques for Scaling 481Distributed ESBs 48215.5 Cloud-Enabling the ESB with Windows Azure 483Receiving Messages from Azure’s AppFabric Service Bus 484Sending Messages to Azure’s AppFabric Service Bus 48515.6 Governance Considerations 487SLA Enforcement 488Monitoring 488Preparing Project Teams 48915.7 Mapping the Microsoft Platform to the Enterprise Service Bus Pattern 490CHAPTER 16: Windows Azure Platform AppFabric Service Bus 49316.1 Introducing the Service Bus 494Connectivity Fabric 494Message Buffers 496Service Registry 49716.2 Service Bus and REST 498REST-Based Service Design 498REST-Based Service Consumer Design 499Message Buffers and REST 49916.3 Service Bus Connectivity Models 499Eventing 500Service Remoting 501Tunneling 50116.4 Working with Windows Azure Platform AppFabric Service Bus 503Setting up the AppFabric Service Bus 504Defining a REST-Based Service Bus Contract 513Creating the Service Bus Message Buffer 514CHAPTER 17: SOA Security with .NET and Windows Azure 51717.1 Authentication and Authorization with WCF 518Direct and Brokered Authentication 518Direct Authentication 518Brokered Authentication 519Authentication Patterns in WCF 520Role-Based Authorization 520Authorization Roles in WCF 521Authorizing Operations with Roles 523Claims-Based Authorization 524Claims Processing in WCF 526Implementing Claims-Based Authorization 527Access Control in Windows Azure 528Designing Custom Claims 529Case Study Example 53017.2 Windows Identity Foundation (WIF) 533Digital Identity 534The Identity Metasystem 534Windows Cardspace 536Active Directory Federation Services (ADFS) 539WIF Programming Model 540WCF Integration 540Programming Windows Cardspace 540Developing a Relying Party 541Developing an Identity Provider 54217.3 Windows Azure Security 543Cloud Computing Security 101 543Cross-Domain Access Control 544Hybrid Cloud Security 545Inter-Organization Service Composition Security 545External Identity Providers 546Claims-Based Access Control, As-A-Service 546Windows Azure Platform AppFabric Access Control Overview 548Access Control Step-by-Step 550Access Control and REST 552Access Control Service Authorization Scenarios 553Hybrid Cloud Authorization Model 553Public Cloud Authorization Model 554Cloud-to-Cloud Authorization Model 554Case Study Example 555CHAPTER 18: Service-Oriented Presentation Layers with .NET 55718.1 Windows Presentation Foundation and the Prism Library 559Shell 561Views 562View Discovery versus View Injection 563Regions 563Modules 565Shared Services 56618.2 Design Patterns for Presentation Logic 567User Interface Patterns 567Composite View [CJP] 568Command [DP] 568UI Mediator 568Separated Presentation 568Modularity Patterns 569Separated Interface [PEA] 570Plug-In [PEA] 570Event Aggregator [PEA] 570Inversion of Control [DP] 570Dependency Injection [PEA] 570Service Locator [CJP] 57118.3 A Simple Service-Oriented User Interface 571Creating the Project 571Dynamically Loading Modules 579CHAPTER 19: Service Performance Optimization 58319.1 Overview 584Optimization Areas 585Service Implementation Processing 585Service Framework Processing 586Wire Transmission Processing 58619.2 Service Performance Optimization Techniques 586Caching to Avoid Costly Processing 587Intermediary 589Service Container 589Service Proxy 590Caching Utility Service 590Comparing Caching Techniques 591Cache Implementation Technologies 592Computing Cache Keys 593Case Study Example 594Method 1 597Method 2 598Caching REST Responses 599Monitoring Cache Efficiency 601Reducing Resource Contention 603Request Throttling 604Throttling With WCF 605Case Study Example 606Request Throttling with BizTalk Server 607Coarse-Grained Service Contracts 608Case Study Example 609Selecting Application Containers 610Performance Policies 612Case Study Example 620REST Service Message Sizes 621Hardware Encryption 622Transport Encryption 622Message Encryption 623Custom Encryption Solution 623High Performance Transport 625Case Study Example 626MTOM Encoding 627Case Study Example 628Performance Considerations for Service Contract Design 630Case Study Example 631Impact on Service-Orientation Principles 63319.3 Service Composition Performance Optimization Techniques 637Transformation Avoidance and Caching 637Asynchronous Interactions 639Parallelize Where Possible 641Parallel Activity in WF 641Parallel Execution in BizTalk Server 643Replicator Activity in WF 644Consider Co-Hosting When Necessary 645Compose High Performance Services 648Impact on Service-Orientation Principles 648CHAPTER 20: SOA Metrics with BAM 65320.1 SOA Metric Types 65420.2 Introducing BizTalk BAM 655BizTalk and BAM 655BAM Solution Architecture 656The BAM Management Utility 659The Tracking Profile Editor (TPE) 659Real-Time vs Scheduled Aggregations 66020.3 Activities and Views 661Roles-based Views for Service Governance 662Creating Views 66320.4 BAM APIs 665Event Streams 665DirectEventStream (DES) 665BufferedEventStream (BES) 665OrchestrationEventStream (OES) 666IPipelineContext Interface 666Abstracted APIs for Service Metrics 666Metrics for Service Compositions 669WCF and WF Interceptors 670Notifications 670Rapid Prototyping 67120.5 Managing BAM 672Database Outages 672Security 672Scripting Deployment 673Reporting 676Case Study Example 677PART IV: APPENDICESAPPENDIX A: Case Study Conclusion 685APPENDIX B: Industry Standards Reference 687APPENDIX C: Service-Orientation Principles Reference 691APPENDIX D: SOA Design Patterns Reference 707APPENDIX E: The Annotated SOA Manifesto 795The Annotated SOA Manifesto 796APPENDIX F: Additional Resources 809Consuming Services with WCF 811Introduction 811Cleaning Up Resources 812The Proper Disposal and Closing of an ICommunicationObject 812The ICommunicationObject.Close() Method 812The ICommunicationObject.Abort() Method 814Abort() versus Close() 814IDisposable for Cleaning Up Resources 814IDisposable and Its Relation to ClientBase and ChannelFactory 815Cleaning Up Resources with the Using Block 816Cleaning Up Resources with the Try-Catch-Finally-Abort Pattern 817Handling Exceptions and Cleaning Up Resources with the Try-Close-Catch-Abort Pattern 818Cleaning Up Resources in a Convenient Way 819How to Handle Connections when Consuming Services Using WCF 822Conclusion 823About the Authors 825About the Contributors 829About the Foreword Contributors 831Index 833