views:

165

answers:

2

C# in Depth (http://csharpindepth.com/) is an excellent book aimed at experienced .NET developers, however it's only for C-Sharpers. Anything like that available for VB.NET folks?

+5  A: 

No, there's no such book that goes to the same depths and because of C# in depth being totally csharpish with many peculiarities that do not apply to vb.net, I understand the wish for a counterpart for vb.net.

The problem lies, perhaps, in the audience and that VB is not openly standardized. Traditionally, VB programmers were not so interested in depth as that prevents speed of development. Ease of use and hiding details are important factors for VB. If depth was needed, they moved to C++ or later, C#, apart from some people that went along with Dan Appleman's bags of tricks.

That said, there are a few advanced books. VB has different problems than C#, for instance, it's less likely that VB programmers are excellent OO programmers (no offense meant). For them, this book, Object Oriented Programming with Visual Basic.NET, or this equally named alternative, might just fit. After that, the logical step is design patterns, which are covered in this excellent book "Professional Design Patterns in VB .NET".

But none of these take the same path as "C# In Depth", which really takes the core language itself as its starting and ending point. Instead, these books focus on good software design, but don't take the language to its limits (resulting unfortunately in very few people really understanding what a typical language statement does in VB).

EDIT: While I haven't read it, someone recommended me this book which may be closer to what you're after. It's five years old but still has enough value: it goes into sufficient depth to make you more productive and it helps you understand the why behind certain design features. It also doesn't forget that many VB.NET programmers originate from VB6 and helps them to regain their strength: Visual Basic 2005: A Developers Notebook.

Abel
+1 For Dan Appleman's bag 'o tricks - that brings back memories :)
chibacity
"with many peculiarities that do not apply to vb.net" to be fair; vb.net simply has it's **own** peculiarities... ;p
Marc Gravell
Yeah, it almost seems that at the time there was a clearer line between the "advanced" VB users and the basic VB users. Also, I was tempted to include this "in depth" oldy but goldy (slightly OT): http://www.xbeat.net/vbspeed/
Abel
@Marc Gravell: fair enough and indeed. And sometimes very many of them (`Object` notwithstanding). `IRecordInfo` anybody? ;)
Abel
@Abel Yep, VBSpeed is cool. It would be on topic in this question, you could post about it here :) http://stackoverflow.com/questions/232864/really-useful-vb6-source-code
MarkJ
Some of the best programmers chose VB6 for Windows development because it was the most efficient way to get features implemented. As you've said it was possible to dive into C++ for more performance where necessary. For example Joel did this with FogCreek (it's one of the first articles that made me interested in his blog) Favourite quote: "The worst part about coding in VB is that people think you're not cool because your code doesn't have {'s and }'s. I can live with the shame if it means I'm more productive" http://www.joelonsoftware.com/articles/fog0000000006.html
MarkJ
I can't forgive them for adding something like XML literals to the core language. What if JSON really picks up? Now your stuck with useless language bloat.
ChaosPandion
@MarkJ - Despite what people say about VB6, it really deserves a nice section in the history of computing technology.
ChaosPandion
+1  A: 

There's no direct equivalent. How can there be until Skeet delves deep into VB.Net and writes a book? :) And it sounds like he won't

Francesco Balena's Programming Microsoft Visual Basic 2005: The Language is a good book. It covers the VB.Net language, not the .Net framework.

  • Unfortunately there hasn't been a new edition since 2006, probably because the author is now heavily involved in VB Migration tools.
  • The book is aimed at "both new and experienced developers", so it is longer than C# in depth, and I imagine it doesn't get as deep. Still worth reading for experienced developers IMHO, although probably if you already know a .Net language parts of it will be tedious.
MarkJ