WCF 4.0 Multi-tier Services Development with LINQ to Entities


There is a newer version of this book available - WCF 4.5 Multi-Layer Services Development with Entity Framework
WCF 4.0 Multi-tier Services Development with LINQ to Entities
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
$25.49
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
$49.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Master WCF and LINQ to Entities concepts by completing practical examples and applying them to your real-world assignments
  • The first and only book to combine WCF and LINQ to Entities in a multi-tier real-world WCF service
  • Ideal for beginners who want to build scalable, powerful, easy-to-maintain WCF services
  • Rich with example code, clear explanations, interesting examples, and practical advice – a truly hands-on book for C++ and C# developers

Book Details

Language : English
Paperback : 348 pages [ 235mm x 191mm ]
Release Date : June 2010
ISBN : 1849681147
ISBN 13 : 9781849681148
Author(s) : Mike Liu
Topics and Technologies : All Books, Application Development, Microsoft Development , Enterprise, Microsoft, .NET


Table of Contents

Preface
Chapter 1: Introducing Web Services and Windows Communication Foundation
Chapter 2: Implementing a Basic HelloWorld WCF Service
Chapter 3: Hosting and Debugging the HelloWorld WCF Service
Chapter 4: Implementing a WCF Service in the Real World
Chapter 5: Adding Database Support and Exception Handling to the RealNorthwind WCF Service
Chapter 6: LINQ—Language Integrated Query
Chapter 7: LINQ to Entities: Basic Concepts and Features
Chapter 8: LINQ to Entities: Advanced Concepts and Features
Chapter 9: Applying LINQ to Entities to a WCF Service
Chapter 10: Distributed Transaction Support of WCF
Index
  • Chapter 1: Introducing Web Services and Windows Communication Foundation
    • What is SOA?
    • Web services
      • What is a web service?
      • Web service WSDL
      • Web service proxy
      • SOAP
    • Web services: standards and specifications
      • WS-I Profiles
      • WS-Addressing
      • WS-Security
      • WS-ReliableMessaging
      • WS-Coordination and WS-Transaction
    • WCF: Windows Communication Foundation
    • What is WCF?
    • Why is WCF used for SOA?
    • WCF architecture
    • Basic WCF concepts—WCF ABCs
      • Address
      • Binding
      • Contract
        • Service contract
        • Operation contract
        • Message contract
        • Data contract
        • Fault contract
      • Endpoint
      • Behavior
      • Hosting
        • Self hosting
        • Windows services hosting
        • IIS hosting
        • Windows Activation Services hosting
      • Channels
      • Metadata
    • WCF production and development environments
    • Summary
  • Chapter 2: Implementing a Basic HelloWorld WCF Service
    • Creating the HelloWorld solution and project
    • Creating the HelloWorldService service contract interface
    • Implementing the HelloWorldService service contract
    • Hosting the WCF service in ASP.NET Development Server
      • Creating the host application
      • Testing the host application
      • ASP.NET Development Server
      • Adding an SVC file to the host application
      • Modifying the web.config file
      • Starting the host application
    • Creating a client to consume the WCF service
      • Creating the client application project
      • Generating the proxy and configuration files
      • Customizing the client application
      • Running the client application
      • Setting the service application to AutoStart
    • Summary
  • Chapter 3: Hosting and Debugging the HelloWorld WCF Service
    • Hosting the HelloWorld WCF service
      • Hosting the service in a managed application
        • Hosting the service in a console application
        • Consuming the service hosted in a console application
      • Hosting the service in a Windows service
      • Hosting the service in Internet Information Server
        • Preparing the folders and files
        • Turn on Internet Information Services
        • Creating the IIS application
        • Starting the WCF service in IIS
        • Testing the WCF service hosted in IIS
      • Other WCF service hosting options
    • Debugging the HelloWorld WCF service
      • Debugging from the client application
        • Starting the debugging process
        • Debugging on the client application
        • Attaching to ASP.NET Development Server
        • Stepping into the WCF service
      • Debugging only the WCF service
        • Starting the WCF Service in debugging mode
        • Starting the client application in non-debugging mode
        • Starting the WCF service and client applications in debugging mode
      • Attaching to a WCF service process
        • Running the WCF service and client applications in non-debugging mode
        • Debugging the WCF service hosted in IIS
      • Just-In-Time debugger
    • Summary
  • Chapter 4: Implementing a WCF Service in the Real World
    • Why layer a service?
    • Creating a new solution and project using WCF templates
      • Using the C# WCF service library template
      • Using the C# WCF service application template
    • Creating the service interface layer
      • Creating the service interfaces
      • Creating the data contracts
      • Implementing the service contracts
      • Modifying the app.config file
      • Testing the service using WCF Test Client
      • Testing the service using our own client
    • Adding a business logic layer
      • Adding the product entity project
      • Adding the business logic project
      • Calling the business logic layer from the service interface layer
      • Testing the WCF service with a business logic layer
    • Summary
  • Chapter 5: Adding Database Support and Exception Handling to the RealNorthwind WCF Service
    • Adding a data access layer
      • Creating the data access layer project
      • Calling the data access layer from the business logic layer
      • Preparing the database
      • Adding the connection string to the configuration file
      • Querying the database (GetProduct)
      • Testing the GetProduct method
      • Updating the database (UpdateProduct)
    • Adding error handling to the service
      • Adding a fault contract
      • Throwing a fault exception
      • Updating the client program to catch the fault exception
      • Testing the fault exception
    • Summary
  • Chapter 6: LINQ—Language Integrated Query
    • What is LINQ
    • Creating the test solution and project
    • New data type var
    • Automatic properties
    • Object initializer
    • Collection initializer
    • Anonymous types
    • Extension methods
    • Lambda expressions
    • Built-in LINQ extension methods and method syntax
    • LINQ query syntax and query expression
    • Built-in LINQ operators
    • Summary
  • Chapter 7: LINQ to Entities: Basic Concepts and Features
    • ORM—Object-Relational Mapping
    • Entity Framework
    • LINQ to Entities
    • Comparing LINQ to Entities with LINQ to Objects
      • LINQ to SQL
    • Comparing LINQ to SQL with LINQ to Entities
    • Creating a LINQ to Entities test application
    • Creating the Data Model
      • Adding a LINQ to Entities item to the project
      • Generated LINQ to Entities classes
    • Querying and updating the database with a table
      • Querying records
      • Updating records
      • Inserting records
      • Deleting records
      • Running the program
    • View Generated SQL statements
      • View SQL statements using ToTraceString
      • View SQL statements using Profiler
    • Deferred execution
      • Checking deferred execution with SQL profiler
      • Deferred execution for singleton methods
      • Deferred execution for singleton methods within sequence expressions
    • Deferred (lazy) loading versus eager loading
      • Lazy loading by default
      • Eager loading the with Include method
    • Joining two tables
    • Querying a view
    • Summary
  • Chapter 8: LINQ to Entities: Advanced Concepts and Features
    • Calling a stored procedure
      • Mapping a stored procedure to a new entity class
        • Modeling a stored procedure
        • Querying a stored procedure
      • Mapping a stored procedure to an existing entity class
    • Compiled query
    • Direct SQL
    • Dynamic query
      • Dynamic query with expressions
      • Dynamic query with parameters
    • Inheritance
      • LINQ to Entities Table per Hierarchy inheritance
        • Modeling the BaseCustomer and USACustomer entities
        • Modeling the UKCustomer entity
        • Generated classes with TPH inheritance
        • Testing the TPH inheritance
      • LINQ to Entities Table per Type inheritance
        • Preparing database tables
        • Modeling USACustomer1 and UKCustomer1 entities
        • Generated classes with TPT inheritance
        • Testing the TPT inheritance
    • Handling simultaneous (concurrent) updates
      • Detecting conflicts using a data column
        • Explaining the Concurrency Mode property
        • Adding another Entity Data Model
        • Writing the test code
        • Testing the conflicts
        • Turning on concurrency control
      • Detecting conflicts using a version column
        • Adding a version column
        • Modeling the Products table with a version column
        • Writing the test code
        • Testing the conflicts
    • Transaction support
      • Implicit transactions
      • Explicit transactions
    • Adding validations to entity classes
    • Debugging LINQ to Entities programs
    • Summary
  • Chapter 9: Applying LINQ to Entities to a WCF Service
    • Creating the LINQNorthwind solution
    • Modeling the Northwind database
    • Copying the connection string to the service layer
    • Using LINQ to Entities in the data access layer
      • Modifying GetProduct in the data access layer
      • Modifying UpdateProduct in the data access layer
      • Testing LINQ to Entities with the WCF Test Client
    • Adding concurrency support
      • Turning on RowVersion concurrency mode
      • Modifying the ProductEntity class
      • Modifying the ProductDAO class
        • Modifying the GetProduct method
        • Modifying UpdateProduct method
      • Modifying the business logic layer classes
      • Modifying the service interface layer classes
    • Testing concurrency with WCF Test Client
    • Testing concurrency with our own client
      • Creating the test client
        • Implementing the GetProduct functionality
        • Implementing the UpdateProduct functionality
      • Testing the GetProduct and UpdateProduct operations
      • Testing concurrent update manually
      • Testing concurrent update automatically
    • Summary
  • Chapter 10: Distributed Transaction Support of WCF
    • Creating the DistNorthwind solution
    • Hosting the WCF service in IIS
    • Testing the transaction behavior of the WCF service
      • Creating a client to call the WCF service sequentially
      • Testing the sequential calls to the WCF service
      • Wrapping the WCF service calls in one transaction scope
      • Testing multiple database support of the WCF service
        • Creating a new WCF service
        • Calling the new WCF service in the client application
        • Testing the WCF service with two databases
    • Enabling distributed transaction support
      • Enabling transaction flow in service binding
        • Enabling transaction flow on the service hosting application
      • Modifying the service operation contract to allow a transaction flow
      • Modifying the service operation implementation to require a transaction scope
    • Understanding the distributed transaction support of a WCF service
    • Testing the distributed transaction support of the WCF service
      • Configuring the Distributed Transaction Coordinator
      • Configuring the firewall
      • Propagating a transaction from the client to the WCF service
        • Testing distributed transaction support with one database
        • Testing distributed transaction support with two databases
    • Summary

