It is with a profound sadness that I realize that the serialization subsystem I built for Delphi a few months back, while working for Visionutveckling, was so comparatively inefficient.
While studying .NET Remoting, I suddenly understand what dispinterfaces is all about. And suddenly, in a blinding flash of insight, I realize that I had, in my hands, the power to build an entire remoting interface for Delphi, complete with marshalling, object-by-reference pointers, remote objects and everything else. Instead, I went with a serialization layer that fell substantially short of what I could do now.
I kind of wish I could go back and do it all over again.
On the other hand, the solution I did build, did work flawlessly. So I guess it was good enough for that particular task.
Maybe I’ll build it as an open-source thing.
P.S. dispinterfaces are cool because they use a special Invoke method to channel object calls. So you can set up a proxy which serializes the call and uses a communication channel to instantiate an object on the other side.