WCF in Metro apps – supported functionality

I wanted to do this quick post to outline the supported functionality in terms of commonly used APIs for WCF in Metro apps. I am not listing each and every included API in this post but just listing the top level ones which are commonly used to give you an idea. Let us know if you think there is something obvious which is missing and which you would eventually want to see in the final release. You can also drill down into the included APIs by using your favorite disassembler (for me it is Reflector!) on the reference assemblies here - C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5

Bindings -

  1. BasicHttpBinding
  2. NetTcpBinding
  3. NetHttpBinding
  4. CustomBinding

Binding elements -   

  1. BinaryMessageEncodingBindingElement
  2. TextMessageEncodingBindingElement
  3. ConnectionOrientedTransportBindingElement 
  4. SslStreamSecurityBindingElement
  5. WindowsStreamSecurityBindingElement
  6. TcpTransportBindingElement
  7. Http(s)TransportBindingElement
  8. TransportSecurityBindingElement

Encoding -   

Text, Binary

Security modes -   

None, Transport, TransportWithMessageCredential, TransportCredentialOnly (for BasicHttpBinding)

ClientCredentialType -

None, Basic, Digest, Negotiate, Ntlm, Windows

Transfer Mode -

Buffered, Streamed, StreamedRequest, and StreamedResponse   

Serializers -    

DataContractSerializer, DataContractJsonSerializer, XmlSerializer

Miscellaneous -