Mike Liu

Mike Liu studied Mathematics and Software Engineering at Nanjing University and Brandeis University, graduated with a bachelor’s degree and a master's degree respectively. He is a Sun Certified Java Programmer (SCJP), Microsoft Certified Solution Developer for Visual Studio 6.0 and Microsoft Certified Solution Developer for .NET. He has been working as a software Engineer/architect on various platforms (DOS, Unix, and Windows) using C/C++, Java, VB/VB.NET, and C#. Mike started using C# for production development back in 2001 when C# was still in beta stage and he is now working as a senior software engineer for an investment management firm in Boston, Mass. Mike had his first book,MITT: Multi-user Integrated Table-processing Tool Under Unix,published in 1993, and a second book,Advanced C# Programming,published in 2003. The previous two versions of this book,WCF Multi-tier Services Development with LINQ and WCF 4.0 Multi-tier Services Development with LINQ to Entities,were published in 2008 and 2010.
Sorry, we don't have any reviews for this title yet.

Code Downloads

Download the code and support files for this book.


Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


Errata

- 3 submitted: last submission 29 Apr 2013

Errata Type: Code pg no:51

Creating the configuration and proxy files: The command line that is given doesn't work because the file output goes to the root directory, and it didn't have write permissions to create the files. Instead it is easier to run the suggested command from the service wsdl page. Open the command line tool from the VS SDK tools. Change to the project directory and run the command as it is suggested from the wsdl page. The configuration created is called "output.config". Rename this to "app.config" to run the program.

