Do take a look at Eric Sink’s take on “The Coding Horror’s” dismissal of Charles Petzold’s book on WPF. The basic premise of Jeff Atwood’s comments seemed to be that a snazzy page layout was an essential attribute of a good book on a given subject. Eric Sink is a much better writer than me so I will leave the analysis to him but I would like to support the point about “deep understanding”. I wrote about the potential dangers of developers assuming that they understood a technology on the basis of having read a single book – probably with a title like “Learn X in 21 days”. Great for an introduction but if you are going to start designing a new piece of software on the basis of such superficial knowledge then you had better be sure that it’s a prototype. Sometimes you are lucky and there will be a book written but someone as thorough and knowledgeable as Charles Petzold – and even luckier if they can write as well as he can. My venerable copy of his “Programming Windows” sits in pride of place on my office bookshelf.
Plumbing the depths of ASP.NET 2.0
It has been in pursuit of a deeper understanding of the ASP.NET 2/3 environment that I have been working my way through Stephen Walther’s “ASP.NET 2.0 Unleashed”. I am still doing lots of ASP.NET 1.1 work but I need to start in, very soon, on the architecture for an ASP.NET 2/3 application and I needed to further my understanding of the low level enhancements available in the current release – only two years late you might think. Let me say straight away that this is an excellent book and I am learning a lot – I can also say that this book covers the ground from the simplest start point to some very advanced features of ASP.NET – the stuff I needed to review and digest – not bad for a single volume – although this is a pretty hefty book.
So, overall I am going to give this book top marks – even if I would shoot anyone working for me who wrote code in it’s style.
When I have finished this book it will be time to read Charles Petzold’s on WPF because – well see below:
More on VB and Silverlight
There is a great post on the VB Team blog
This one starts (more or less) with “Let me get this straight… You want to write a web plug-in VB.NET… that doesn’t require the full .NET framework to be installed… and runs on the Mac… and Firefox … but supports the full VB.NET language?”.
And the goes on to list the elements of VB being supported on the Silverlight platform.
- Late Binding: One of the most definitive features of the VB language, I find late binding to be especially useful in writing Silverlight code-behind.
- Conversions: Implicit and explicit conversion operators are available—Ctype, CStr, etc.
- Linq: Currently, Linq over objects is supported
- String utilities: Len(), InStr(), Mid(), UCase(), etc
- VB Collection: Most folks either love it or hate it. A subset of generic collections is also supported. (Non-generic collections are considered obsolete for Silverlight.)
- Dictionary(Of Key, Value)
- List(Of T)
- ArrayList (Obsolete)
- BitArray (Obsolete)
- Hashtable (Obsolete)
- Queue (Obsolete)
- SortedList (Obsolete)
- Stack (Obsolete)
- Math utilities: Rnd(), Random()
- Information utilities: Things like IsNumeric(), IsDate(), UBound(), LBound(), and so on
- Date utilities: Now(), TimeOfDay(), Year(), etc
- Constants: vbCrLf, vbTab, etc. Some of the more obscure constants have been removed, but the core set is included.
- All core VB Language Constructs: Type Inference, anonymous delegates, Handles
There is also a complete list of the downloads needed to develop and run a Silverlight app using VB as your language of choice. It is still a bit complicated to set up but well worth it if you have the time and a spare development machine.