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:''' * ChrisAnderson * JasperPaulsen * ThomasEyde * DonBox '''VbClassic Object Orientedness and Methodologies:''' * InheritanceInVbClassic / VbClassicImplementationInheritance * VbClassicProgrammingModel * VbClassicSingleton * VbClassicContainmentAndDelegation * VbWiki '''ExtremeProgrammingWithVbClassic:''' * ExtremeProgrammingWithVbClassic * VbUnit * RefactoringInVbClassic, RefactoringLanguage ''(VB examples in "Within Methods" refactorings, and some others.)'' * VbLiteUnit '''Other VB:''' * MakefileForVbClassicBuild * ReDim '''VB Debate:''' * ThingsWeHateAboutVbClassic, ThingsWeLoveAboutVbClassic * VbTeachesBadHabits, VbIsBadForNewbies * WhyChooseMicrosoftAndVb * VbClassicSurvivalGuide '''VB Related:''' * DnaVsOo * ComponentObjectModel - ''COM'' * ComVsCorba * ActiveServerPages * VbScript * AspWiki * VisualBasicForApplications * HandheldBasic - "VB for the Palm" 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 http://www.emediawire.com/releases/2005/4/emw221794.htm -- added 11Apr05 * Jun05 petition at http://www.builderau.com.au/architect/dotnet/print.htm?TYPE=story&AT=39191344-39024710t-20000008c ** the author agrues that VbClassic has relevance in the context of even MicrosoftIndigo 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 VbClassic''''''Applications 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: * VbClassicSurvivalGuide * WhatsBeenDoneInVbClassic * RefactoringInVbClassic * VbWiki * SdiDesk (written in VbClassic) ---- '''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 UnitTest''''ing 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 * http://www.crystalreportsbook.com/Chapters.asp -- Crystal Reports for DotNet, could be helpful for classic VB? * http://vbnet.mvps.org/ '''*''' * http://vbdox.sourceforge.net/ - freeware documentation tool * http://vbwire.com/ * http://www.mentalis.org/index2.shtml -- has tools and examples for developers for windows API work * http://www.vbwm.com/art_1999/whatsnew/default.asp -- VB6 new stuff * http://authors.aspalliance.com/brettb/VBScriptRegularExpressions.asp -- has section on VbClassic use of the library for RegularExpressions processing ** includes a link to http://regexlib.com/ -- web site with searchable working expressions ** see TextFormattingRegularExpressions for Wiki related patterns * http://www.blackbeltvb.com/ -- very few free of charge stuff, better off read older versions of VBPJ for blackbelt stuff * http://www.vbcity.com/forums/ * http://www.vb-faq.com/articles.asp * http://www.zarr.net/vb/default.asp -- has learnVB ebook, XML read/write example using Microsoft SAX * http://www.vb2themax.com/ * http://www.freevbcode.com/ -- spinoff from DevX.com * http://www.vb-ip.com/ -- ''ip'' meaning Internet programming * http://www.fawcette.com/archives/magazines/vsm/ -- old archives of VBPJ * http://www.vbaccelerator.com/home/VB/index.asp '''*''' * http://vb.mvps.org/ * http://vb.mvps.org/hardcore/ -- online book on VB5? has good material on COM * http://visualbasic.about.com/ * http://msdn.microsoft.com/library/en-us/vbcon98/html/vbconProgrammersGuide.asp * http://www.mentalis.org/vbtutor/tutmain.shtml list of tutorials including VisualCee for VbClassic developers * http://www.visualbasicforum.com/showthread.php?t=7318 -- link to other help, site still have active VB forum '''*''' 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. * http://www.vbexplorer.com/VBExplorer/vb_feature/august2000/using_crystal_reports.asp -- * http://www.kather.net/visualbasicsource/CrystalReports/example1.html ---- '''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: * ObjectOrientedProgrammingInVbClassic with ComponentObjectModel focus ActiveServerPagesInVbClassic * VbClassicSupportForXmlProcessing for use in application integration (eventually) * ActiveServerPagesInVbClassic for Web enabled frontends * ActiveDataObjectsInVbClassic for linking up with DBMSs 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 * Note WinInet is not supported when run from a system service or an IIS application. See http://support.microsoft.com/kb/238425 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 * A set of thread on which service pack to use at http://groups.google.com/groups?th=20be3544245dcff8 ---- 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