Errata Type:Typo Page no:255

This is not a good practice as it is against our layering principals. Should be 'principles'

Errata type: Typo | Page number: 13

result = "Other excpetion: " + ex.Message + ex.StackTrace;

Should be:

"Other exception"

 

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

WCF 4.0 Multi-tier Services Development with LINQ to Entities +    Entity Framework 4.1: Expert’s Cookbook =
50% Off
the second eBook
Price for both: $45.60

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Create, host, and consume your first WCF service in just a few minutes
  • Explore various hosting and debugging options for a WCF service
  • Build a multi-tier real-world WCF service from scratch to understand every layer of a WCF service and apply it to your real work
  • Add exception handling to your WCF services
  • Understand the basic and advanced concepts and features of LINQ and LINQ to Entities
  • Use LINQ to Entities in the data access layer of a WCF service
  • Control concurrent updates to databases with WCF and LINQ to Entities
  • Add distributed transaction support to your WCF services
  • Test a WCF service from a console program, the VS2010 built-in WCF Test Client, a Windows Form application, and a WPF test client

In Detail

WCF is the Microsoft model for building services, whereas LINQ to Entities is the Microsoft ORM for accessing underlying data storage. Want to learn both? You would normally have to dig through huge reference tomes—so wouldn't you agree that a simple-to-follow practical tutorial on WCF and LINQ to Entities is the way to get ahead?

