So I've got a project, running all on a private network. I've got a computer interfacing to some specific pieces of hardware and presenting a user interface via Winforms to control them all.
Now, I'd like the ability to split the app, such that all the interface and main business logic runs on one computer, but the GUI runs on another, connected via a network. There will be only one GUI running. The first impulse is, of course "use remote desktop", but there's high framerate video being displayed that won't quite work that way.
The video I can stream multiple ways, but what's the easiest way to communicate between a Winforms front-end and service back-end? .Net Remoting? WCF? Roll my own?
I would check out WCF as a first option. Using WCF makes it really easy and natural to split applications into services, and gives you the flexibility to change "bindings" easily to find a balance between performance and interoperability.
If you need high performance, check out the lower-level binary bindings like NetTcp.