'.Net 6/7, C#, desktop three-tier app: use gRPC or not?
.Net 6/7, Windows/Linux, C# mostly.
I am developing a set of applications on a three-tier architecture.
There are many clients (up to ten in the normal case) receiving data from one server. Very rarely, clients send requests (commands) to the server.
The server can transmit a lot and continuously (without a separate request from clients) to clients - up to several kilobytes per second in the form of packets of various sizes. Packages can include lists and maybe serialized instances of classes (even if only structures and arrays, but all of these are unpredictably different sizes).
It is very important that customers receive data as quickly as possible, as close to real time as possible. The system is similar in some ways to a network game, but it is not a game at all. There may be delays, but not more than 1 second. Even this is a lot. There is a thing on the server that produces data. This data is sent by the server to the clients.
Usually in this case, I made my exchange protocol based on UDP or TCP. Binary format, UdpClinet and stuff like that. Had little experience with WCF. Now we are no longer talking about the WCF - it has been dead for a long time. For example, I don’t want to invent something of my own on UdpClient either (although this is always a working option).
There is gRPC. Never used this before. Now I looked, read - it seems that this is what you need. It's embarrassing that everywhere in the use cases people write about the web, about ASP.Net. I have a pure desktop.
To what extent can the use of gRPS be justified in my case? Maybe there is something else that automates serialization, data exchange over the network?
Thanks in advance for advice.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|