What the change to .net from vb6 was improved tooling, analysis. Wait till the "Roslyn" based compiler technology and infrastructure gets fully integrated into VS. (Some of it already there.)
It also doesn't matter what language the library was used to make (so long as it compiled as IL / .net). I've in the past used 5/6 different programming language in one project!
I'm a poly-linguist programmer, I choose the language best suited for each part of the solution. Processing lots of XML use VB.net (as it has XML Literals.).
I enabled the language to evolve and advance, take Generics, LINQ Async & Await, DLR (Dynamic Language Runtime) which VB.net uses, PPL (Parallel Patterns Library) and NUGET.
If we include MONO it even has support for exploiting the GPU for processing. (Akin to CUDA). The MEF (Managed Extensibility Framework) has made writing Plugin code simpler. Even the current versions VS utilise it, and even Windows8
It has allowed us to test, and verify the code.
It has allowed us to exploit the power of multiple cores. (PPL)
Still we have to look at vb6 in context of when it came out, a the limitation of the hardware of the time. Even the C++ compiler and linker is held back by design decisions made long ago. Have a look a CLANG as compared against other compilers, how starting from scratch utilize that knowledge we learnt and do thing in a better way.
In pre-Vista OS being an Administrator meant you could do almost anything, but then Vista changed that. If you follow the guidance and respect which folders put things it, it'll work on either OS. Which doesn't necessary sticking everything in My Documents. Stop treating C:\ as if the user as Write Access, or that there even is a C:\. The OS as the ability lie to your application which can find where it put things. Treat Program Files as Read Only. The goal is that get your program to run under Standard User. Why you typical office workers need administrative rights? To do their jobs.
You can still program console applications in VB.net, if you stick to .net methods and don't us OS specific API calls, you're application can easily run that exact same code (over pre-compiled) on Linux with Mono. (which is an implementation of the CLR).
It's usually better to write you code in a GUI agnostic way, so you can put what ever UI you want on top of it. (Example)
I've written applications in VB6, I would want to go back and look at the code now. As it contains lots of hacks, spaghetti code. very little or no separation of the different layers Data, Processing, Control, Input, Output.. A lot of the programmers have a bias to what I call "GUI Control based Thinking" everything has be in a control. The have difficulty not think about them, show them an example that has no reference to a control and they are lost.
Visual Basic gets a bad reputation because of this. VB.net is a different beast to vb6 but is still gets tarnished. It's just as powerful as C#, even that little bit it can't do isn't a major problem (unsafe code), cos we can do that little bit in C# and utilise it in VB.net.
You can still program in vb6 style (mostly) in vb.net it is a descendent of vb, but if you do you lose of a lot of the benefits .net brings.
If I remember there was no free version of VB6 at the time, unlike now with the Express editions.
This post has been edited by AdamSpeight2008: 07 December 2013 - 08:20 PM