Hyper-communication in Silverlight 4
For better bi-directional communication, a new communication protocol, Net.TCP, was introduced since .NET Framework 3.0 as part of WCF. Net.TCP is now available in the coming Silverlight 4 improving the throughput and the number of connections many times compared to HTTP Polling Duplex.
Silverlight 3 has introduced the option to bind to HTTP Duplex Services which allows the application to constantly poll the service for updates simulating a duplex communication that way. Silverlight 4 introduces a better solution, the Net.TCP Port Sharing Service. Different from HTTP, Net.TCP offers native duplex communication with significant performance gains resulting in application improvements. The ports opened can be shared between multiple applications, but they are limited to the range 4502-4534 as for any other port access in Silverlight.
According to Tomasz Janczuk, a Development Manager working on WCF at Microsoft, Net.TCP offers significant improvements over HTTP Duplex in the following areas:
- throughput – 5.5 times higher for the UI thread and 870 times higher for the worker thread
- maximum number of clients – 5-6 times more connected clients supported by a server
The protocol is suitable for Silverlight applications where communication speed is very important. One major drawback is that it uses a series of ports usually blocked by firewalls so it is not suitable for public, external, applications but rather for intranet ones. Another problem is that SSL is not supported making it unsecure, issues that Janczuk mentioned to be addressed in the future.
Related resource: SOAP/TCP Transport for WCF.
Shane Hastie on Distributed Agile Teams, Product Ownership and the Agile Manifesto Translation Program
Shane Hastie Apr 17, 2015