Configuration is improved and is now similar to ASP.NET.
- Convention over configuration allows default endpoint configurations to be created by the framework. Those default endpoints will be very helpful for simple scenarios where you want to get going quickly without the overhead of the configuration.
- Empty binding names are defaults at the top of the config hierarchy. Nice!
- Behaviors now follow config inheritance rules, just like ASP.NET configuration.
- Config-based activation. SVC files are no longer required and can be replaced by config entries. This is really cool if you have a lot of SVC files to manage. As a result, you can replace 20 SVC files for example with a single config file.
Monitoring WCF Apps.
- AppFabric is integral to monitoring. Search for Windows AppFabric to get an overview of this new product from Microsoft. A dashboard is integrated into the IIS 7 console. This is really nice and makes it easier to visualize than monitoring WCF performance counters in perfmon. This does not replace specialty tools like Avicode Intercept Studio or BMC AppSight, but is better than nothing.
Message Pump as a Service.
- RoutingService is a new feature. You host it like any other service. It supports RequestReply, sessionful RequestReply, One Way, sessionful , and sessionful Duplex. You build a message filter table that get evaluated at runtime. The RoutingService then performs the actions as specified by matching filters.
- The filter table can be replaced at runtime to respond to network changes for example.
- Using a Routing Service enables scenarios like:
- Protocol bridging. Examples: net.tcp to basic http; soap 1.1. to soap 1.2.
- Security bridging.
- Alternate endpoints. You can use this for failover routing. This one got applauses. Very cool!
- Ad-hoc discovery. Clients can multicast probe messages to discover services on the network. Probe match messages are sent to the client in multicast. The scale is limited by the transport being used.
- Managed discovery. A discovery proxy receives unicast hello messages from clients. Probe multicast messages are intercepted by the discovery proxy. Disco proxy sends unicast messages to the clients that send out probes, at which points those clients now switch to unicast messages to the proxy.
- New classes to look for. ContractDescription, DynamicEndpoint, ServiceDiscoveryBehavior, AnnouncementService, UdpAnnouncementEndpoint, FindCriteria, and EndpointDiscoveryMetadata.
- Demo. Client was able to respond to a service being taken down and re-discover where else it could go and start using a backup service that was brought online before taking down the primary service. This was really cool!
It seems to me that managed discovery is the better model for enterprise discovery of services. I can see applicability of discovery in the projects I am currently working on and simply the hub-and-spoke model we are currently using.
It is interesting to me that this functionality is similar to what BizTalk can perform with some ESB toolkit. I can’t wait to see what models are going to emerge and what role BizTalk will play in a WCF 4 environment.
The demos on this got many applauses from the audience. :-)