I looked at VB.NET for about 5 minutes but I can’t see a single compelling reason to use it. A few syntax constructs remain but basically it’s a new language and one that does not appear to be as well supported as C#. Whichever language you use, you still have to learn the Winforms way and the .NET API. The extra learning involved in C# syntax is negligible C# provides excellent support for early binding to COM. You just import the COM reference, some magic wrapper code is created and you pretend you're using a .NET object. So far so good. Unfortunately, in some circumstances you don't want early binding, you want late binding. There are scenarios for which late binding is justified. You may not know the exact binary interface until runtime. The object may exist in multiple versions and have improperly adapted interfaces between the versions. This is where things become a pain in C#. You have to use reflection to invoke everything, producing such beautiful code as: // overlo...