Pablo’s Topic of the Month – April: Advanced Language Patterns for Visual Basic
Pablo’s Topic of the Month – April: Advanced Language Patterns for Visual Basic
Following on the coat tails of last months’ Pablo’s Topic of the Month – March: Leveraging XML for Computationally Expensive Operations, I’d like to announce the new PTOM for April: Advanced Language patterns (for Visual Basic).
We (the Los Techies crew) have been discussing this month’s topic vigorously for the past few weeks and we’re really excited to announce the highlights of this month’s topic. Over the next few days and weeks we’ll be doing an article storm (the new ‘weblog’ people call it ‘blogging’, but that will probably never catch on) on the subject of advanced language patterns in Visual Basic. With the recent SP6 release of Visual Basic last summer (1998), several new and exciting features have opened up new possibilities with this exciting, robust (and enterprise Hah! Take that C++ know nothings!) language. We plan on going pretty deep on these subjects, so please stay tuned and we welcome all your feedback and comments (except those from the the C++ guys — don’t bother, they’ll be summarily deleted without ceremony because we don’t need to free pointers. SNAP!).
If you haven’t already, please consider subscribing to the Los Techies Main Feed so that you can see the various post from the other Los Techies bloggers.
The main feed is here: https://feeds.feedburner.com/lostechies
Advanced Topics for Visual Basic
With the advent of much-anticipated Visual Basic 6, we now have the possibility to explore the benefits of having a fully object-oriented language with modern language concepts such as ‘memory handling’, ‘reference counting’, ‘string concatenation’, and the (magical and wonderful, in my opinion) advanced IDispatch support.
The topics we plan on covering are quite broad and include:
Advanced Error Handling
Visual Basic 6 will be known for a long time for how it eliminated bugs due to it’s comprehensive and first-rate structured error handling system. We’ll do a series of posts on advanced features such as:
- On Error Resume Next
- On Error Goto (label)
- On Error GoTo 0</ul>
Advanced Web Page Creation with WebClasses
Much to our chagrin, it appears the Web is here to stay. Fortunately, Microsoft has provided for us a world-class, top-notch Enterprise web framework that is sure to be the mainstay of web programming for the forseeable future known as ‘Visual Basic WebClasses’. Just imagine the sheer, raw power of in-memory, in-process VB6 code executing directly in IIS’ main process space. This will definitely put to shame anyone who thought parsing script text files in ASP will ever catch on. Sorry folks, WebClasses is the future.
- Stateful web patterns using VB6 Web Classes
- Making the web seem more like regular Windows Programs
- Avoid writing any HTML and use advanced, high-performance VB6 string concatenation techniques</ul>
Advanced Object Oriented Programming
For many years we have been chided and derrided by the C++ slogs about how VB isn’t ‘really OO’ whatever that means. Well, with the advent of VB6, we finally have a FULL OO implementation including Interfaces. Take THAT C++. Don’t bring no weak pure virtual abstract class action here! This is hard core enterprise programming now!
- Defining and using interfaces with VB6
That concludes the list of OO features in VB6.
Strongly Typed Data: Variant V_TYPEs
When dealing with more crude systems which do not have VB’s wonderfully adaptive and presumptive typing system (*cough* C++), it may be necessary to actually have to pigeon-hole your data into ‘strong types’ by understanding how VB stores data in memory and how it’s marshaled to systems outside the glorious VBRuntime. I know, I know, I thought we were past this too, but apparently some people find it necessary to still run code outside of a managed runtime environment like VB6 and so we must come down to their level. Posts about this subject include:
- Defining variant subtype with V_TYPE
- Rewriting C++ code in VB6 without having to understand pointers (not sure if we’ll get this one done by the end of April, that remains to be seen)</ul>
Ergonomic Considerations for new Drag and Drop Coding Features
VB6 has brought us even more opportunities to drag and drop our way to success without having to write
muchany code! But with great power also comes great responsibility. Many VB6 users have reported ‘mouse hand’, so it’s important to remember that, despite our ridiculous RAD productivity, we still are mere mortals and our hands CAN break. So take care, the VB6 programmer hands are a temple, after all.- Using other fingers for the Left Mouse Button: The Double Deuce
- Using your left hand for dragging
- Add-ons with Mouse Gesturing capabilities</ul>
Many different OPTIONs
VB6 is frighteningly customizable. In fact, one of the customizations is to control how the
interpretercompiler treats your finely crafted code. We’ll explore these various options and how they can be helpful or harmful- OPTION BASE
- OPTION EXPLICIT
- OPTION STRICT (warning: Avoid this one like the plague, it restricts your creative expression entirely!)
- OPTION COMPARE (Love this feature, totally change the way the entire app works with one keystroke, totally awesome!)</ul>
- OPTION STRICT (warning: Avoid this one like the plague, it restricts your creative expression entirely!)
- OPTION EXPLICIT
- Add-ons with Mouse Gesturing capabilities</ul>
- Using your left hand for dragging
- Rewriting C++ code in VB6 without having to understand pointers (not sure if we’ll get this one done by the end of April, that remains to be seen)</ul>
- Avoid writing any HTML and use advanced, high-performance VB6 string concatenation techniques</ul>
- Making the web seem more like regular Windows Programs
- On Error GoTo 0</ul>
- On Error Goto (label)