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.
- I do not know WhySomeHateVbClassic, I hate to think it is related to jealousy towards its commercial success.
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:
ExtremeProgrammingWithVbClassic:
Other VB:
VB Debate:
VB Related:
See
VbClassicBugs.
(Additional comments moved to ThingsWeHateAboutVbClassic and VbTeachesBadHabits.)
VbClassic V6 support has ended 31Mar05. Some users not willing to go VbDotNet are seeking alternatives.
See also the evolving
VbClassicMigrationConcerns
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
- VB1 -- look Mom, I can create a program with some windows, with different coloured things, all in a few minutes
- VB3 -- Companies start to use VB, as ODBC has taken off and all kinds of databases can be hooked up to VB3
- VB4 -- 32 bit is good, 16 bit is bad
- VB5 -- Components, ActiveX, link to remote database objects
- VB6 -- ActiveX Data Objects (ADO), support for DistributedInternetArchitecture
Sites with VBClassic material of interest
* denotes sites that are confirmed to have new/revised material posted June2004 or later
VbClassic coding help from Microsoft NewsGroup
Post
http://communities.microsoft.com/newsgroups/post.asp?ICP=msdn&sLCID=us&action=new&sMessageID=&sGroupURL=microsoft.public.vb.general.discussion
View threads
http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.vb.general.discussion&lang=en&cr=US
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:
- ObjectOriented solutions is the best approach to creating a stable architecture at the macro level, and to promote more maintenable code at the individual program level
- An XmlEnabled application allow better integration with new solutions, or as a means to repackage existing legacy applications
- WebApplicationDesign allow deployment of IT solutions much better than thick client based options, with the tradeoff of slightly reduced workstation application integration cabilities.
In the case of
VbClassic, corresponding spinoff pages for people with more interest are:
These pages were started in early 2004.
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/ ?
- article restricted to subscribers found in Google News search early 2005
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
A tutorial on
WinInet is found at
http://www.garybeene.com/vb/tut-inet.htm, and a sample dialup VB project is at
http://www.vbip.com/wininet/wininet_dialup.asp
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.
CategoryVbClassic