At that time I decided it was time to create an RPC library, RPC stands for Remote Procedure Call. One of the reasons was that I was not satisfied with the found solutions. These solutions were either too complex, they missed certain functionality or some other reason. Another reason was that I saw it as a technical challenge.
During the last weeks I created the first version of the Smart-RPC.NET library. It is compiled as a portable assembly so using it in a Desktop or a Universal Windows application should offer no problems.
Some basic functionality:
- Architecture in which certain parts can be extended with custom functionality. For example the communication path used between a client and a service can be customized.
- Connection management, connection between client and service is monitored. When possible the connection is recreated from the client side.
- Execution time of requests are monitor and terminated when the maximum period is exceeded. Client is informed when this happens to his request.
- Notification mechanism in which the service side can trigger the client(s) without a direct request.
On the website the following is available:
- a link to the project page at NuGet.
- a link to a zipped example showing how to set up a client and service.
- design information containing class diagrams and sequence diagrams detailing the mechanisms provided.
In the near future I will adapt the client side so that it can run on the micro .NET framework. I will be testing this on my Netduino Plus and Netduino Plus 2.