WCF Power Topics

WCF goes way beyond just exposing data and behavior through services. It is truly different from Web API and every other service technology out there. These topics show you why.
Course info
Rating
(47)
Level
Advanced
Updated
Feb 29, 2016
Duration
7h 10m
Table of contents
Course Overview
Introduction
Extending WCF with Custom Behaviors
Making Your Services Discoverable
Centralizing and Reusing Fault Handling
Working with the Azure Service Bus
WCF Routing Services
Leveraging HTTPS For WCF Using SSL
Solving Common Problems: Long Running Processes
Solving Common Problems: Versioning Your Services
Solving Common Problems: Fault Reporting for One-way Services
Solving Common Problems: Eventing and Pub/Sub with WCF
Description
Course info
Rating
(47)
Level
Advanced
Updated
Feb 29, 2016
Duration
7h 10m
Description

OK so you watched WCF End-to-End, wait, you didn't? OK stop and go watch it now… you're back and watched it, great. Now you're ready for some more advanced stuff. This is where WCF super-shines because it's capable of stuff that's just not doable with other technologies. You can add capabilities to your applications or system of applications that will take them to the edge of functionality and coolness. I'll teach you how to leverage WCF's extensibility by customizing parts of it to meet your needs. You can enjoy this course in its entirety or just target the modules that you feel will help you in your particular situation. Let's continue this journey, on what is still today, the richest service technology in the Microsoft stack.

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 End-to-End
Intermediate
10h 24m
Mar 9, 2015
More courses by Miguel Castro
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi, everyone, my name is Miguel Castro, and I'm very excited to welcome you to my course, WCF Power Topics. I'm a freelance consultant and trainer and a longtime Microsoft MVP in the area of connected systems and Microsoft integration. In this course, I'm going to take you on one of the geekiest journeys you've ever been on. You're going to learn ways to polish up our applications by diving into some advanced areas of WCF that you might not have known even existed. Some of the major topics that we'll cover include discoverability, routing, working with the Service Bus, and some common problem solutions like versioning and pub/sub. By the end of this course, you'll know how to provide functionality to your applications that will make it easier to modify and enhance them in the future. You'll also get answers to some of the most requested topics and scenarios I received when I published WCF End to End. Before beginning this course, you should be familiar with writing and using WCF services, which I teach you entirely in my previous course, WCF End to End. I hope you'll join me on this exciting dive into the great power of WCF with WCF Power topics at Pluralsight.

Introduction
Hello, everybody. This is Miguel Castro, and I'm very excited to be back with you once again for some more Pluralsight goodness, this time with WCF Power Topics. This course is kind of a sequel to my WCF End-to-End course, which means I'm going to assume that you have some WCF knowledge and how to work with services using Windows Communication Foundation. If you're new to WCF, I strongly suggest you go back and watch my WCF End-to-End course. I promise I'm going to take you from zero to hero on everything that you need to know about WCF to hit the ground running writing services. This course is going to concentrate more on some advanced WCF features. This means that everything I'm going to teach you in this course already builds upon the knowledge that you gained in WCF End-to-End. In addition to teaching you some advanced features of WCF, I'm also going to show you some really cool solutions to a lot of common problems and scenarios that may arise while you write services in the world of WCF. In addition to this course, I also invite you to watch some of my other Pluralsight courses, including Building Multi-Client End-to-End Service Oriented Applications, which I also have in Knockout and Angular editions, and this course will take you through an entire application building from the database all the way to multiple clients, a desktop client and a web client, and I use WCF in that course, as well as Web API, and a bunch of other technologies. I have another course called Developing Extensible Software where I show you how to write software with extensibility in mind and how to expose an Extensibility API and write things very modularly and plug-in oriented, and then of course, there's the prerequisite to this course, which is WCF End-to-End. So, let me tell you what I have in store for you in this course.

