Author: Alessandro Del Sole
Publisher: Sams, 2013
Audience: Intermediate .NET developers
Reviewed by: Mike James
There are many books on Visual Basic 2012. Should you select this one?
This is a very difficult book to review because it isn't very bad and it isn't very good - it's just a book about Visual Basic 2012.
It goes over all of the ground you would expect a book of this size (huge) to cover but it doesn't do it any better than any other book and rarely, if ever, adds anything at all to the documentation.
The accounts are all straightforward and never point out anything that might be unusual or cause you to misunderstand, make a mistake or use a feature in the wrong way. It also doesn't really make a case for anything much - it simply presents the facts.
The book is divided into ten parts and lots and lots of chapters. It starts off with an overview including Visual Studio 2012. Then it moves on to consider object-oriented programming and working with objects.
The presentation isn't particularly logical. For example, just after introducing types we are treated to a discussion of reference and value types and an in depth look at making shallow or deep copies - all this before we have even got to a think about objects and classes in much detail because this is a topic for part II.
The lack of a logical progression means that there are a lot of forward references and this make the book not suitable for the complete beginner. You need to know how to program in some other language to follow the narrative. It is more like an encyclopedic guide to the language for programmers who really do know how to program in one language or another.
Part 3 is titled Advanced VB Language Features - and covers manipulating files and streams and namespaces etc. Part 4 is on Data Access and this means files and databases. The topics covered are basic file handling and ADO .NET and LINQ. Notice that this is only a third of the way through the book and we haven't yet dealt with every aspect of the core language.
Part 5 is an introduction to building Windows applications - surely this should have gone before data access - and Part 6 deals with web applications. The web applications covered are a little strange we have ASP.NET classic web forms with no mention of MVC. We also have chapters on Silverlight and Windows Phone 7.5. You can justify classic ASP.NET and even Silverlight but Windows Phone 7.5 is a very dead topic having been replaced by the incompatible Windows Phone 8.
Part 7 is on networking in general and WCF in particular. Part 8 returns to more central topics of advanced VB use and deals with threading, reflection etc. Finally we have a section on deployment anda section on using the Visual Studio IDE which really should be at the start of the book.
You get the idea - this book isn't particularly well thought out overall, even if some of the sections are OK. There are lots of tables that take up space and don't add much, which would be fine if the text did add much. The descriptions are often cumbersome, even if they do make sense on second or third reading. The problem is that the text hasn't been sub-edited to remove the author's tiny errors of English. For example, of generics - "can adapt their behavior to different kinds of objects without the need of defining a separate version of the type". Most native English speakers would use "need to define a separate" in place of "need of". Another example a paragraph starts "At this point, we can begin making some considerations".
This is a subtle problem and if you aren't sensitive to it you will wonder what the fuss is about. I don't like mentioning linguistic problems of this sort - after all I don't speak even a fragment of Italian, but then I also don't attempt to write a book using it. All I can say is that it is never so bad as to change the meaning but it often doesn't help in making it easy to understand. The fault isn't with the author the editorial team at SAMS should have ironed out the problems in this second edition (the first was on Visual Basic 2010).
Overall this book has to be regarded as not really achieving what it set out to do, mainly because the author never gives the reader an idea that there is a bigger picture - it's just all detail. There are better books on Visual Basic and so there seems little reason to buy this one. With Visual Studio 2013 not far in the future this book is partly out of date already but the real omission is anything to do with Windows 8 let alone 8.1. If you want a book that covers the technology that preceded Windows 8 i.e. .NET, Silverlight and classic ASP.NET forms then you might want to by this huge brick of a book as some sort of reference - searching the web is probably going to be just as effective and much lighter.