- Introducing the .NET Service Bus
The .NET services bus is part of the new Microsoft Cloud Computing Windows Azure initiative, and arguably, it is the most accessible, ready to use, powerful, and needed piece. The service bus allows clients to connects to services across any machine, network, firewall, NAT, routers, load balancers, virtualization, IP and DNS as if they were part of the same local network, and doing all that without compromising on the programming model or security. The service bus also supports callbacks, event publishing, authentication and authorization and doing all that in a WCF-friendly manner. This session will present the service bus programming model, how to configure and administer service bus solutions, working with the dedicated relay bindings including the available communication modes, relying on authentication in the cloud for local services and the various authentication options, and how to provide for end-to-end security through the relay service. You will also see some advanced WCF programming techniques, original helper classes, productivity-enhancing utilities and tools, as well as discussion of design best practices and pitfalls.
- Transactions for the Common Service
Transactional programming has traditionally been the privilege of database-centric applications. Other types of applications did not benefit easily from this superior programming model. In addition, transactional programming has always required per-call objects, which is a non-trivial programming model. But wouldn't it be great in you could preserve the programming model of regular objects and still benefit from transactions? The session starts by briefly discussing the problem space transactions address and the motivation for using them. It then discuses the WCF approach for instance management in the face of transactions, and how you could leverage the support in .NET 3.5 for the context binding and durable services to enable any common service (or a class) to benefit from transactions, without compromising on either the programming model of state-full objects or on the transactional semantics.
- Durabel WCF Services
Consider using WCF to implement long-running workflows or execution sequences that lasts days or even weeks, where the clients may connect, do some work and disconnect again. There is obviously little point in keeping proxies and hosts in memory, since it is not robust or scalable enough. You can deign around this by persisting the state of the service between operations, but that implies some ability to connect back to that state in each operation. The session starts by discussing the challenges of writing such a durable service and the design options, and then demonstrates several ways of managing and binding to the service state, using message headers, or the new .NET 3.5 context binding, contrasting and evaluating the alternatives. Through a series of conceptual demos, the session demystifies the WCF-solution of persistence providers, and even how to write a custom provider or use the built-in SQL provider. You will also see some advanced .NET and WCF programming techniques.