The idea is that when the client connects to the server, the server will initialize a unique SharedClass for that client, the client can then call those functions in its persistent session as it feels and never know what's actually happening in the methods!
Now I'm aware that creating a strongly typed method only to pass it to a generic method is redundant, however, combined with a DLL that contains the Prototypes, it makes syncing up the server's SharedClass with the client very easy. I was planning to do it another route instead of manually create overrides for the Prototypes interface, however, that required Emitting OpCodes and a lot of really complicated shit for a not very difficult task, and in the end this was the best method I could come up with that was still simple, however it does come at the cost of speed.
Features:
- Remote Execution
- Event Driven (Minimal RAM/CPU Overhead)
- Elliptical Curve Diffie-Hellman Handshake
- AES 256 Encryption w. Random IV
- GZip Compression
- .Net 3.5 (Could prob get lower if you remove ECDH Handshake & LINQ)
- Dynamic Incoming Buffer Size (I don't know why everyone uses static buffer sizes, I'm coming HeartBleed! :* )