DevCity.NET -
Book Review: Mastering Visual Basic 2005
Ged Mead

Ged Mead (XTab) is a Microsoft Visual Basic MVP who has been working on computer software and design for more than 25 years. His journey has taken him through many different facets of IT. These include training as a Systems Analyst, working in a mainframe software development environment, creating financial management systems and a short time spent on military laptop systems in the days when it took two strong men to carry a 'mobile' system.

Based in an idyllic lochside location in the West of Scotland, he is currently involved in an ever-widening range of VB.NET, WPF and Silverlight development projects. Now working in a consultancy environment, his passion however still remains helping students and professional developers to take advantage of the ever increasing range of sophisticated tools available to them.

Ged is a regular contributor to forums on vbCity and authors articles for DevCity. He is a moderator on VBCity and the MSDN Tech Forums and spends a lot of time answering technical questions there and in several other VB forum sites. Senior Editor for DevCity.NET, vbCity Developer Community Leader and Admin, and DevCity.NET Newsletter Editor. He has written and continues to tutor a number of free online courses for VB.NET developers.

by Ged Mead
Published on 9/19/2006


Sybex have published two versions of this book:  "Mastering Visual Basic 2005" by Evangelos Petroutsos and "Mastering Visual Basic 2005 Express Edition" by Evangelos Petroutsos and Acey J. Bunch.

   Ged Mead takes a look at what they offer .

Mastering Visual Basic 2005

  The earlier version of this book - "Mastering Visual Basic.NET" by Evangelos Petroutsos - was the very first VB.NET book I owned and currently sits in pole position in my (now much larger) .NET library.     It's a book I've reached for countless times over the past couple of years and so I was intrigued to know how this VB2005 version would compare to the original.

   As I dug into the book it soon became clear that this is very much an update of the original and not a "totally rewritten from the ground up" type of approach.   I have no problem with that; as I say I've found the original very useful many times.  If it ain't broke, don't fix it     I mention it only in passing for the benefit of those who do have the original book and who are maybe wondering if they should invest in the latest version.  There are of course new VB2005 related sections, but much of the rest will be familiar to them.

   I have always liked the way the book just jumps straight in and has you creating mini applications right from the start.  It's not everyone's ideal approach, but it works for me.     I find that it's one of those books I feel I can pick up when things are quiet and  read through a section at random, often finding a useful little nugget of code to try out or a technique to store away in the mind for later use.  (Or, to be realistic, to store away only to have one of those "Oh, heck, now where was it that I read the answer to this problem....?  " moments somewhere down the line).

  I don't want to give the impression that the book is haphazard, because it isn't.   It's just that the author doesn't shrink from using intermediate level techniques where they make for a more interesting example.  It is clearly structured and follows a logical order.   (I have often thought that it must be mind-blowingly daunting to sit down to try to map out a structure for a book that aims to cover a topic as massive as this !)        

 The publishers have classified the book with a User Level of "All Levels".    I think that it's much better suited to readers who have previous experience of either Classic VB or another language.   That's not to say that you can't go from zero to hero with this book if you have the aptitude; it's just that there's an underlying assumption that you'll grasp quite a lot of sometimes intermediate level topic fairly early on.   So if you like to be led gently by the hand in small steps then this might not be your best bet, but if you're prepared to strip off and jump straight into the deep end then I think you'll enjoy it and get value from it.

   The book is over 1400 pages long, the print font isn't large and the use of screenshots has been kept relatively low.  As a result, there is a lot of material in this book.  I'll list the major parts of the book, so you can see the flow of it:

Part 1:  GUI Design and Event Driven Programming

Part 2:  Building Rich Client Applications

Part 3:  Programming with Objects

Part 4:  Working with the .NET Framework

Part 5:  Drawing and Printing

Part 6:  Database Programming

Part 7:  Programming for the Web