This book is the quickest and easiest way to learn WCF and LINQ to Entities in Visual Studio 2010. WCF and LINQ to Entities are both powerful yet complex technologies from Microsoft—but you will be surprised at how easily this book will get you get up and running with them.

Mastery of these two topics will quickly enable you to create Service-Oriented applications, and allow you to take your first steps into the world of Service Oriented Architecture without becoming overwhelmed.

Through this book, you will learn what's going on behind the scenes with WCF, and dive into the basic yet most useful techniques for LINQ to Entities. You will develop three real-world multi-tiered WCF services from beginning to end, with LINQ to Entities being used in the data access layer of the services. Various clients including windows console applications, the WCF Test Client, Windows Form applications and WPF applications will be created to test these WCF services. By the end of this book, you will be 100% confident that you know WCF and LINQ to Entities, not only in theory, but with sound real-world experience.

Master WCF and LINQ to Entities in a multi-tier WCF service by completing practical examples and applying them to your real-world assignments

Approach

This book is a step-by-step tutorial to guide you through learning WCF and LINQ to Entities. You will be guided to create five WCF and LINQ solutions from scratch, of which three are multi-tiered real-world WCF service solutions, so you will not only be reading, but also be coding through the book, to gain practical experience of WCF and LINQ to Entities. Various test clients will be associated with each solution and these solutions can be built and run independently of other solutions. Clear step-by-step instructions and relevant screenshots will make sure you won't get lost in the new world of WCF and LINQ to Entities.

Configuration files, host applications, test clients, and WCF services for each solution will also be available for download for you to examine, modify, and debug from the outside in.

The book focuses on the essentials of using WCF and LINQ to Entities, rather than providing a reference to every single possibility. It leaves the reference material online where it belongs, and concentrates instead on practical examples, code, and advice.

Who this book is for

This book is for C# and C++ developers who are eager to get started with WCF and LINQ to Entities, and want a book that is practical and rich with examples from the very beginning. Developers and architects evaluating SOA implementation technologies for their company will find this book particularly useful because it gets you started with Microsoft's tools for SOA and shows you how to customize our examples for your prototypes.

This book presumes basic knowledge of C# or C++. Previous experience with Visual Studio will be helpful but is not required, as detailed instructions are given throughout the book.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software