Welcome and Course Description
- 15m 10s
—Welcome and Overview
4m 3s
—Who Is This Course For?
3m 27s
—Who Am I?
2m 30s
—Course Agenda
5m 9s
Service Orientation and WCF
- 29m 18s
—What Is SOA?
2m 20s
—What Is a Service?
1m 47s
—SOA Diagram
1m 52s
—Service Oriented Applications
2m 14s
—It's all About the Object
1m 13s
—It's all About the Call
1m 59s
—E-commerce Task Diagrams
3m 29s
—Service Oriented Technologies
1m 4s
—In the Old Days...
1m 35s
—Windows Communication Foundation
2m 21s
—WCF Architecture
2m 38s
—WCF vs. Web API
2m 13s
—WCF Components
1m 57s
—When to Use WCF
2m 29s
Contracts and Services
- 43m 41s
—The Story Line
2m 9s
—Contracts Are Not Evil
2m 23s
—Data Contracts
2m 8s
—Project Layout and Core
2m 31s
—Data Entity Explanation
2m 27s
—Writing the First Data Contract
2m 45s
—Service Contracts
0m 54s
—Starting the Service Contract
2m 5s
—The Second Operation
2m 2s
—Operator Overloading
3m 47s
—Services
1m 43s
—Starting the Service
1m 38s
—Coding the GetZipInfo Operation
2m 27s
—Continuing the Service Operations
2m 4s
—Finishing the Service Class
2m 8s
—Unit Testing
1m 45s
—Making the Service Class Testable
2m 27s
—Creating the Unit Test
2m 54s
—Finishing the Unit Test
3m 17s
Hosting and Service Configuration
- 44m 5s
—Two Faces of Hosting
1m 43s
—Self Hosting
1m 32s
—Writing the Console Host
2m 43s
—Service Configuration
2m 16s
—Setting Up Service Config
2m 50s
—Adding the Endpoint and Running
3m 35s
—Web Hosting
2m 42s
—WAS
1m 43s
—Web Hosting Project Setup
1m 52s
—Configuration the Web Host
5m 23s
—Custom Host Factory
3m 13s
—Changing Over to IIS for WAS
1m 41s
—Configuring WAS
2m 14s
—No-Config Hosting
1m 17s
—Coding Endpoint Injection
3m 46s
—Setting Up the WPF Host
2m 29s
—Configuring and Running
1m 6s
—More on Self Hosting
1m 51s
Proxies and Client Configuration
- 58m 3s
—Consuming WCF Services
2m 36s
—Enter the Proxy
3m 44s
—Project Layout
1m 25s
—Create Proxy Class
2m 48s
—Configuring the Client
2m 39s
—Touring the Client App
1m 45s
—Adding Client Access Code and Run
2m 48s
—Add Multiple Endpoints
2m 21s
—Modify Proxy and Client
1m 37s
—Setting Up Proxy for No Config
1m 49s
—Coding the Client as No Config
2m 54s
—Contract Equivalence
1m 45s
—Set Scene for New Service
1m 36s
—Create Message Service and Contract
2m 30s
—Create Client Service and Change Namespace
1m 48s
—Configure Service Host
2m 22s
—Configure Client
1m 14s
—Channel Factory
1m 38s
—Coding the Client
2m 58s
—Mismatching Equivalency and Fixing
4m 10s
—Programmatic Config Channel Factory
2m 48s
—Version Tolerance
3m 16s
—Coding IextensibleDataObject
2m 24s
—Client Accessing Web Host
2m 56s
In-Process and Threading
- 24m 18s
—In-process Services
3m 30s
—Explain In-Process Threading Problem
2m 8s
—Change Binding to IPC
1m 40s
—Write In-proc Client and Test
3m 46s
—Hosting Threads
2m 25s
—Introduce Service Behavior
1m 58s
—Marshall With Synchronization Context
2m 51s
—Calling From Worker Thread
2m 34s
—Alternative Option
1m 34s
—Service Integration Test
1m 48s
Bindings and Behaviors
- 1h 0m
—What Are Bindings?
4m 45s
—Choosing a Binding
4m 23s
—Transport Level Sessions
2m 23s
—Binding Configurations
1m 53s
—Binding Configuration Syntax Declarative
3m 53s
—Binding Configuration Syntax Procedural
0m 53s
—Useful Binding Configurations
3m 20s
—More Useful Binding Configurations
1m 36s
—Introduce Manual Delay in Operation
2m 9s
—Setting Timeout in Host
2m 43s
—Setting Timeout in Client and Test
2m 59s
—Set Max Received Message Size and Test
2m 0s
—Setting Sliding Timeout
2m 2s
—Testing Sliding Timeout
2m 56s
—Behavior Configuration
2m 56s
—Behavior Configuration Syntax Declarative
1m 24s
—Behavior Configuration Syntax Inline
1m 15s
—Behavior Configuration Syntax Procedural
1m 11s
—Useful Behavior Configurations
2m 48s
—Cause Error and Run
2m 10s
—Add Exception Behavior and Test
2m 40s
—Add Behavior Programmatically
3m 33s
—Throttling
4m 20s
Metadata Exchange
- 23m 29s
—What Is Metadata?
3m 59s
—Metadata Exposure
1m 59s
—Add Behavior and HTTP Base Address
2m 47s
—Add Service Reference on HTTP
2m 19s
—Add Client Code and Run
2m 3s
—Adding MEX Endpoint
2m 20s
—Add Base Address and Test
1m 51s
—Add MEX Programmatically
3m 43s
—Testing and Showing Potential Failure
2m 23s
Instancing and Concurrency
- 1h 3m
—Service Instancing
1m 40s
—Per Call Instancing
1m 53s
—Per Session Instancing
2m 59s
—Single Instancing
2m 32s
—Setting Instance Mode
2m 13s
—Per Call Counter Demo
2m 56s
—Describe Stateful Service and Write Contract
1m 48s
—Write Stateful Geo Manager
2m 15s
—Write Stateful Geo Client Proxy Class
0m 34s
—Host Stateful Service and Config
0m 43s
—Code Client Changes for New Service
2m 32s
—Set to per Call and Test
1m 31s
—Change to per Session and Retest
2m 29s
—Demarcation
1m 56s
—Set Demarcation and Test
3m 17s
—Singleton Test
2m 44s
—Session Mode
2m 11s
—Binding Enforcement
3m 8s
—Concurrency
0m 55s
—Single Concurrency
3m 9s
—Multiple Concurrency
1m 56s
—Reentrant Concurrency
1m 12s
—Add Counter to Service
1m 29s
—Change Client to Multi Threading
1m 29s
—Per Call Single Concurrency Demo
2m 0s
—Per Session Single Concurrency Demo
1m 5s
—Singleton Single Concurrency Demo
1m 3s
—Per Call Multiple Concurrency Demo
2m 9s
—Per Session Multiple Concurrency Demo
0m 43s
—Singleton Multiple Concurrency Demo
1m 15s
—Change Thread to Async Await
1m 14s
—Locking and Static Resources
4m 7s
Faults and Exceptions
- 23m 57s
—Soap Faults
2m 37s
—Service Exception Handling Scenarios 1
2m 42s
—Service Exception Handling Scenarios 2
3m 9s
—Unhandled Exception No Details
3m 8s
—Unhandled Exception With Details
0m 49s
—Unhandled Exception With Details 2
1m 3s
—Handled Fault Exception
2m 31s
—Handled Fault Exception Of T
3m 39s
—Handled With Custom Fault Contact
4m 14s
Transaction Handling
- 39m 5s
—The Need for Transactions
4m 52s
—Transaction Support in WCF
2m 57s
—Show All New Code for Updates
4m 27s
—Change Update Code so It Can Fail
2m 37s
—Put Fail Code and Retest for Inconsistent State
1m 58s
—Add Transaction Support and Retest for Consistency
3m 55s
—Maintaining Session Semantic When Transactional
2m 33s
—Transaction Voting
1m 23s
—Perform Manual Transaction Commit
2m 17s
—Manual Transaction Programming
1m 27s
—Change Operation to Manual Transaction
2m 25s
—Client Transaction
1m 36s
—Per Call Client Transaction Test
1m 35s
—Per Session Client Transaction Test
1m 11s
—Test Transaction Propagation by Failing Client
2m 13s
—Test Non-propagation
1m 34s
—Types of Operations
0m 47s
—Request Response Operations
1m 23s
—One-way Operations
2m 5s
—Coding the One-way Call
1m 32s
—Test as Request Response
0m 47s
—Test as One-way Call
0m 58s
—Show Client Block on Proxy Close
1m 16s
—Change Binding and Retest
1m 50s
—Callback Operations
3m 3s
—Explain What Callback Will Do and Write Contract
3m 7s
—Link Callback Contract to Original Contract
2m 16s
—Make Callback From Service Operation
3m 43s
—Convert Proxy to Duplex
1m 50s
—Implement Callback Contract
2m 21s
—Sending in Instance Context
1m 49s
—Callback Thread Deadlock and Fix
3m 36s
—Non One-way Callback And Reentrancy
3m 5s
—Use Sync Context to Update Listbox
1m 44s
—Make Service Call From Worker Thread
2m 53s
—And Service Delay and Run Test
1m 7s
—Change Thread to Task
0m 58s
—HTTP Callbacks and Transactions
3m 17s
—Async Calls
3m 42s
—Add Async Operation to Contract and Proxy
2m 45s
—Make Async Service Call With Done Callback
3m 35s
—Test Async Call
1m 14s
—Difference When Awaiting Task
2m 8s
—Cause Fault and Show Exception Result in Client
2m 38s
—Run and Show Exception
0m 51s
—Handle With Try Catch and Talk ASR
2m 47s
Securing Services
- 1h 36m
—WCF Security
2m 46s
—WCF Security Scenarios
1m 13s
—Identities
4m 2s
—Intranet Security
3m 51s
—Authentication
2m 11s
—Authorization
2m 32s
—Contract Split and Multiple Endpoints
2m 52s
—Security Mode
2m 18s
—Client Credential Type
1m 49s
—Adding Identity Code
4m 5s
—Run With No Security and Examine Identities
2m 36s
—Run With Security and Examine Identities
1m 50s
—Protection Level Enforcement
1m 56s
—Alternate Credentials
2m 28s
—Add Role Based Authorization
3m 37s
—Intranet Web Application
1m 32s
—Show Web Client Setup
1m 27s
—Run Web Client Without Soft Impersonation
1m 55s
—Test Using Soft Impersonation
2m 4s
—Internet Security Service
3m 26s
—Internet Security Client
1m 18s
—Security Mode and Client Credential Type
2m 5s
—Set Negotiate Credentials Setting and Sync Client
1m 8s
—Setup Behavior so Service Uses Windows Token
2m 55s
—Create x509 Certificate
3m 33s
—Configure Certificate for Service
2m 36s
—Client Endpoint Behavior
2m 32s
—Get and Configure Public Key
2m 57s
—Send Credentials Through Proxy and Test
3m 36s
—ASP.NET Providers
2m 7s
—Provider Object Model
1m 18s
—ASP Providers in WCF
1m 41s
—Code MyMembershipProvider
3m 50s
—Configure Membership Provider
4m 53s
—Code and Configure Role Provider
2m 21s
—Test Run With Various User Roles
1m 49s
—Show Different Certificate Negotiation Method
5m 11s
Patterns of Implementation
- 37m 18s
—The Most Popular Question
2m 1s
—Layers
4m 41s
—Entities and Data Contracts
5m 3s
—Architecture
4m 47s
—Project Structure and Entities
2m 17s
—Service Contracts
2m 31s
—DAL and Contracts
3m 3s
—Service Contracts Services and DI
3m 27s
—Using DI With Services
5m 35s
—Client Access Patterns and Conclusion
3m 49s