Synopses & Reviews
Written by Microsoft software legend Juval Lowy, Programming WCF Services is the authoritative introduction to Microsoft's new, and some say revolutionary, unified platform for developing service-oriented applications (SOA) on Windows. Relentlessly practical, the book delivers insight, not documentation, to teach developers what they need to know to build the next generation of SOAs.
After explaining the advantages of service-orientation for application design and teaching the basics of how to develop SOAs using WCF, the book shows how you can take advantage of built-in features such as service hosting, instance management, asynchronous calls, synchronization, reliability, transaction management, disconnected queued calls and security to build best in class applications. Programming WCF Services focuses on the rationale behind particular design decisions, often shedding light on poorly-documented and little-understood aspects of SOA development. Developers and architects will learn not only the "how" of WCF programming, but also relevant design guidelines, best practices, and pitfalls. Original techniques and utilities provided by the author throughout the book go well beyond anything that can be found in conventional sources.
Based on experience and insight gained while taking part in the strategic design of WCF and working with the team that implemented it, Programming WCF Services provides experienced working professionals with the definitive work on WCF. Not only will this book make you a WCF expert, it will make you a better software engineer. It's the Rosetta Stone of WCF.
An authoritative introduction to Microsoft's new, revolutionary, unified platform for developing service-oriented applications (SOA) on Windows, this book delivers insight, not documentation, to teach developers what they need to know to build the next generation of SOAs.
About the Author
Juval Lowy is a software architect and the principal of IDesign (http://www.idesign.net), specializing in WCF architecture consulting and advanced WCF training. Juval is Microsoft's Regional Director for the Silicon Valley, working with Microsoft on helping the industry adopt WCF. He is author of O'Reilly's bestselling "Programming .NET Components", widely recognized by many as the best book for developing .NET-based systems. Juval participates in the Microsoft internal design reviews for WCF and related technologies. He publishes numerous articles on nearly every aspect of .NET development and is a frequent presenter at development conferences. Microsoft has recognized Juval as a Software Legend and as one of the world's top .NET experts and industry leaders.
Table of Contents
Dedication; Foreword; Preface; How This Book Is Organized; Some Assumptions About the Reader; What You Need to Use This Book; Conventions Used in This Book; Using Code Examples; How to Contact Us; Safari® Enabled; Acknowledgments; Chapter 1: WCF Essentials; 1.1 What Is WCF?; 1.2 Services; 1.3 Addresses; 1.4 Contracts; 1.5 Hosting; 1.6 Bindings; 1.7 Endpoints; 1.8 Metadata Exchange; 1.9 Client-Side Programming; 1.10 Programmatic Versus Administrative Configuration; 1.11 WCF Architecture; 1.12 Working with Channels; 1.13 Reliability; Chapter 2: Service Contracts; 2.1 Operation Overloading; 2.2 Contract Inheritance; 2.3 Service Contracts Factoring and Design; 2.4 Contract Queries; Chapter 3: Data Contracts; 3.1 Serialization; 3.2 Data Contract Attributes; 3.3 Data Contract Hierarchy; 3.4 Data Contract Equivalence; 3.5 Versioning; 3.6 Enumerations; 3.7 Delegates and Data Contracts; 3.8 Data Sets and Tables; 3.9 Generics; 3.10 Collections; Chapter 4: Instance Management; 4.1 Behaviors; 4.2 Per-Call Services; 4.3 Per-Session Services; 4.4 Singleton Service; 4.5 Demarcating Operations; 4.6 Instance Deactivation; 4.7 Throttling; Chapter 5: Operations; 5.1 Request-Reply Operations; 5.2 One-Way Operations; 5.3 Callback Operations; 5.4 Events; 5.5 Streaming; Chapter 6: Faults; 6.1 Errors and Exceptions; 6.2 Fault Contracts; 6.3 Error-Handling Extensions; Chapter 7: Transactions; 7.1 The Recovery Challenge; 7.2 Transactions; 7.3 Transaction Propagation; 7.4 Transaction Protocols and Managers; 7.5 The Transaction Class; 7.6 Transactional Service Programming; 7.7 Explicit Transaction Programming; 7.8 Service State Management; 7.9 Instance Management and Transactions; 7.10 Callbacks; Chapter 8: Concurrency Management; 8.1 Instance Management and Concurrency; 8.2 Service Concurrency Mode; 8.3 Instances and Concurrent Access; 8.4 Resources and Services; 8.5 Resource Synchronization Context; 8.6 Service Synchronization Context; 8.7 Custom Service Synchronization Context; 8.8 Callbacks and Client Safety; 8.9 Callbacks and Synchronization Context; 8.10 Asynchronous Calls; Chapter 9: Queued Services; 9.1 Disconnected Services and Clients; 9.2 Queued Calls; 9.3 Transactions; 9.4 Instance Management; 9.5 Concurrency Management; 9.6 Delivery Failures; 9.7 Playback Failures; 9.8 Queued Versus Connected Calls; 9.9 Response Service; 9.10 HTTP Bridge; Chapter 10: Security; 10.1 Authentication; 10.2 Authorization; 10.3 Transfer Security; 10.4 Identity Management; 10.5 Overall Policy; 10.6 Scenario-Driven Approach; 10.7 Intranet Application; 10.8 Internet Application; 10.9 Business-to-Business Application; 10.10 Anonymous Application; 10.11 No Security; 10.12 Scenarios Summary; 10.13 Declarative Security Framework; 10.14 Security Auditing; Appendix A: Introduction to Service-Orientation; A.1 A Brief History of Software Engineering; A.2 Service-Orientation; A.3 Tenets and Principles; Appendix B: Publish-Subscribe Service; B.1 The Publish-Subscribe Design Pattern; B.2 The Publish-Subscribe Framework; Appendix C: WCF Coding Standard; C.1 General Design Guidelines; C.2 Essentials; C.3 Service Contracts; C.4 Data Contracts; C.5 Instance Management; C.6 Operations and Calls; C.7 Faults; C.8 Transactions; C.9 Concurrency Management; C.10 Queued Services; C.11 Security; Colophon;