Part 8:  Polishing Your Applications

   If you want to see the complete list of contents, this link will take you to this page on the Wiley site where you can  see the full monty.  

   When you get to a book of these proportions, I always think that the quality of the Index is as important as the quality of the content.   Although I've never yet found an Index to compare to the totally comprehensive one in  Deitel and Deitel's VB6: How To Program book, this one is fine.  It's comprehensive and logical .  

  You can see for yourself here.

   I usually spot-check the Index when I take my first look at a new book (back to that "Now where did I read that fix?" situation).  So I thought that the Indexer had missed a couple of key areas when I looked for "Imports" and "Namespace".   However, going through the book with a medium size toothcomb I couldn't actually find a place where these are introduced and explained.  They're certainly used in the samples in the book and Imports statements are included  throughout the downloadable samples.   Of course in a 1400 page book maybe they are tucked away in there somewhere and both the Indexer and I overlooked them.   If they have been left out of the content then, especially as both of them are  new concepts for VB Classic Upgraders, I think I'd recommend that they are included in the next edition.

   Downloadable samples got a mention a moment ago.   There are plenty of these to choose from.   Many of those that I tried out worked well and many include a reasonable amount of commenting to complement the explanations in the book itself.   The author always tries to create interesting, often non-trivial examples that be used to learn with and then reused in real world situations later.    

   I did have problems with some of the downloaded samples, however.   When I tried to run them I received an error message as shown:

   It may of course just be something to do with a setting on my personal system.    In any event,  in those samples where the problem occurred it was quickly fixed by adding a Reference to the Microsoft.VisualBasic.Compatibility namespace into the project and rebuilding it.

      It's a small point, but I'll mention it anyway.   Congratulations to the publishers for finally coming up with a way of creating a book of this size that really does lay flat when it is opened on the desk.  Better yet, one that stays flat without you having to jam your elbow into the gap between the pages -  trying to type code with your arm twisted round  like an amateur contortionist !

    So, in summary, this is an interesting and well written book which will be useful to Classic VB upgraders and to VB.NET developers who don't have the earlier edition of the book.  If you want to view the authoring style, the whole of Chapter 1 is viewable here.

     In his Introduction the author says:

"This book isn't about the hottest features of the language; it's about solid programming techniques and practical examples.   Once you master the basics of programming Windows applications with Visual Basic 2005 and you feel comfortable with the more advanced examples of the book, you will find it easy to catch up with the topics* not discussed in this book."

"One of my goals in writing this book was to exhaust the topics I've chosen to discuss and present all the information you need to do something practical."

    There's no doubt in my mind that he has succeeded in doing that.  



   *  which might have a bearing on my comments about the Imports statement and namespaces not being described, of course.



