Flexibility and extensibility of WCF is really great. You need a feature provided by the platform? Just switch it on, via code or configuration, and all the bits and pieces follow suit. The fact is advertised in the WSDL; the client proxy generation will pick that up and produce respective code and configuration; both, client and server, do their part to make it work at runtime; and last not least the developer usually gets the means to access or manipulate the respective information, should the need arise.
Wouldn’t it be nice to have the same apply to your custom demands, demands not covered by the platform? Demands like…
- New versions of standards you need to support, but which are not supported by the platform yet.
- Homegrown authentication schemes.
- Tenants for multi-tenant solutions.
- Billing information for services in B2C scenarios.
- SLA and diagnostics information for operations
- …
Whatever the reason, it would be very nice if we could implement our custom policy in a way that the application developer could use it in a way very similar to policies provided by the platform.
The good news is: It is actually possible to support custom demands in a way very similar to the built-in features of WCF.
The not-so-good news: It is not that simple or straight-forward to do, as there a a lot of bits and pieces working together – and no single information source putting them together. Well, this is what I’m trying to accomplish…
So, here’s the agenda for this little adventure:
Design time aspects:
- Part 2: Advertising the Policy on the Server
- Part 3: Evaluating the Policy on the Client
- Part 4: Addendum: Creating the Client Proxy via Command-Line
- Part 5: Addendum: Policy Support in WCF
Runtime aspects:
- Part 6: Implementation Basics
- Part 7: Implementing the Default Behavior
- Part 8: Making the Information Available at the Client
- Part 9: Making the Information Accessible at the Server
- Part 10: Addendum: Extending Bindings
Looking back:
Quite a bit more than one post…
So stay tuned…
That’s all for now folks,
AJ.NET
Leave a Reply