“I was able to solve that programming problem because I read this book!” This is the kind of book that gets comments like this. It is a book that will be best appreciated by professional VB.NET developers who are looking for fast and effective solutions to the difficulties encountered in coding application projects. The authors provide solutions to the usual problems raised in the VB.NET programming area, as well as complete, fully working code samples. The book does not offer recipes for all extant problems, but it helps the developer in general cases tangential to code development.
Well organized and clearly written, the book serves best as a reference book for .NET software developers during their first few years in programming. It is not a language textbook; code examples are explained in terms of language syntax and grammar, as well as .NET framework functionality.
The proposed solutions refer to a sequence of common development problems. They are presented as a suite of recipes, structured into chapters, each divided into sections. The sections begin with a requirement (a “problem”), followed by a proposed solution, explained in supporting text and code. The supplied source code snippets are a good opportunity for students to acquaint themselves with functional problems and solutions; the code is composed as standalone Visual Studio 2005 solutions. I found it very useful to follow the explanation guidelines, which describe how each particular code snippet operates. It is also beneficial to check the comments included in the source code, which give further details on analysis. The book also offers some text notes and tips, graphics, and diagrams. All of this is useful in understanding and fixing the information supplied in the process of solution design.
The recipe metaphor holds up well in the selection of interesting examples. The book is divided into 15 chapters. Chapters 1 and 3 present recipes about basic tasks performed in VB.NET, and focus on application development, metadata, and domains. Chapters 2 and 9, “Data Manipulation” and “Database Access,” address techniques that are provided by the .NET framework, and either simplify or improve common SQL server data manipulation tasks. Chapter 6, “XML Processing,” provides recipes for manipulating Extensible Markup Language (XML) data; “Threads, Processes and Synchronization” (chapter 4) covers multithreading, and includes pieces of code that handle asynchronous actions and thread synchronization. Chapter 10 covers networking and remoting. Chapters 5 and 8 discuss input/output (I/O) and multimedia tasks, while chapters 7 and 13 offer recipes for designing Windows interfaces. Chapter 11 discusses security problems, and includes recipes to encrypt or decrypt data, as well as analyze permissions for Windows accounts. Operating system-specific functionality is documented in chapter 12, including recipes for Windows 32 application programming interface (API) function calls, ActiveX controls, and component object model (COM) component use. An important task in designing solutions is Windows integration; the authors offer recipes in chapter 14 that allow users to create Windows services, to query and modify the registry, and to access runtime environment information. The final chapter discusses language integrated query (LINQ), a new feature of Visual Basic 2008.
The book ends with an appendix that lists the acronyms used in the book, and a reliable index; both are well done and useful.
The book fulfills its basic purpose as a reference book for Visual Basic programmers: it provides the modular code pieces that a developer needs to get the daily job done. It should be noted that the emphasis falls on solving proposed requirements, rather than on training.
I like the print format of the book as well. The pages have a graph paper print that makes the text easier to read, and the “Notes” and “Tips,” in bold font, are really well done, with helpful information.
No matter how much experience you have with Visual Basic, you will want this book close by, both as a standard reference guide and as a tool for troubleshooting and identifying programming problems. I feel confident giving this book a high rating because it completely fulfills its advertised claims. In addition, I have found it very useful in my own work.