Right now there are two things that are consuming my life at work. The first is flushing out bugs and polishing off the final details of Indigo Beta 2. In the transports area you’ll see a lot of new HTTP functionality in Beta 2, including HTTP Streaming, cookie support, and fine grained extensibility to support RESTful scenarios. And we’ve made usability improvements across the board based on Beta 1 feedback. Keep the comments/bugs coming and let us know what still needs work for your scenarios!
The second is preparing for Microsoft’s Professional Developer Conference, affectionately known as “PDC”. PDC is Microsoft’s forward-looking developer conference (i.e. what’s coming as opposed to what’s shipped), and has a ton of breakout sessions about Avalon, Indigo, Whidbey, Office, Vista, and more.
If you’re going to be at the PDC, you should come see Yasser and I lift the curtain on Indigo’s Channel Layer. We’ll go over many of the intricacies involved in writing custom transports and custom layered channels. You’ll also be able to pepper me with questions at any point during the conference.
The official abstract describes our talk as follows:
Windows Communications Foundation (“Indigo”): A Deep Dive into Extending the Channel Layer
One of the most powerful ways you can extend the Windows Communications Foundation (formerly codename “Indigo”) is by teaching it to speak additional protocols and transports. Want to use the Windows Communications Foundation to talk directly to a system that understands only proprietary protocols? No problem. Want to use the Windows Communications Foundation to build reusable SOAP-based protocols? We have you covered. This session shows you how to write a custom Windows Communications Foundation transport that can be used as seamlessly as the built-in transports (e.g. HTTP and TCP). It also shows you how to write a custom SOAP-based protocol that composes with the other built-in protocols.
I promise it will be entertaining (if I’m wrong you can bring tomatoes). See you there!
I met you briefly when you were in Atlanta recently. I have a question about building a custom SMTP channel. I have looked through Steve’s SMTP example, but I am not ready to do anything that complex. Can you (or Steve) provide some insight into what the SmtpChannelListener class would look like without using the InputQueue or Mailbox classes under the covers? I want to start basic and build from there.
You may want to start with my TCP sample from PDC, which is much simpler. Let me know how it goes and if you have specific questions. As for SMTP, I’ll see if we can put together a simpler version, though that would probably require a helper DLL class (which I may do on the side :))
I tried to use your TCP sample from http://windowscommunication.net/ControlGallery/ControlDetail.aspx?Control=2226&tabindex=2
but it failed to compile:
TcpDuplexSessionChannel.cs(547,36): error CS0246: The type or namespace name ‘SessionFaultedEventArgs’ could not be found (are you missing a using directive or an assembly reference?)
I tried to comment out that line and got another bug:
cpChannelListener.cs(17,17): error CS0535: ‘Microsoft.ServiceModel.Samples.Transport.TcpChannelListener’ does not implement interface member ‘System.ServiceModel.IChannelListener.InnerChannelListener’
c:WINDOWSMicrosoft.NETFrameworkv2.0.50727System.ServiceModel.dll: (Related file)
That sample requires the September CTP. An update for the February CTP has been posted at http://windowscommunication.net/ControlGallery/ControlDetail.aspx?Control=2247&tabindex=2.