Object-oriented programming (OOP) is perhaps one of the most misused and abused buzz phrases in the industry today, and this is largely the fault of VB. What! Am I about to commit authorial suicide? Not really. I am not about to launch into a tirade about how VB is a toy language not worthy of notice by real computer science professionals who program exclusively in C++ under some Unix variant. Those discussions have long been rendered moot just by the sheer success of VB and its relatively wide acceptance in the workplace. Just about everywhere you look, there is VB being used, even if just for prototyping.
Yet, the widespread adoption of VB is the cause of the misunderstanding of the concepts of OOP. Many VB programmers think they are using OOP when they are really using COM. Despite extensive efforts to educate about and promote OOP, most VB programmers I have met do not use it, understand it, or know why they should use it. They see it as an arcane and complex way of doing what they are already doing using procedural code. One of the reasons for this is that until this version you could use some OOP techniques, but overall they were clunky and difficult to implement. Since most programmers tend to take the path of least resistance, they usually avoided OOP and used procedural techniques.
VB .NET is fully object oriented. You will no longer be able to pretend ignorance or hide behind VB 6's lack of OOP support. While it is possible to program in VB .NET using a non-OOP approach, it bends over backward to encourage the use of OOP techniques and design methodology. A full cost-benefit analysis of why OOP is the way to go is beyond the scope of this book. However, to really understand VB .NET and the way its tools and ADO .NET are implemented requires at least a cursory examination of OOP and how it is implemented in VB. Even if you never create a class and use only the built-in design tools, you are using OOP, so get ready to leave the world of procedural programming behind and jump right in and learn some of the terms and techniques of OOP.