Module
s are VB counterparts to C# static
classes. When your class is designed solely for helper functions and extension methods and you don’t want to allow inheritance and instantiation, you use a Module
.
By the way, using Module
is not really subjective and it’s not deprecated. Indeed you must use a Module
when it’s appropriate. .NET Framework itself does it many times (System.Linq.Enumerable
, for instance). To declare an extension method, it’s required to use Module
s.