Real Visual Basic: A Practical Approach to Enterprise Development in the Corporate World
Authors: Dan Petit
Venue:  (1999)

From the Book:According to Microsoft's Web site, there are more than three million Visual Basic users in the world. Although computer languages come and go, with this wide a user base, it is safe to say that VB is here to stay for quite some time. Many of these users are computer hobbyists and students who are drawn to VB for its inherent simplicity compared to other languages. The others are primarily professional developers who use VB to create enterprise solutions. Moreover, since Microsoft began aggressively pushing the language in the corporate world with version 4 and the release of Windows 95, VB has managed to root itself firmly in the realm of corporate development. Students find that practical corporate development differs greatly from the classic academic approaches in many regards. Whereas academic programming concentrates on thoroughness of process and sound programming technique, the almighty dollar drives corporate programming. When it comes to accountability, failure in the academic world can lead to a bad grade; in the corporate world, it can lead to financial collapse. The problem is that many corporate programmers get their start in academic circles or as hobbyists, working on interesting yet typically trivial examples. Their skills may be adequate for simple programs, but they get a serious reality check when, as professionals, they receive their first real VB project. All the rules change. Even seasoned professionals can find the rigors of corporate development challenging, however. Companies expect a lot from Visual Basic programmers and managers, yet companies rarely provide the training they need to do their jobs successfully. There is also a tendency tochoose VB as a tool for the wrong reasons and, consequently, end up expecting too much from the language. This book is intended to flush out common misconceptions and provide practical examples, pointing out those areas where companies make the biggest mistakes. While it may seem irreverent to criticize corporate practices in a book aimed at companies, the intention is to help corporations get the most out of Visual Basic as a tool and get the most bang for their buck. This is unlikely to take place without changing a few fundamental corporate beliefs and practices. What This Book Is About Real Visual Basic explores the important practical aspects of Visual Basic development in the corporate world. It concentrates on answering questions such as, "How do I do that?" and "Why does VB do that?" as they pertain to various VB technologies. More important, though, it provides down-to-earth advice, answering perhaps the most important question of all, "Should I do that?" Because what may make sense on paper may not make sense in practice, this book offers solutions to real-life problems in corporate development. In the end, the goal is to help make your Visual Basic projects more successful. Because many of the problems companies have with VB development stem from misunderstandings, Real Visual Basic addresses and dispels myths of corporate software development, particularly those that relate to Visual Basic. The goal is not to defend or attack Visual Basic (though I will do both), but rather to explore and expose the practical view. Many of the myths drive misguided practices. Many are general beliefs in the world of software development that are exacerbated by the inclusion of Visual Basic into the equation. More than anything else, this book is about my experiences as a developer in the corporate world. While I make a living using Microsoft products, I don't feel obligated to protect them, and I am more than willing to point out their faults. To this end, I provide numerous anecdotal discussions, mostly in sidebars, drawn from my experiences, both good and bad, working as a professional developer. My goal in presenting this information is to provide real-life examples of practices I know work and do not work on VB projects. I hope these sections will help prevent you from making the same mistakes I did and will make your life as a VB professional that much easier. This book covers a variety of topics, from database design to project management to hardcore VB coding (see Road Map section that follows). It may seem odd to include such a disparate array of topics, but this mixture represents the various aspects of software development that many VB developers and managers are exposed to in a corporate environment on a daily basis. They all contribute to the success or failure of VB projects. This Book's Audience This book is intended primarily for developers and development team leads, but there is also a substantial amount of material about project management and quality assurance that technical managers will find useful. Moreover, as the corporate managers of tomorrow, programmers will find the project management topics invaluable as well. I assume that those readers who are programmers know the language well and that managers and team leaders have experience with managing Visual Basic projects. The major code examples are clear but nontrivial, and the discussions of management issues assume some level of expertise. Although some of the specific code materials are aimed at a more advanced audience, much of the material will be accessible to most programmers. However, because even the basic aspects of project management and software design are challenging without a couple of years of experience, this is not a book for complete beginners. Software design, database modeling, and most of the other topics covered here are complex. To avoid repeating introductory materials that is presented better in other sources, Real Visual Basic assumes that the reader has a firm grasp of VB's capabilities as a language and defers to other sources when the material is either too introductory or too detailed to present here. Each chapter ends with an annotated "Further Reading" list, and a complete bibliography appears at the end of the book. What This Book Is Not About Although it covers a wide array of topics, there are nevertheless a number of subjects beyond the scope of this book. Many of the topics not covered relate to corporate development but have received adequate treatment elsewhere. Others, while still important, have little connection to the corporate world, and I have omitted them for the sake of cohesion. Bookstore shelves are absolutely covered with books about Internet development. It is one of the hottest topics around these days, and one that is best suited to individual treatment. Therefore, beyond a discussion of system architecture, no substantial Internet-related topics are explored. You will not learn how to make a browser; you will not learn about WebClasses, IIS, ASP, HTML, or XML; and you will not find out how to deploy Internet applications. If you are looking for a discussion of these topics, try another book. Windows API programming is also a complicated topic, again deserving of separate treatment. Windows API (Win32 API) discussions appear only in the context of solutions to specific problemsno overviews or guidelines are provided, and this book is in no way an API reference. Detailed discussions of other APIs (MAPI, TAPI, DirectX, ODBC, etc.) are omitted as well. Authors have devoted entire books to these topics, and a chapter or two here would not do them justice. Furthermore, you will see little in the way of COM internals. I'll present a few IUnknowns, an IDispatch or two, but mostly a whole lot of IDontCares. COM is far too vast a topic to include in detail here; so, instead, I concentrate on what makes COM important and practical to corporate VB programmers and spend very little time on what makes it tick under the hood. Finally, Microsoft Transaction Server (MTS) and Microsoft Message Queue (MSMQ) are relatively new technologies that are becoming popular in corporate settings. While you will see how you can leverage these tools in designing system architecture, I will not explore the mechanics of using them in any detail. Road Map to the Book's Contents This book consists of the following four parts: Part I, Development Prerequisites, introduces project management techniques and development lifecycles that form the structure of the remainder of the book. To help make your projects successful, the material in this section concentrates on avoiding common problems. Much of the material is not VB-specific, but rather focuses on Rapid Application Development (RAD) tools, of which VB is the most common, and general project misconceptions. This part also looks at requirements gathering and project documentationtwo areas that are both neglected and critical for VB projects. Part II, Designing Visual Basic Software, provides a detailed discussion of the ins and outs of designing VB software. This part starts from the outside, looking at architectural concerns, then moves on to creating user interfaces and designing software and databases. Part III, Implementation, turns to more code-oriented topics. It covers solid, general VB coding practices and advanced data access coding implementations before turning to some advanced VB coding topics, including creating ActiveX controls and controlling asynchronous program flow. Finally, this part takes a detailed look at how to debug your VB applications. Part IV, Testing, Reviewing, and Distributing Software, covers the loose ends, including quality assurance and the things that typically take place after coding. This part looks at various ways to test VB applications and to measure their quality. Then there is an in-depth discussion of creating and enforcing coding standards, from naming conventions to commenting practices. The final chapter addresses ways to distribute your finished software. On-line Materials Many of the code examples discussed in this book are much too long to include in their entirety. However, complete code examples, including Visual Basic project files, can be found on-line. In addition, this is where you can find any updates to this book, including errata and new material. The coding standards template mentioned in chapters 19 and 20 can be found here too. You will also find links to VB resources and tools, including Standards Master, plus author contact information. Acknowledgments First things first. Hi, Mom. At Addison Wesley Longman, numerous folks on both coasts contributed to this book. Many thanks to Gary Clarke, Rebecca Bence, Marilyn Rash, Eric Droukas, Tasha Schlake, Robin Bruce, Chanda Leary, and Kate Saliba. It was a pleasure to work with such a supportive team. I have been very fortunate to have the help of several technical reviewers who verified the book's technical accuracy, reviewed its flow, and critiqued my writing style. Their feedback was indispensable, and along the way they caught many blunders and goofs that otherwise might have found their way into the final version. Any remaining blunders and goofs are mine alone. Many thanks to Derek H. Lawless and John P. McCartan of Solutech, Inc.; Ben Baird; Joseph LeVasseur; and William R. Epp. My good friend Robert Patterson served as both a formal reviewer and an informal critic. Over the last year, we have had numerous discussions of the material in this book, and he consistently provided the honest and often blunt criticisms my work needed. He also holds the distinction of being the individual responsible for convincing me to become a professional developer. The world may never forgive him. And, finally, I would like to thank my wife, Dee, who somehow managed to put up with my head being buried in research materials and my computer for a year while I wrote this book. She's my strongest supporter and without her this book would not have been possible.