Thursday, August 25, 2011

WCF Support Improved in Mono

Xamarin's first official Mono release came out earlier this month with many bug fixes, OS X Lion support, a “vastly improved WCF stack”, and better debugging support. The version number is 2.10.3, which makes it a short-term support release. Those who desire a long term commitment to support should stay with the 2.6 series until Mono 3 is ready.

The bug fixes cover a wide gambit including the C# compiler, the JIT compiler, WCF, ASP.NET, OS X, and ADO.NET. The full list is available in the release notes. While there were also new features in most of these categories, by far the biggest winner is WCF with the following features:

    Support WebHttpBinding configuration
    Implement support for Stream param with WebHttpBinding raw content format
    Implement support for generic data contract type name with "{x}"
    Implement XmlSerializerMessageContractImporter
    Implement WsdlContractConversionContext
    Properly implement Message.ToString() + all related changes
    Add message buffer support for RawMessage
    Optimization: Full equivalence comparison is unnecessary for MessageEncoder ContentType
    Allow DocumentType in ImportNode()
    Add Decimal support to XmlBinaryDictionaryReader

It should be noted that Mono still supports only a very small subset of the WCF stack. Xamarin's current plan is only to support those features that are also available in the Silverlight runtime. The size of the full WCF stack makes implementing it completely untenable without corporate support. Another possibility, though unlikely, is that Microsoft open sources the WCF stack in the same fashion that they open sourced the ASP.NET MVC stack.

Speaking of ASP.NET, below are some of the features that made it into this release. It should be noted that support for Web Forms has always been on shaky ground, both legally and from a long-term commitment, and those wishing to use Linux as a web server should strongly consider focusing on ASP.NET MVC.

    Added support for optional parameters to WebServices
    Added FormsAuthentication.Timeout 4.0 property
    Support RemoteEndpointMessageProperty
    Implemented composite scripts support in System.Web.Extensions


Read more: InfoQ
QR: Mono-WCF

Posted via email from Jasper-Net