Please explain the references

Can anyone suggest a reference to learn the differences between…Is their dependencies among each? Is functionaility overlapped among references? Very confusing…

System //Do i need?
GHI.* //GHI dlls? Do these rely on System and Microsoft.SPOT.*
GHIElectronics.* //GHI dlls?
GTM.* //GHI dlls?
Gadgeeteer.* //GHI dlls?

system.* and microsoft.* [url]Microsoft Learn: Build skills that open doors in your career
ghi.* [url][/url]
gadgeeteer.* [url][/url]

the ide tells you when there is a specific reference so based on what you need you must add the needed reference.
Among the GHI reference documents you have many examples and on top you find one or more import of what you need.
Definitely you need the Microsoft.Spot.Hardware when you want to pass a generic device interface ( like a SPI module ) or a CPU.Pin.
So when you call this function you can put a specific board pins that are defined in GHI.Pins library.

An example :

using Microsoft.SPOT.Hardware;
using System;
using System.IO;

namespace MyNamespace

    public class MyClass

        public MyClass(Microsoft.SPOT.Hardware.SPI.SPI_module Module,Cpu.Pin CS, Cpu.Pin PD)

And then in your main program imports GHI.Pins:

    MyHWSpecificClass = New MyClass(SPI.SPI_module.SPI2,

     MyHWSpecificClass = New MyClass(SPI.SPI_module.SPI1,