Extending WCF with Custom Behaviors
Hi this is Miguel Castro and welcome back to WCF Power Topics. In this module, I'm going to start by discussing WCF's interception-based architecture, also known as a pipeline architecture. Now, I spoke about this architecture extensively in WCF End-to-End, my previous course, but I'm going to discuss it here as well because it's very relevant to the stuff that I'm going to teach you in this module. These things include service behaviors, operation behaviors, and parameter inspectors and I'm going to cover them in full. Now, obviously I'm going to discuss what they are and how they work, but we're going to use them in a demo in a very specific solution. I'm going to show you how to build the call monitor for your application. So using these types of behaviors and parameter inspectors, you'll be able to tell when calls came into the host and report on them in however way you want. This kind of call monitor, as I call it, is not only a great case-study for teaching you how behaviors and inspectors work, but it's also a great solution in and of itself for you to use in your own applications.

Making Your Services Discoverable
Hi, this is Miguel Castro, and welcome back to WCF Power Topics. In this module, you're going to learn all about WCF discoverability. We're going to start by going over the concept of what it means to be discoverable. What does it mean for a service to become discoverable? And then we're going to go over what this means in the context of WCF itself. What is WCF discoverability? What does this technology have to offer you? Now, WCF discoverability adds some responsibilities to both sides of the wire. On the service side, we're going to talk about the discoverable endpoints, the idea of making your endpoints discoverable and adding endpoints that are discoverable. On the client side, the discoverability queries come into play, meaning that I'm going to teach you how to build queries that look for those discoverable endpoints on the service. In doing so, we're going to tweak queries here and there, bringing something else into the picture called scope, so you'll learn all about that, and also the idea of creating endpoints dynamically, meaning creating an endpoint where you don't have all of the information that you would normally need to create an endpoint. And then we're going go over another area of WCF discoverability that is called announcements, service host announcements. This is the idea of a host being able to announce to all the clients that are connected to it, or that can connect to it, that it has gone down, and then again that it has gone up, so you'll see how all of that works and, of course, I got plenty of demos for you.

Centralizing and Reusing Fault Handling
Hi, this is Miguel Castro, and welcome back to WCF Power Topics. This module will take conventional WCF fault handling to the next level. In the previous course, you learned how to do everything with faults. Almost everything. You learned how to handle FaultException, FaultException of T, all sorts of different things. Here, I'm going to show you how to centralize and reuse your fault handling to make it that much more polished in your applications. Centralizing error handling in WCF, starts with this interface called IErrorHandler. In fact, it's centered around this interface. I'm going to teach you all about how to use this interface. Then I'm going to show you how to install error handlers that we're going to write in more than one way. We install them with IServiceBehavior, which is a technology that you learned in the first module of this course. And like any other service behavior, there is more than one way of installing it to gain more reusability. There's a procedural way, and, of course, there's a declarative way; and I'm going to cover all of them.

Working with the Azure Service Bus
Hi, this is Miguel Castro and welcome back to WCF Power Topics. In this module, we're going to venture a little into the cloud and I'm going to teach you how to make WCF work with the Windows Azure Service Bus. To many, including myself, the minute you bring the cloud into any picture, you may think you're introducing an element of complexity. But I'm going to teach you that it's actually a lot simpler than you think especially when you're dealing with WCF and mixing it with Windows Azure. I'll start by telling you what the Service Bus is and what are the features that it actually offers you. Now the main feature that I'm going to be concentrating on for reasons that I'll explain in just a few minutes, is one called the relay hub and it's actually one of the more powerful ones. After I explain to you what the relay hub is about and how it works, I'm going to get into the Azure portal a little. This is the management website where you can basically manage all things Azure. I'm going to demo this and actually create everything that I have to create within the Azure portal. I'm going to do it in front of you using my Azure account. Then we're going to get into the WCF interaction and how WCF interacts with the Service Bus, what the API looks at, and what it's going to offer us. And finally, because no topic is 100% complete without some kind of security coverage, we're going to get into how to pass user credentials.

