WCF End-to-End

WCF End-to-End will take you from zero to hero on Microsoft's richest service-oriented technology. You'll learn how to write services that have very rich characteristics including state, transactions, fault-handling, callbacks, and even security.
Course info
Rating
(1286)
Level
Intermediate
Updated
Mar 9, 2015
Duration
10h 24m
Table of contents
Welcome and Course Description
Service Orientation and WCF
Contracts and Services
Hosting and Service Configuration
Proxies and Client Configuration
In-Process and Threading
Bindings and Behaviors
Metadata Exchange
Instancing and Concurrency
Faults and Exceptions
Transaction Handling
Operations
Securing Services
Patterns of Implementation
Description
Course info
Rating
(1286)
Level
Intermediate
Updated
Mar 9, 2015
Duration
10h 24m
Description

WCF is NOT dead! Got your attention? It's important to get that out of the way because in today's world, the lack of discussion of a technology is often misinterpreted as the death of a technology. The artist formerly known as Indigo (WCF) has been generally available since Visual Studio 2005 and is still the best platform for writing service or messaging-based systems on the Microsoft platform. What about Web API, you ask? WCF and Web API are drastically different platforms with different goals and purposes. WCF offers the richest and most robust programming model for exposing services with characteristics and capabilities not available in any other messaging technology. Capabilities like state-management, callback eventing, and transaction handling. In this course, I'll teach you WCF from beginning to end. You're getting absolutely everything you will need to get the job done in a service oriented environment and to take advantage of all the richness the WCF platform has to offer. Nothing will be left to chance here so come to learn to do it right, and see how easy it can truly be.

About the author
About the author

Whether playing on the local Radio Shack’s TRS-80 or designing systems for clients around the globe, Miguel has been writing software since he was 12 years old. He keeps himself heavily involved in every aspect, layer, nook, and cranny of app development and would not have it any other way.

More from the author
WCF Power Topics
Advanced
7h 10m
Feb 29, 2016
More courses by Miguel Castro
Section Introduction Transcripts
Section Introduction Transcripts

Hosting and Service Configuration
Hello and welcome back to WCF End to End. Without a host, a service just sits there and looks pretty. And in fact, with some of the code that I've seen sometimes, not so pretty but a host is the application that actually is responsible for listening for calls and then of course, instantiating the service. WCF offers two types of hosting. One is called Web Hosting, which is very traditional. It comes back from the ASMX days and in fact, it's still heavily used today. It's easy to set up. It typically includes no code. Although, you can add some code to it as we will later on and it requires IIS. Now, normally, this is limited to HTTP bindings only. Now, we haven't really covered bindings yet. We're gonna start in this module but then get into a deeper on a future module but the HTTP binding is really the only one that's accepted when you're doing web hosting. Now, there is a protocol, was Windows Application Services and I'm gonna get into that a little later and that lets you do beyond HTTP using web hosting. Now, the other hosting scenario is referred to as self hosting and self hosting really covers any application. Basically, anything can be a host. Now, this requires some code but in my opinion, gives you a lot more fine grain control. It lets you set up custom hosting applications. Very feature-rich applications. In fact, I've done hosting applications that had dashboards in them so that you can see the calls coming in. Basically, this is a monitor that's set up in the server room and you can walk in and see the service activity at that time. You can't do that with web hosting because it's sitting there invisible. So, self hosting in my opinion offers a lot more power. Now, we're gonna cover all of it in this module and we're gonna start with self hosting.

Instancing and Concurrency
Hello and welcome back to WCF End-to-End. In this module I'm gonna cover two really large and important topics in the world of WCF, and that's instancing and concurrency. These are separate topics, but they kind of overlap in a way that you'll understand later. They work kind of hand in hand. But we're gonna cover instancing first and then jump to concurrency. So what exactly does instancing mean? Well, service instancing literally determines the instance of the service. It determines what instance the service is gonna use to process a call, to handle an incoming call from a client. The different modes in instancing that I'm gonna teach you will determine when, and if, the host will new-up a new instance of the service class. Sometimes it will be brand new. Sometimes there may be an existing instance. So this is pretty powerful because it alludes to the concept of maintaining state, something that you cannot do in Web API, but you can certainly do it in WCF. This is actually one of the big differences between these two technologies. Web API is based on HTTP all the time. And it really gets no state assistance from the controller, the server side, whereas WCF can be HTTP, but it still manages state at the host side. It knows how to do it. Now, there are three types of instancing in WCF or instance context modes. There's PerCall. There's PerSession, which happens to be the default if you leave it off. And there's Singleton. So let's start with the first one, PerCall.

Operations
One of the great and unique things about WCF is that it's got several different ways of actually making operation calls. Unlike Web API once again great technology but there's really One-Way of doing things. You're dealing with HTTP you're dealing with an HTTP request and an HTTP response and you're always going to have both of those. With WCF there's different types of operations that you can invoke. One of them is request response, another one is a One-Way operation also known as a fire-and-forget operation then there's a very powerful one called callback or otherwise known as duplex calling and then there's Async calling. Now Web API also has its way of doing Async calling so I'll give credit where credit's do there but WCF does it in a slightly different way. So let's go through each of these.