Erik,
In addition to Rob's comments about a "Shared" class is a class that only
has Shared members (all methods, properties, fields etc, are shared).
Also you should make the constructor private, to prevent instantiating an
instance of the class and make the Class Notinheritable to prevent deriving
from the class.
A Module actually does not have a constructor, so you are preventing from
instantiating it. And a Module is Notinheritable to prevent deriving from
it.
I normally prefer "Shared" classes over Modules as they require the class
name to prefix the member names, which to me is better encapsulation (you
know where that identifier is coming from). However "Modules" are useful for
truly "global" functions, such as Math function.
You can use Imports on a class name so the class name is not required on
shared members. Such as:
Imports System.Math
Hope this helps
Jay