WCF Routing Services
Hi, this is Miguel Castro and welcome back to WCF Power Topics. In this module, I'm going to cover WCF Routing Services or how to build the WCF router. This, again, like some of the previous topics, is a huge topic which, again, merits its own course if I'm going to cover it in its entirety. But also, as before, I promise that I'm going to cover the most important parts and the most common scenarios; the good stuff. I'll start by discussing WCF Routing in general. What exactly is it? What does it offer us? What can we do with it? And then, I'm going to get into the most popular and most commonly used type of routing, which is called Content-based Routing. Now, there are other things that a WCF router can be used for and I'm going to touch base on those next, but content-based routing is what I'm really going to concentrate on because it's extremely powerful and it covers most of the scenarios you're going to run into. Another thing is Failover Handling, meaning back up end points, the ability to have another host kick in, in case one happens to fail and that's something that a WCF router can actually do for you. Very powerful, as well. And the last topic that I'm going to get into is called Multicasting or Broadcasting and you'll see how this works. This is actually very cool. It's the ability for a client to send a call and that called be received by a bunch of hosts all at the same time. Some of them may be running the same service. Some of them may be a different service.

Leveraging HTTPS For WCF Using SSL
Hi this is Miguel Castro and welcome back to WCF Power Topics. In this module, I'm going to show you how to use HTTPS for securing WCF services using an SSL certificate. I'll start by doing a quick recap on conventional WCF security, both on a TCP and the HTTP side and then explain to you what's the differences with using HTTP transport security, which is SSL or HTTPS. Then we're going to jump right into a demo and configure IIS for this, as well as the WCF services and the host. And I'll conclude by showing you how you can continue to use authentication and authorization techniques that you've learned in my first course, WCF End to End, with this new type of HTTP transport security.

Solving Common Problems: Long Running Processes
Hi, this is Miguel Castro, and welcome back to WCF Power Topics. This is the first of four modules in this course designed to address common scenarios that were explained and requested from me as a result of the previous course, WCF End to End. The next four modules are all titled Solving Common Problems, each having a subtitle. In this module, I'm going to cover long-running processes. Since these modules are going to cover design and implementation of actual common problems that you may run into in the field, they're going to be slide light and very code heavy. This one is going to start by designing a long-running process, basically defining what constitutes a long-running process and what are the features of one and what features should an implementation of a long-running process execution have. I'm going to cover two demos. The first one is going to be a very simple solution using a one-way call. But this solution, though not the final one, is going to set the ground work for more complex solution using threading that is going to be much more feature rich.

Solving Common Problems: Versioning Your Services
Hi, this is Miguel Castro and welcome back to WCF Power Topics. This is the second module in the series of four about solving common problems. And, this one is called Versioning Your Services. The topic of versioning services in WCF is probably the most asked about topic when I talk about this at conference sessions or when I teach it in instructor-led training. And, that's what I'm going to cover in this module. I'm going to talk about the concept of versioning, what is it, and why do you want it? Why do you want to use it and why is it important? And then, how is it in the context of WCF? How does WCF handle versioning? And without jumping too far ahead, the quick answer to that questions, how WCF covers versioning is using routing-based solutions. Now, this is not the only way. In my opinion, it's the best way and it's a great example on what routing can do for you. I covered routing in an earlier module in this course. I hope you enjoyed that one. It's actually a pretty fun topic to discuss and to talk about. And, it sparks up a lot of creativity in what you can do with it. And, versioning is probably one of the most common things that I use routing for and it comes out as a very, very cool solution.

Solving Common Problems: Fault Reporting for One-way Services
Hi, this is Miguel Castro, and welcome back to WCF Power Topics. Welcome to another in the series of solving common problems. This module will be about fault reporting in one-way services. In this module, I'll start by describing the problem space, and the problem space is about one-way calls and the soap messages, and particularly, how do fault messages get reported? How do fault exceptions get reported, if at all? After describing what the problem is, I'm going to show you how to solve it, of course. I'm going to solve it, once again, with good old call backs.

Solving Common Problems: Eventing and Pub/Sub with WCF
Hi, this is Miguel Castro and welcome back to WCF power topics. This is the last in the series of solving common problems and this one's about eventing and pub/sub. Next to versioning, one of the most common topics I get asked about. I'm going to start by discussing what exactly is pub/sub and eventing? Are they two different things or are they intertwined, or are they the same thing? And then I'm going to get into WCF based pub/sub solutions. How does the technology handle this problem? I'm then going to discuss how I am going to modify the GeoLib application that we've used through most of this course into a pub/sub solution. And then after we've developed the entire pub/sub solution, I'm going to discuss another potential solution that you may want to use in pub/sub scenarios.