I can't be the only VB programmer who has been dragged, kicking and screaming, into the OO world - as I've followed VB through its update history. But in the .NET world OO is everything, including lots of concepts that I've used but never really got round to reading up on and learning from the ground up. Things like inheritance, polymorphism and delegates are obvious examples. And then there's the .NET-specific stuff, like boxing, value-types and reference-types, method over-riding and dynamic binding. OK, so you can get away with knowing "just enough to get by", but this book really does make it easy to catch up on the concepts and terminology - even if you are fairly new to programming. I found it extremely easy to read, sharp and to the point, and even has those nice disguised touches of humor. I can't figure out yet why the FetchSlippers method in my implementation of the SuperDog class still doesn't work!
My advice: if you can't explain straight out to someone what boxing or polymorphism means now, you'll be a better programmer for reading this book. Well done Ted and Joe...
As I have been a follower of Ted Pattison for quite some time, I was very excited about getting the chance to peruse his new book. While I am not hitting the stars over this work, it is a very solid book on Visual Basic .NET, which ranks it right down the middle for me. I will start with the negative points first.As I read through the first few chapters, there are some pieces that are misleading. For example, when talking about the command line compiler, the author states "Interestinglyk, this utility [vbc.exe] ships with the .NET Framework itself -- neither Visual Studio .NET nor the .NET Framework SDK is needed to compile and run managed code written in Visual Basic .NET." While this is true, it does not convey that the user will either have to get Windows 2003 (or Longhorn, when released), use Windows Update or download the ".NET Redistributable" to have the .NET Framework installed. He also mentions that you will need a "server-like operating system," which means a system based on the Windows NT kernel. As he uses Windows 2000 and XP as examples of "server-like" OSs, I only give a small deduction here. OK, perhaps I am nitpicking a bit.
More importantly is the brushing over of some key topics. For example, attributes are mentioned on pages 10 and 11. While the material gives a good background, a more thorough treatise should be included if attributes are going to be mentioned at all.
Now that I have the bad news out of the way (which many of you may not care about), the good news is the theory throughout the rest of this book is very well written and formed.
For Visual Basic 6 developers, the "Fundamental Changes" chapter is a necessity as is the book on the Common Type System. These two chapters form a heavy foundation for understanding application development in Visual Basic .NET.
Following this foundation, the reader will learn about Object Oriented Programming, with chapters on classes, inheritance and abstraction.
In the Delegates chapter, I wish the author would have stayed away from the trip down memory lane (C++ pointers) as it is likely to fall on deaf ears on all but the Trivial Pursuit buffs. It does a nice job of setting up the following chapter on Events, however, so the chapter earns high marks overall.
There are chapters on interop and deployment, which are very useful to using .NET in the real world. There is also a chapter on working with assemblies, an advanced topic.
This book is designed more for the reader who wants to understand the workings of .NET. It is not a coders book (get one of the cookbooks for quick solutions). Most of the code in the book is on the theory, rather than problem solving, level. As such, it is a book to truly sit down and learn .NET, rather than get a few tricks to help you at your job (or show off for a new job?). In the theory department, the book is excellent, despite my nitpicking at some of the introductory topics.