> 1. It's already deprecated/discontinued. I don't know if .NET is right for
> us and our clients.
> 2. We're having constant problems just deploying Windows apps
> because of the
> incompatibilities between different Windows platforms and stealth
> versions.
> 3.  The standard Windows component installation scheme (ie. copy
> a DLL into
> a system-wide directory) is bogus, and leads to lots of headaches.
> 4. VB doesn't have many modern features as standard that some languages do
> (ie. zip compression enconding)
>
> 5. I want to do real OO coding in the interface.  I want to be able to
> subclass GUI components, add new features, and let app developers
> drop these
> new classes into their IDEs (or at least code with them) as first-class
> components.  (ala Javabeans).

Well, then, you should check out .NET :) Not that all your problems are
solved, but they've tried to improve things.

#2/#3) .NET assemblies are usually contained in a .dll. The .dll now has to
be local or in the GAC (global assembly cache). The GAC is sort of a system
directory containing everything, but it's actually a special directory.
First, before assemblies are allowed in the GAC, they must have a digital
encrypted signature and version. This allows assemblies with even the same
basic name to exist simultaneously on the same box, because the digital
signatures will differentiate the two .dlls. You can have multiple versions
of the same assembly in the GAC as well, it lets them co-exist. Programs
that use these assemblies have to reference them by digital sig and version
number, so there's no mixing up.

#5) any .net language must compile down to .net IL (intermediate? language),
and it has similar Java-esque OO features. Reflection and full GUI
inheritence. Web pages (.aspx) and Windows forms can both be subclassed with
ease, as well as anything GUI -- all objects are objects, GUI or not.

And if you don't like how they had munge VB to get it .NET-able, you could
consider using C#, which has more of a Java feel to it.

Don't get me wrong, I'm loving everything Ruby I've been doing on Windows
lately, and it's much more fun (and flexible) to code in than C# ... but I
have yet to actually do a medium sized GUI, and I have a little apprehension
about trying that with FXRuby compared to the fancy GUI designers I'm used
to with Delphi and now .Net, though I'd love a good excuse to give it a
shot. :)

If you go Ruby, you'll be distributing your source code, unlike** with .Net.
You might also run into some frustrating distribution issues (making sure
the right dependent libraries are installed and the like, really nothing
much different than your current issues, though there'll be less .dll hell),
though I think they're all manageable.

> I believe that moving to a language that
> strives to be cross-platform (and I'm looking at Ruby, Java,
> Python, Perl, &
> Smalltalk) will, by its very nature make the Windows-only
> deployment go much
> smoother for many reasons.

I'm not sure this'll be the case. Plus, one of the more frustrating areas
I've run into with Ruby is its birthing in *nix-land. Windows support is
good, and win32ole gets me a long way, but sometimes some of the 3rd party
libs people write are *nix central and that's frustrating.

Chris

** (sorta, there's the whole reverse engineering byte code and obfuscation
issue in .Net like in Java)