Microsoft VisualBasic versions 3 through 6 are referred to as "VbClassic". "VB Version 7" was the first VisualBasicDotNet release.
It's largely credited with bringing GUI development to the "programming masses", popular for it's drag-and-drop style of WYSIWYG GUI development. However, it was often plagued by deployment headaches, including DllHell. And, by some accounts it encouraged questionable development practices.
This is a name coined by the VisualBasic (VB) community, referring to Microsoft's version of the product for the Windows Operating System prior to the mid 2002 release of the DotNet platform.
The distinction has significance due to a radical departure in the syntax, environment and capabilities in the MicrosoftDotNet version of this particular language. See FredDotNet for related stories.
Some in the VB Community see VisualBasicDotNet as such a departure from VbClassic that it might as well be called FredDotNet.
As at the beginning of 2004, VbClassic has already been taken off the shelf by the vendor. However, there is still a huge installed base within commercial organizations that still have VbClassic applications that have to be maintained.
Despite attempts by many to belittle the language, and others wanting to take profit by misusing the VisualBasic brand name, there is not much of a competition when considering choosing a high level language (see AlternateHardAndSoftLayers) that works well with Microsoft environment and inexpensive to resource.
So now we're going to work in Basic, but we still want to go fast, get good quality, be flexible, scalable, close to the requirements and all that good stuff. Maybe there's a way to do ExtremeProgramming in VB? Or if not, why not?
For more information on MicrosoftCorporation's VisualBasic, see links and subtopics below.
Some VbClassic Programmers:
VbClassic Object Orientedness and Methodologies:
(Additional comments moved to ThingsWeHateAboutVbClassic and VbTeachesBadHabits.)
VbClassic V6 support has ended 31Mar05. Some users not willing to go VbDotNet are seeking alternatives.
New users please see IwannaLearnVbClassic, and if you get discouraged by snappy comments from geeks, take a look at NewWineOldBottle, the Vb bottle got plenty of juice left in it yet
VbClassic compatibility
With WindowsXp SP2, applications written using VbClassic earlier than V5 are reportedly broken. See http://www.crn.com/sections/security/security.jhtml?articleId=25600156
Nothing For VbClassicApplications from DotNet
While on the topic of VisualBasic before MicrosoftDotNet, there is this VisualBasicForApplications (VBA) that is still required to integrate Microsoft office applications with Dotnet managed code. I think as companies switch to Office2003 or later products, the use of VBA will be diminished.
Visit the following link for a tutorial on VBA http://visualbasic.about.com/c/ec/6.htm?PM=ss13_visualbasic
See also VbScript
Can VbClassic applications survive in a WindowsLonghorn environment?
Probably no-one knows for sure. But some say there will be serious attempts in withholding support for OperatingSystem level API calls that VbClassic applications rely on.
What references can be provided to support/refute this view?
People interested in more background information are advised to checkout WhyVisualBasic and WhyAnotherComponentTechnology. People who want to get handson VbClassic please checkout IwannaLearnVbClassic. And for the impatient, check out the tutorial at http://visualbasic.about.com/library/bllvb-6a.htm?once=true&
VbClassicProgrammingModel has some discussions on applicability of OO concepts to VbClassic.
There are pages here that discuss project experience on use of VbClassic, including:
Testing VbClassic
The following response from a former VbClassic guru, addressed to the question of use of VbUnitThree, standard edition, to help create better tests for a legacy VB6 application. The application have forms have embedded processing logic. It appears VbUnitThree require forms to have logic separated out into classes, which could be a time consuming exercise.
To the best of my knowledge, none of the VbUnit frameworks have the "screen scraping" technology necessary to test "business logic in form events" code. I would still used VbUnitThree on such projects, but it would take time and code changes to make things testable. -- JeffGrigg (...who left VB to do Java.)
For the benefit of those who can't leave yet for Java, I should point out that it's perfectly possible to create a thin UI and a model in VbClassic, and test the model using your favorite UnitTesting tool (mine is VbLiteUnit since I wrote it). I don't think this is at all different from what people do to "Test the UI" in other languages, short of using an external ScreenScraper program. That's not so say I'm happy to be still working in VbClassic. The lack of introspection and the practical impossibility of custom iterators for use with ForEach? are becoming serious thorns in my side, but testability is not really a problem. -- SteveJorgensen
There is also a new testing framework for VBClassic and VBA called VbLiteUnit.
Very Basic (and incomplete) History
Sites with VBClassic material of interest
VbClassic coding help from Microsoft NewsGroup
Post
View threads
VbClassic use of CrystalReports
The vendor of the Crystal addin has grown leaps and bounds ever since it got associated with VisualBasic. In recent years its use has been extended to the nonMicrosoft environment as well. It is a hefty piece of software and hopefully the few tutorials, etc below can get people started.
VbClassic and Windows APIs
Until WindowsLonghorn arrive, windows programming will probably touch on the use of this dreaded API. Refer to http://www.vbexplorer.com/VBExplorer/wrox01.asp for some material for a quicker start.
VbClassic and Enterprise distributed application development
ObjectOriented and XmlEnabled and WebApplicationDesign appear to be the only way to go for Enterprise class applications.
This is a required combination due to these considerations:
Start with ComPlus overview at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncomser/html/complus4vb.asp.
An example VbClassic utility that straddle both ObjectOrientedProgrammingInVbClassic and VbClassicSupportForXmlProcessing is a COM Serialization tool, found at http://www.topxml.com/code/default.asp?p=3&id=v20030117160632&ms=20&l=vb&sw=categ
Anyone read this Integrating XML Web Services with VB6 Applications at http://www.ddj.com/documents/ddj0402b/ ?
Tools and components for VbClassic
Common Controls Replacement Project http://ccrp.mvps.org/
See also SoapToolkit
VbClassic limited edition
I got some help at WardsWiki in locating a freely available edition of VbClassic, version 5 control edition. Microsoft made this limited function program to encourage the creation of COM based ActiveX controls. Get it while it is still available, if you want to get some experience on VbClassic.
See link at VbClassicQuestions
VbClassic and Internet enabled applications
See http://www.devx.com/getHelpOn/10MinuteSolution/20373 for article on the use of WinInet? api that was designed to abstract HTTP, FTP and Gopher protocols
VbClassic News and developments
Service Pack 6 is here (March 2004). Discussions at http://groups.google.com/groups?th=12b91fce456a0123 that includes guru Karl Peterson
Some background on the disturbing VB switcheroo: http://www.i-programmer.info/professional-programmer/i-programmer/2465-classic-vb-is-20-and-still-missed-by-many.html
A US baseball analogy: http://msdn.microsoft.com/en-us/magazine/dn745870.aspx
I know this is a VB page.. but..
Also checkout delphi. If you are afraid of run time libraries that VB relies on, and you wish to have more power available later on like C++ has...Delphi bridges the gap. I looked into VB and C++ years ago, and both were close to what I needed, but delphi had so many more bridges between the gap. One other reason I picked it was because of a nice Newsgroup (free usenet) they have and good web directories like Torry and DelphiPages?. I was debating picking it, because of popularity factor .. but it is highly followed and almost any question you have is answered on newsgroups.