Hello,
with regard to 1), I would not say that the "main idea" of QuickOPC.NET is to retrieve data. Both communication directions are supported equally, it's just that reading is more prevalent - you might easily have application that does just reading and no writing, but you would have hard time finding an application that does just writing but no reading (although it is possible). So, we always start by explaining the reading, but that does not mean that writing is less supported.
If you want to learn, I suggest you start with reading, and then turn your focus to subscriptions - which also transfer the data in the same direction as reading, but in more efficient way, if you need updates to the same item over a period of time.
With regard to 2), you need to gain some knowledge of the OPC technology in general. We do not really go into these areas in our documentation and examples, because it would mean pretty much duplicating the contents that can be found elsewhere. Here are some links you might have to look at:
en.wikipedia.org/wiki/OLE_for_...,
www.opcfoundation.org. Or, Google for "OPC Tutorial" or so.
But I can answer the specific questions:
QuickOPC.NET is a set of assemblies for .NET (which are, physically, .DLL files, yes).
QuickOPC is not bound to any specific OPC Server. It is in your own code where you specify which OPC Servers you want to connect to.
We install a Simulation OPC Server together with the product, just for the purpose of testing, and in order to make sure that all examples are runnable and working.
OPC Servers are COM objects and are most commonly identifed by ProgIDs. "OPCLabs.KitServer.2" is a ProgID of our Simulation OPC Server, so that's why you will see it in almost all our examples.
Where is that floating point value (Demo.Single)? - It is just in memory space of our Simulation OPC Server. There is nothing physical it corresponds to, because it is simulated. With other OPC servers, those that connect to a real technology such as Programmable Logic Controllers (PLCs), the OPC item might correspond e.g. to a register in a PLC memory that controls certain algorithm, or to an I/O point that represents reading of a sensor (e.g. a temperature) or a setting of an actuator (e.g. a valve). This completely depends on the concrete OPC server and its configuration.
Best regards