Mastering VB2005 Express Edition

   If you currently have the free version of Visual Basic 2005, that is the Express Edition, then you may be more interested in the companion book, co-written by Evangelos Petroutsos and Acey J. Bunch.

   Putting these two books side by side, they are both the same physical size so at first glance you might think that both are 1300+ plus mammoths.   Actually that's not so.   The slimmed down version of VB2005, the Express Edition,  also has a slimmed down version of the book which weighs in at  around 700 pages. 

   (It just goes to show where we have got to with computer books, doesn't it,  when I find myself describing a 700 page book as "slimmed down"!)

     This version of the book overall  takes a more  gentle approach .  Although it too is classified as suitable for All Levels of developers I think it will certainly be less daunting to newcomers than the  version of the book reviewed on the previous page.     And very sensibly so.  The Express Edition has been put out there to attract newcomers, students and hobbyists, as well as Classic VBers still dragging their heels over making the change to .NET.   (Read: "still kicking and screaming I won't! I won't! I won't - You can't make me!").

   So, to take a random example, in the full version book the author says "The code of our first application isn't very robust" and then goes straight on to suggest improvements.   With the possibly less experienced reader in mind, the Express Edition version reads: "The code of your first application isn't very robust (meaning that it doesn't really do a whole lot and it doesn't respond well to different kinds of input)".  Then goes on to suggest the improvements.

   And this approach is fairly standard throughout the book   The majority of the content of the Express Edition book has been taken from the full version book, but with additional explanations and clarification where needed.     Makes sense to me, no point in reinventing the wheel if good material is already there to use.

  So, what does this book cover?  Here is the breakdown of the main Parts:

Part 1:  Getting Started with Visual Basic 2005 Express Edition

Part 2: Understanding the Visual Basic Language

Part 3: Using Windows Controls

Part 4:  Understanding Object Oriented Programming

Part 5:  Common Programming Tasks

Part 6:  Programming Databases

   For a full listing by chapters, check out this page on the Wiley Site for a pdf version of the contents list.

   As I mentioned previously, most of the topics in this book are inherited from  the full version book, but there are some exceptions.   This book for example includes a Chapter on Automating MS Office Applications which works through several examples with explanations of how to program against MS Word and MS Excel  in VB2005.   There isn't a corresponding chapter in the full version (although it is covered in the earlier VB.NET 2002/2003 book).    There are some very useful tips in this chapter, which shows the reader how to harness some of the Office Tools seamlessly into VB2005 applications.   These examples include spell checking via MSWord and parsing mathematical expressions courtesy of MS Excel.

  Also, as you would definitely expect, some topics don't appear at all in this book  - ASP.NET web programming, for example, because VB2005 Express Edition targets Windows Forms applications, leaving web development to Visual Web Developer 2005 Express Edition.  Some of the more esoteric subjects, Interfaces, Delegates, Encryption, for example didn't make the cut.  And again, with the target audience in mind this makes sense.

  Where an element of the revamped VB2005 is of particular assistance to beginners, this book gives it a good amount of coverage.   The My object, for example, gets several pages of explanation and examples which will ease .NET Newbies along the learning curve (which is of course exactly why it was added by the Microsoft development team) .   'My'  gets a brief mention early in the other book, but quickly followed by the author's warning that 'My' isn't a substitute for learning the language and the Framework.  I think you'll be getting the picture by now:   The Express Edition book  fairly gently coaxes the reader into understanding the essential starter topics of VB.NET;  the full version book grabs each new topic by the throat and doesn't let go until it's squeezed every ounce of usefulness out of it

  The book comes with a battery of downloadable code demonstration projects   You can get them  here.     In a perfect example of Sod's Law coming into play, the very first sample I tried as a test crashed out.   As a reasonably experienced developer I could see from a quick investigation what the problem was - a FileStream trying to access a non-existent folder.   But it did make me wonder how a complete newcomer would react when faced with this kind of problem.   No structured exception handling or If File.Exists check in the code sample to deal with it, no commenting to remind them to check and I couldn't find any additional explanation in the book itself.  (If it is there and I just haven't spotted it then my apologies to the authors).  

  I had a similar problem with the next sample, (which was a huge coincidence because this time it was a totally different chapter topic).     It's easy to criticise, I know, ( "Criticism is easier than Craftsmanship") but it is these kind of frustrations for beginners that make them lose heart, give up or write negative  comments in amazon reviews.  When you think of the months of work that goes into writing a book like this, it does seem a shame if it's let down by samples that don't run out of the box.

   Anyway, the fix isn't difficult.  As far as I could tell, all the samples which need to access files assume that the file will be saved in the C:\Temp folder.   So I suppose that - so long as you have read this review before buying the book - you won't find that those samples will cause you any problem.

   As with the other version of the book, you can preview the content of Chapter 1 to see if the authoring style is the one for you.  The link to the page on the  Wiley site can be found here.

   This is a perfectly good book whose written content will help  VB2005 beginners get some way down the road to .NET understanding.





   Mastering Visual Basic 2005 by Evangelos Petroutsos

   As an owner and regular user of his previous book in this series, I was pleased to see that the Evangelos Petroutsos has continued in the same vein with this latest edition.    The author doesn't pussyfoot round topics and he doesn't shirk from wading into difficult territory.  

     If you have Classic VB experience or have worked with earlier VB.NET versions and like to roll your sleeves up and  jump straight in, then I am sure you will  find this book very much to your liking.  

    It makes for an interesting and useful book on VB2005 that works well for me. 

Mastering Visual Basic 2005 Express Edition by Evangelos Petroutsos and Acey J. Bunch

   Aimed much more at newcomers, this version mainly uses  material from the above  book, but with some explanations amplified where necessary .      The approach is more gentle  and this book should be useful to its target audience.  

   I would like to see something in the Errata section on the publishers site to help beginners who find themselves floored by  the problem with the downloadable code samples and hope this is something they will take on board.

     My overall feeling is that if you have even a little previous experience in Classic VB or another language then I would go for the "full version" edition above.   In my opinion, you'll get more long term value out of your investment (although the Express Edition book is cheaper).  

   But if you are a complete newcomer to Visual Basic then this book is as good as many others I have seen and  better than some. It will help you get started with VB.NET unless your learning style requires a very detailed,  step by step approach .