I was looking for a Windows Mobile specific WCF reference since I knew that the Compact Framework doesn't support all of the same WCF profiles that the desktop framework does. I was searching for a webcast that was done on the topic when I stumbled upon a document that had the information I was seeking on the CodePlex. You can see the document for yourself here. The document was created by Michele Bustamante aka That Indigo Girl.
The document contains a lot of good information and is written for the developer that has no experience with the compact framework or WCF. Only experience with the .NET framework is required. It will walk one through the steps of setting up their development environment for mobile development.
By the way, I did find a listing of the limitations for which I was looking.
|Feature ||Support |
|Not Supported. Contract can use Stream parameters but they will not be buffered or streamed.|
|Sessions||Transport sessions not supported. Service contract can use SessionMode.Allowed. Service should use InstanceContextMode.PerCall behaviour.|
|Duplex||Services designed for duplex communications with callback contracts cannot be called by mobile clients. Duplex requires a transport session.|
|Transactions||Service contract cannot require transaction for any service operations.|
|Data Contracts and Serializable Types||Can freely use. The mobile client will use XmlSerializer types that are wire compatible|
|Message Contracts||Can freely use. If the message contract includes custom headers proxy generation will not work. Mobile client requires additional custom code to work with headers.|
|Fault Contracts||Can include in the service contract. Proxy generation will not include fault contracts so additional custom code for mobile client is required to work with faults.|
There are quite a few more limitations to know about for WCF in the Compact Framework. I won't name all of them here since I think the document does an excellent job of detailing the limitations. At a length of only 72 pages including diagrams its a document that a developer should be able to easily get through.