Smart-RPC.net

Smart-RPC.net is a free framework with which one can easily build client/server solutions for different platforms. It provides the possibility to execute a Remote Procedure Call located on a service (possibly on a remote machine) which is triggered by a client of that service.

The current implementation is built as a portable assembly and thus it can be used for different types of solutions, e.g. Desktop applications or Universal Windows applications.

An architecture is used in which the communication, the messages and the RPC implementation are loosely coupled. For some parts custom implementations are possible. Design diagrams can be found here.

The NuGet package is found here

Getting started

The example provides a basic implementation for both a service and a client. It shows how to call the methods on the service, how clients can subscribe on notifications originating from the service and how these notifications can be used at the client side. It also shows how the discovery mechanism can be used.

This sample is plug and play, after unzipping it can be opened in Visual Studio 2015. After that execute the solution and both the service and client will start.

Download example »

Strong points

  • Current implementation is fully functional out of the box.
  • Easily to extend the existing architecture with custom communication protocols or message formats.
  • Connection between client(s) and service is guarded. Any interruptions in the connection are detected, reported and retried.
  • Communication between client and service is typed, so no custom conversions have to be implemented. It's plug and play.
  • Discovery mechanism to locate services on the local network.
  • Possibility to add extra processing on the messages, processing for encryption and compression are included.
  • Future updates

  • More efficient transfer of large messages.