Remote Method Invocation using TCP on Microsoft or Mono .NET

What is RemotingLite

When I started making the Message Passing API distributed I initially used Windows Communication Foundation for the communicating parts of the software. But then I realized that not everyone might want to run this in an all-Windows setup. Often you have all your backend servers, or your local supercomputer, running Linux.
The Mono.NET framework and runtime does not support all that Microsoft makes, which includes the .NET 3.0 extensions

  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Workflow Foundation (WF)

The WCF framework is great. It allows you to easily write distributed software on top of just about any form of communication you can imagine, including TCP, Microsoft Message Queue (MSMQ), WS-* webservices and named pipes. Whatever you think, this framework is a huge step forward.
But as I mentioned earlier it does not run well on Mono.NET. This is why i wrote this little API to enable programmers (including myself) to write distributed applications as easy as if they where using WCF, and it is easier to use than System.Runtime.Remoting.

This API has been tested in a mixed environment with both Microsoft .NET 2.0 and 3.0 runtime as well as the Mono.NET 1.2.6 runtime.

User manual

A small user manual for writing distributed service oriented applications using RemotingLite can be found here.

Release notes for version 1.2

  • It is now possible to let the service host use thread pool threads instead of regular background threads.
  • Significant performance improvements by a factor of 70-100 when communicating on network.
    • Better and more efficient serialization and deserialization.
    • A bit of transport protocol tuning.
    • Only sending argument values back to the client when the argument is by reference.
Release notes are part of the release

Downloads

The source code, the binary, and an example of how to use this framework can be downloaded at RemotingLite at CodePlex.