Phill,
I minimize my use of Microsoft.VisualBasic, For reason's similar to why
Fergus lists.
Being an OOP programmer, why would I want to rely on a Procedural library?
Why call a function "Format(obj)", when the object has the ability to format
itself "obj.ToString("c")"? Considering that I can add ToString to my
objects, to further the self formatting pattern. I cannot call the VB.Format
function with one of my objects.
A number of the functions return Object, IIf for example, which makes for
all sorts of nasty casting when you use Option Strict On. You are using
Option Strict On! aren't you?
However I don't see a real need to 100% eliminate the assembly, As Vijay
stated, there are useful functions in there that you may wind up
rewriting... Some of the string functions are useful, unfortunately most
have a "off by one" problem when compared the String Methods.
(Microsoft.VisualBasic is largely one based, while the framework is largely
zero based).
Microsoft.VisualBasic.ControlChars are handy constants.
There are certain constructs in Microsoft.VisualBasic that I avoid
(including but not limited to):
Microsoft.VisualBasic.Collection
Microsoft.VisualBasic.FileSystem
Microsoft.VisualBasic.ErrObject
Microsoft.VisualBasic.Interaction
Microsoft.VisualBasic.DateAndTime
Microsoft.VisualBasic.VBMath
As most of them have cleaner more efficient implementations in the Framework
itself.
Microsoft.VisualBasic.Strings is not my first choice, however I will use it
if the Framework makes what I want to do awkward...
The Powers That Be here are trying to introduce a "standard" that
we should be writing our "VB" programs /without/ using this
namespace at all and relying instead solely on CLR functionality.
IMHO rather than say yes or no on the entire assembly, go through Type by
Type and say yes or no. On Types where it has some good & some bad, state
where its appropriate to use the some good in that Type. Even on the ones
that you say don't use, consider stating where it may be appropriate to use
it.
By Type I mean Class, Module, Enum.
Just a thought
Jay
Most of my code I rarely directly use the namespace, VB itself will use it
for some of its constructs.