WCF support was something I was really looking forward to, but I seem to have missed some announcements on what was, and was not supported. I came across this blog post today http://blogs.msdn.com/andrewarnottms/archive/2007/08/21/the-wcf-subset-supported-by-netcf.aspx and similar confirmations on the MSDN forums. The blog post was from late August, so it looks like I need to stay on top of these things a little better.
Basically, the lack of TransportWithCredentials as a security option kills WCF for us out right. I was able to get this working using traditional ASMX web service client on our devices communicating back to a WCF service, thanks in large part to the work Casey Chesnut did to get WSE working on the compact framework (which is now part of OpenNetCF). It looks like X.509 is the preferred method, but we have had extremely bad luck with certs, and I don’t think management will ever allow their use again. I see managing certs for thousands of remote devices to be a little more complicated than a simple username/password approach.
I was really hoping for binary formatting, but can’t say I’m surprised that it’s not included, because it seems like binary serialization has never been part of the compact framework. No support for Streaming Messages is also a let-down. I find it ironic that functionality such as binary formatting and streaming messaging is left you, give that the usual argument with respect to the compact framework one of size limitations. I see there is mention of a Gzip Encoder which sounds promising, but is unusable for us until we can implement a work around to no TransportWithCredentials security.
I was talking with Travis (president of Madison DotNet UG), and we both agreed that one of the best things MS could do with regard to the Compact Framework, is allow developers to customize what modules are included. Start with a small base install, similar to what it is now, but at least give developers the option to deploy additional functionality (without having to re-invent the wheel themselves) when needed.
I guess once CF 3.5 Is released, I’ll be on the lookout for what types of extensibility options are available, but probably won’t be able to program anything custom until after our first release in April.
From what I can tell from a few posts online, it sounds like I’m not alone in my criticism and hopefully, enough developers send MS feedback so that we can get some of this functionality introduced as an add-on at least.