This post is going to introduce all the individual parts that make up NexusRemoting. It is not going to go into excessive detail on any single part, but instead show the overall design and introduce the terminology that will be used in future posts.
In this post I'll take a look at a concept called interface aggregation.
It's the last major piece required to understand the design and implementation of NexusRemoting and is also a useful technique to understand in general.
While the following knowledge is not strictly necessary to use NexusRemoting, it is needed if you want to understand how NexusRemoting actually works under the cover. Also, the information presented here is generally useful for anyone working with interfaces beyond the most trivial cases.
Delphi simplifies working with QueryInterface through the "Supports" functions in SysUtils:
Before I can go into the details of the Remoting system as implemented by NexusRemoting it's important to have a common understanding of Interfaces in Delphi. This post will explain the fundamental concepts involved with Interfaces in Delphi.
When reading the above paragraph closely it should jump out that I'm qualifying "Interfaces" with "in Delphi". Interfaces as a general concept are implemented by many programming languages and platforms in different ways. Within the context of Delphi Interfaces are based on the definition of interfaces from COM.