Visual Basic programming has long struggled with being the second- (or even third-) class citizen of the Microsoft software development world, getting less respect than their presumably more experienced and professional C# and C++ compatriots. It didn't help that a couple of years ago we found out that internally the Microsoft folks called us "Morts" - an imaginary persona that was supposed to represent the typical Visual Basic programmer who didn't really know what the computer was doing with all that GUI code banged out by day, but who just wanted to relax with a six pack at the bowling alley after hours and forget about it.
I was reminded of Mort when looking at the Composite UI Application Block - Hands On Labs, the latest offering from the Microsoft patterns & practices group. This set of training labs for the Composite UI Application Block (a pure Visual Basic programming solution in this download; equivalent C# versions are available) would frankly make the mythical Mort's head explode. A look at the labs and the help files will show you dependency injection and Model-View-Presenter and extensibility and use cases and test-driven development and inheritance and loose coupling and other concepts that you just won't find discussed down at the local bowling alley.
Whatever the Developer Division makes of their personas and stereotypes, the patterns & practices folks get it: we're not all Morts. There are high-end professional developers out there programming enterprise-class applications in Visual Basic, and they deserve the same level of respect (and code support) as people working in C# or C++.
Of course, there's a danger here too. The Composite UI Application Block is just one part of the Enterprise Library for .NET Framework 2.0, a whole collection of application blocks that tackle common needs in large applications: caching, logging, data access, security, cryptography, exception handling, and so on. There are thousands and thousands of lines of code here, and although it is well-tested and well-documented, it is not all that easy to understand (as the short list of concepts I mentioned a couple of paragraphs ago might indicate). I've seen some of these application blocks dropped into small applications where they have no business being. If all you need to do is store a single password, for example, you probably don't need an entire symmetric encryption layer with a complex configuration setup, for example.
To my mind the VB version of the Enterprise Library is a welcome experiment from Microsoft. At least a few people on that sprawling campus in Redmond recognize that 15 years of Visual Basic programming have produced some developers who are well beyond the Mort level, and who can and do work with the language at the highest levels. The question now becomes, can we make good use of these tools by applying them only where they make sense? Or will we fumble around, Mort-like, and produce horrid stews of wizard-driven spaghetti code that just happens to incorporate a few tested application blocks? Personally, I'm optimistic.
Mike Gunderloy is the Senior Technology Partner for Adaptive Strategy, a Washington State consulting firm. You can read more of Mike's work at his Larkware Web site, or contact him at MikeG1@larkfarm.com.