Pro Silverlight 4 In VB
jddp writes "MacDonald is a programmer's programmer, and Pro Silverlight 4 in VB is a model of what a programmer's guide should be. He explains a mass of technical information in considerable detail without losing the big-picture. His clear and concise exposition of concepts and functionality is never confusing or needlessly repetitive. The book's organization is logical, yet the chapters can be read in isolation, as the need or interest arises." Keep reading for the rest of jddp's review.
Pro Silverlight 4 in VB
author
Matthew MacDonald
pages
896
publisher
Apress
rating
9/10
reviewer
jddp
ISBN
1430235489
summary
An invaluable reference for professional developers wanting to discover the new features of Silverlight
One thing this book doesn't provide is an overview of the subject for a novice trying to get the big-picture. After the briefest of introductions (10 pages), the author leaps right into building applications. Nor does it provide every technical detail you will need to complete your application. (That's why we have the web). However, if you want a book that can take you from having a rough map of the territory to being a self-sufficient Silverlight developer, I highly recommend this one.
Starting from the fundamentals of Silverlight such as XAML, Layout and Elements, McDonald rarely puts a step wrong as he winds through the technical details, progressing to specific functional areas such as such as Animation, Data Binding and Web services. Each chapter provides a brief overview of the functionality addressed before stepping through the programming details. His code examples are concise, but also convey the significance and use of the features very clearly. The examples do not sprawl across pages and pages, as in weaker tutorials, but they do build upon one another when necessary. Working code implementing the examples from the text is available at MacDonald's personal site for anyone to download — but apparently only in C# (as far as I could see. The VB version may be coming later, just as the VB book lagged the C# version). Due to the intelligent choice, structuring and clear implementation of his examples, I have found them a useful jumping-off point for "real-life" applications on several occasions. The author has gone beyond the scope of the book in at least one case, implemented an "advanced" capability (support for large file up/downloads via a Web Service) that I was specifically interested in.
As mentioned, the book does not contain an extensive technology overview and this is reflected by the absence of many of the buzzwords associated with Silverlight from the index. You will find no mention of RIA services. MVVM is only touched upon in the context of the new SL 4 support for the Command pattern. (Even so, his brief explanation is a great example of MacDonald's lucid and economical expository style. You could trawl the web for a long time without finding such a straightforward explanation.) However, while MacDonald does not attempt to convey any over-arching architectural vision, he is perfectly capable of clarifying some abstract design concepts. In Chapter 4 of the book he is already tackling the intimidating-sounding topics of Dependency Properties, Attached Properties and Routed Events. By the time you've read a few pages you're wondering what all the fuss was about. After less than six pages, MacDonald is working through a meaningful application of attached properties (a custom layout panel). Most of the chapter is devoted a detailed explanation and illustration of Mouse and Keyboard event handling, and to the new Commanding support in SL 4.
A final caveat: This is not a book for someone wanting to catch up on what's new in Silverlight 4. The information is there, but it is dispersed among the relevant sections of the old book, and there is no helpful index. Contrary to the impression given by the back-cover, the very occasional "What's New" boxes don't help much in homing in on new features. In fact, the organization of the material and most of the content is unchanged from the SL 3 edition, so I wouldn't buy this if you already have that book.
While reading this book, I sometimes wished for a wider view: discussions of the merits of different architectures; comparisons to design patterns used in other technologies, and so forth. This book will not be much help in defining the architecture for your next mega-app. This is a book to seize on when you need to get a handle on programming specific Silverlight features fast. You won't learn about every possible shortcut or dead-end on the trail, but you will never have to wonder where the heck you are.
While this book it isn't all things to all developers, it is hard to overstate its consistent intelligence and clarity, or its sheer usefulness (to programmers). Programmers just aren't supposed to be so articulate – are they?
You can purchase Pro Silverlight 4 in VB from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Starting from the fundamentals of Silverlight such as XAML, Layout and Elements, McDonald rarely puts a step wrong as he winds through the technical details, progressing to specific functional areas such as such as Animation, Data Binding and Web services. Each chapter provides a brief overview of the functionality addressed before stepping through the programming details. His code examples are concise, but also convey the significance and use of the features very clearly. The examples do not sprawl across pages and pages, as in weaker tutorials, but they do build upon one another when necessary. Working code implementing the examples from the text is available at MacDonald's personal site for anyone to download — but apparently only in C# (as far as I could see. The VB version may be coming later, just as the VB book lagged the C# version). Due to the intelligent choice, structuring and clear implementation of his examples, I have found them a useful jumping-off point for "real-life" applications on several occasions. The author has gone beyond the scope of the book in at least one case, implemented an "advanced" capability (support for large file up/downloads via a Web Service) that I was specifically interested in.
As mentioned, the book does not contain an extensive technology overview and this is reflected by the absence of many of the buzzwords associated with Silverlight from the index. You will find no mention of RIA services. MVVM is only touched upon in the context of the new SL 4 support for the Command pattern. (Even so, his brief explanation is a great example of MacDonald's lucid and economical expository style. You could trawl the web for a long time without finding such a straightforward explanation.) However, while MacDonald does not attempt to convey any over-arching architectural vision, he is perfectly capable of clarifying some abstract design concepts. In Chapter 4 of the book he is already tackling the intimidating-sounding topics of Dependency Properties, Attached Properties and Routed Events. By the time you've read a few pages you're wondering what all the fuss was about. After less than six pages, MacDonald is working through a meaningful application of attached properties (a custom layout panel). Most of the chapter is devoted a detailed explanation and illustration of Mouse and Keyboard event handling, and to the new Commanding support in SL 4.
A final caveat: This is not a book for someone wanting to catch up on what's new in Silverlight 4. The information is there, but it is dispersed among the relevant sections of the old book, and there is no helpful index. Contrary to the impression given by the back-cover, the very occasional "What's New" boxes don't help much in homing in on new features. In fact, the organization of the material and most of the content is unchanged from the SL 3 edition, so I wouldn't buy this if you already have that book.
While reading this book, I sometimes wished for a wider view: discussions of the merits of different architectures; comparisons to design patterns used in other technologies, and so forth. This book will not be much help in defining the architecture for your next mega-app. This is a book to seize on when you need to get a handle on programming specific Silverlight features fast. You won't learn about every possible shortcut or dead-end on the trail, but you will never have to wonder where the heck you are.
While this book it isn't all things to all developers, it is hard to overstate its consistent intelligence and clarity, or its sheer usefulness (to programmers). Programmers just aren't supposed to be so articulate – are they?
You can purchase Pro Silverlight 4 in VB from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
pfpfpfpfpfpsdpfspdfpasfoawiertkgwerchgcsdhs vdghs ch
sdfghsdf
No, thats Perl. This is a book about "silverlight"
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
I dunno, I think Virginia Beach is a pretty nice place.
Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
Looked like JUSTIF to me, but to be honest, both of those languages look like gibberish to me.
Saying Android is a family of phones is akin to saying Linux is a family of PCs.
This entire story is a troll.
is like a gourmand's gourmand eating at mcdonald's.
Do you even lift?
These aren't the 'roids you're looking for.
Yet I still see job openings for VB developers.
MacDonald is a programmer's programmer,
I thought it was the beginning of an SAT question.
Home of The Suki Series
While I don't know if this review is a "paid" review or not, I do know (from personal experience) that a lot of them are. Could /. consider adding a rule or guideline requesting the reviewer to state if he/she was given the book for free or otherwise compensated for the review?
I'm a big Microsoft-hater, but I don't really see how Silverlight is any worse than Flash, so I can't hate on it too much. VB, however, is another story.
I don't see anything wrong with that. A lot of professional software engineers use it.
Latest version of VB(VB.NET) isn't as bad is it once was(VB6). I still prefer languages that have a C-style to them, but I can put up with VB.NET if I have to.
Oh yeah, good 'ol Me.dies()
Did someone actually just mention /. and editorial guidelines in the same sentence?
This is about as flamebait as they get... dropping an review on VB, the most Microsoft of Microsoft languages, in this place is like dropping off your son to sell lemonade at a NAMBLA convention.
if slashdot wanted a review of a retarded language book, "php for complete drooling dumbasses" would have been better.
My only defense of VB in general is this.... if you are programming for Windows and the .NET framework anyway, then its tomato/tomato (pronounce the latter like a french douche).
I write for and maintain several enterprise level apps in VB, and others in C#. It does not matter one damn bit which you use, they are equivalent in every way. Anything you can do in C#, I can do in VB... and C#. People that bash one over the other usually cant code in either, or very well in any language.
What is so horrible about Microsoft?
If you call Excel macros "professional software" then yes. How many of Microsoft's commercial applications are written in VB?
I've abandoned my search for truth; now I'm just looking for some useful delusions.
It doesn't mean that this book is useless. I know Microsoft shops that have developers who prefer VB.NET over C#. I could see this skill could come in handy for someone in that position.
I think you're confusing VB1-6 with VB.Net. In it's current iteration, it's a fairly nice OO language.
I don't use it because I'm a fan of curly brackets, but your writing it off suggests not having used or seen VB.Net in action.
Saying Android is a family of phones is akin to saying Linux is a family of PCs.
Another stupid AC who thinks everyone buys a Mac because it's "trendy". Believe me, it has nothing to do with it. If they hadn't switched to a Unix core (or a BeOS core) I wouldn't use it. The classic Mac OS wasn't much better than Windows 98SE.
Plus, I couldn't afford a Prius to begin with, not to mention that most new diesel Volkswagen models have better kilometerage than a Prius. And they cost less.
And forget about San Francisco. Earthquakes.
There's no better language than the one you know.
*sigh*
VB is a programming language that's definitely in use. Why the rush to write it off?
I hate Perl and Lisp, but I don't drag them through the mud. They're tools people use to accomplish tasks like any other language.
Or closer to home, I hate Macs (I have 2, and only the Mac Mini is in use, and that's just so I can compile iDevice apps... talk about proprietary) but they're a tool people use. So why drag them through the mud?
And people will install it if they want to use the app written in Silverlight. Or they'll find an alternative and use it. Platform agnosticism... choice is good.
Either way, your post is a troll.
Saying Android is a family of phones is akin to saying Linux is a family of PCs.
I've never called Excel macros professional software, although I don't see anything stopping anyone from making professional software using Excel macros, do you?
And for the question, I don't know. How is that important?
except this book is about VB.Net BASIC != VB.Net
In the .Net world, it's not quite that straight forward. For instance, Visual Studio 2010 is almost fully a .Net application (some parts are legacy C++ libraries/controls that just didn't get converted before launch). But being .Net just means that it was compiled to the .Net intermediate language. It could have been written in VB.Net, C#, J#, F#, PHP.Net, or any of the other high level .Net languages.
That's the awesome part of .Net. You can write in what ever language you are familiar with, against the same framework that everyone else uses. The majority of difference between C# and VB at this point are due to there having been 2 teams at MS working on the VB.Net and C# editors for Visual Studio. Now, those teams have been merged. VB.Net has single line parameters, C# has XML Literals, and they are continuing to become more and more similar functionally speaking. The only big difference left now is multi-line lambdas and that C# is case sensitive.
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
except this book is about VB.Net BASIC != VB.Net
Guilty by association
You do realise that VB.Net != VB, correct?
Saying VB.Net is dead is akin to saying that C# is dead. Which makes virtually no sense.
So long as Microsoft continues developing the .Net framework, there will be a VB.Net and C#, along with all the other .Net languages.
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
Now, now. They aren't all like that. Take me for instance. I program in VB.NET.
Granted, the only reason I do is because when I took my current job everything was already done in VB.NET.
One of my goals for this year is to rewrite the system in C# (learning about MVC for this too).
Technoli
Protected Overrides Sub Finalize()
MyBase.Finalize()
End Sub
That's still a matter of opinion. While I agree with you about C# looks much better, but I know people who thinks VB.NET is easier to read and write. It's all up to the developer.
I don't think I quite understand. No, I'm not uninstalling Flash either, because it's needed for far too many things (most notably YouTube). I'd be happy to replace it with Gnash or other FOSS alternative if it worked as well.
But I don't really see how Silverlight makes the situation any worse. Of course, SL doesn't have nearly as much penetration as Flash, so it's not like there's a bunch of sites where I require it.
What is so horrible about Microsoft?
To start, the company's name is soooo lame. You can figure out the guys that started this weren't really into originality. I mean, I know this was the 70's and all, but c'mon : Micro. Soft. Microsoft. That's so duh, I dont know what else to say.
-- Home is where you eat your heart out.
SL had the potential to be better than Flash.
But Microsoft is pulling the same shit Adobe is with Flash. Claiming it's "open" but gaming the spec release schedule in such a manner that it is impossible for anything but their implementation to actually work - By the time someone has implemented to the open spec, MS and Adobe have released new versions and content providers are using those new versions.
For example, there was hope that Monolight combined with Netflix transitioning to Silverlight would bring Netflix streaming to Linux. However, Netflix tracks Microsoft's Silverlight releases pretty quickly, meaning that on a consistent basis, by the time Monolight has caught up to wherever Netflix might have been, Netflix has moved on to the next Silverlight release. Same for nearly all other SL content out there.
It's the same sad situation for any of the alternative Flash players - They continue to remain novelties because Adobe never seems to update the spec until they have released the next version of Flash, meaning Gnash et al are always at least a generation behind. Let's not forget the fact that the Flash spec is missing critical stuff such as RTMPE documentation. (The only public RTMPE documentation out there was obtained via reverse engineering Adobe's implementation.)
retrorocket.o not found, launch anyway?
I hope you have a similar attitude towards Java, because VB, as of today, has more advanced language features compared to it. For example, it has first-class functions and closures.
[a programmer's programmer using VB] is like a gourmand's gourmand eating at mcdonald's.
That analogy does not suggest what you probably mean to suggest. You are probably confusing "gourmand" (glutton) with "gourmet" (connoisseur of fine food).
Your own dogfood. Eat it.
Not a typewriter
Matthew MacDonald has been doing Silverlight books since version 1.0. I own his C# flavor of this 4.0 book. He's one of those authors that waits until a new technology has soaked in a bit, his book reflects that (as opposed to getting the book out their as soon as 4.0 was released). This book came out about 4 or 5 months after Silverlight 4.0 was released.
Whether you agree with the statement or not, it is an out and out troll. Do you really want to be quoting trolls?
Actually, it's not a case of tomato/tomato (pronounced in an ENGLISH accent, French people say 'tomate'). When two languages are functionally equivalent then other factors must be taken into account when deciding which language to use for a project.
In the case of C# it has very similar syntax to C++ (and by extension Java), which means that many experienced developers will be familiar with the basic syntax. All that can be said of VB.NET is that existing VB 'developers' will be comfortable with the syntax.
So honestly, from which group would you rather your developers come from?
The only reason to choose VB.NET for a project is if the project is ALREADY IN VB.NET.
I promised myself that if I used the .net framework on a project again I would shoot myself in the leg.
So after I post this I am going read my ruby on rails book.
You do realise that VB.Net != VB, correct?
Saying VB.Net is dead is akin to saying that C# is dead. Which makes virtually no sense.
So long as Microsoft continues developing the .Net framework, there will be a VB.Net and C#, along with all the other .Net languages.
-Rick
Personally, I'm waiting for Android.net as that seems to be the new platform everyone is wanting to develop for. And, if that is true, that most new jobs being created will be Android related, then, actually VB.Net and C#.Net are dead, unless Microsoft is going to port .Net to Android.
Of course, .Net will be around for a long, long time. Look how long ago COBOL "died" and yet there is still a strong demand for COBOL programmers.
It's better to know more than one. This is particularly true if the one you know is VB.
To start, the company's name is soooo lame. You can figure out the guys that started this weren't really into originality. I mean, I know this was the 70's and all, but c'mon : Micro. Soft. Microsoft. That's so duh, I dont know what else to say.
Are you implying that Bill Gates used his porn name?
Unless it makes it harder for you to solve the problem at hand.
Having a varied set of tools to solve a problem will allow you to choose the most adequate for the job.
Needless to say, you need to know how to use what you have. It's not use having a gazillion of tools if you have no clue what to with them.
"Science can amuse and fascinate us all, but it is engineering that changes the world. " - Asimov.
At this point Unix-like design is a foundation of all general-purpose operating systems, EXCEPT ones developed by Microsoft. There is a good reason for it, however explanation would be a book on OS design in itself, and therefore beyond the scope of a response to some retard's offhand comment on Slashdot.
Contrary to the popular belief, there indeed is no God.
I'm a big Microsoft-hater, but I don't really see how Silverlight is any worse than Flash, so I can't hate on it too much.
The difference is that Microsoft has a near monopoly on the desktop, and everything they do revolves around reinforcing it.
Actually I'd say there was nothing wrong with VB6 either as long as you used it correctly the problem was since it was easy to pick up many would learn just enough to be dangerous. But frankly I have seen horribly bad code written in plenty of different languages so I don't consider that a strictly VB problem. But if you used as intended, for making a RAD GUI for a database, well then it worked quite beautifully and I doubt anyone could do that particular niche job any faster or better with any other language. It just so happened having a custom GUI for a DB was a job that most small businesses could use so you ended up with demand for VB skills far outpacing supply which led to those "know enough to be dangerous" types.
But over the years I have cooked up some VB apps for clients and for that one little niche it is perfect. With VB it was trivial to have the client sit next to me and add/remove fields to their liking, whip off a prototype for them to see if they like it, for those simple little jobs it really is a great tool. It was when someone who only knew VB tried to shoehorn it into some giant rambling mess of a project that it never should have been used for that it became a POS, but I can't blame the language for a bad developer.
ACs don't waste your time replying, your posts are never seen by me.
I would rather prefer not.
Contrary to the popular belief, there indeed is no God.
Not that semantically makes any less oxymoronic, but anyway... the English language support bigger abuses that this one - after all, the political clique of many countries in this world do it every day (even letting aside the markedrones).
Questions raise, answers kill. Raise questions to stay alive.
Translation: A lot of talentless hacks are saddling their organizations with badly written code.
A talentless hack is a talentless hack, and badly written code is badly written code, in any language.
And organisations employ programmers, programmers do not control organisations.
To have a right to do a thing is not at all the same as to be right in doing it
They need a name that's cutting-edge like...
...CutCo
...EdgeCom
...InterSlice
No, wait, how about... CompuGlobalHyperMegaNet?
I sympathize, because I feel exactly the same way about Apple software on my Windows machines. Installing ITunes, Quicktime, Safari et al. on Windows is like intentionally infecting your computer with malware. You might as well just rip some memory out of your motherboard and replace your hard drive with a dead chipmunk.
Horses for courses.
On slashdot, referring to Java in support of an argument will get you nowhere, you might as well say "I hope you have a similar attitude towards COBOL/BASIC..."
To have a right to do a thing is not at all the same as to be right in doing it
Why post this, here of all places? My guess would be about 70% of Slashdot visitors hate Silverlight and 85% hate VB. Combine the two and you have a Slashdot article?
That's 155% of slashdot readers who will hate this!
To have a right to do a thing is not at all the same as to be right in doing it
Personally, I'm waiting for Android.net as that seems to be the new platform everyone is wanting to develop for.
Because any computing task worthy of the name can be done better on a 3" mobile phone screen and tiny virtual keyboard.
To have a right to do a thing is not at all the same as to be right in doing it
I had always thought that they took the name "micro-soft" from Neuromancer, but a quick check shows that MS preceded the novel, so William Gibson must in fact have been referencing them, who knew they were so hip once?
To have a right to do a thing is not at all the same as to be right in doing it
"the teaching of BASIC should be rated as a criminal offence: it mutilates the mind beyond recovery. '"Edsger W. Dijkstra Can we please let basic die? We don't need another book about a horrible language.
Mr Dickstrangler would fit in well with the hysterical language zealots on slashdot. BASIC gets people started with programming. If they are interested they will move on to other languages, only the most retarded/uninterested will get stuck with only being able to write BASIC for ever.
His comment is like saying "if you start by reading Janet and John books - here is Janet, here is John, here is the dog, see the dog run, etc.- then you will never be able to read adult literature."
To have a right to do a thing is not at all the same as to be right in doing it
Silverlight & Visual Basic! Could it get any worse than this?
Troll? How ? I would want to know how.
Have you worked with a VB.NET/VB mixed code base? It is horrible.
I guess Dijkstra is troll too.
Well said. It's probably important to point out that best and worst feature of VB is its ease of use. That allows competent programmers to perform tasks very rapidly, but allows people who have no business being programmers to write crap code.
BTW, you may already know but the new versions of Microsoft Expression not only allow customers to design forms but from their own desktop if needed. It's really intended for BAs, but allows the flexibility of course.
Saying Android is a family of phones is akin to saying Linux is a family of PCs.
Microsoft is [...] claiming it's "open" but gaming the spec release schedule...
Um, seriously? You're upset that they continue developing the library?
For example, there was hope that Monolight [...] would bring Netflix streaming to Linux. However, Netflix tracks Microsoft's Silverlight releases pretty quickly [...]
Well, this is developer's choice, isn't it? If Netflix chose to support linux, they could do so. They chose not to.
So, you are implying that being comfortable with the syntax and instructions of VB precludes you from being an elitist fucktard curly-bracket programmer? I think not, it just means said ft's are insular and critical of anything that doesnt fit neatly into their own skillset. Oh, and the french pronunciation is even gayer, so Ill go with the alternate spelling you provided. Thanks!!!
You vastly overestimate Slashdot. It is not LtU. Heck, you have plenty PHP fans here, and that thing is about as bad as old VB was!
I heard that Bill Gates himself is going to "buy you out".
That is who I was talking about. Yes, claiming that a programming language "mutilates the mind beyond recovery" is classic trolling. It is also a classic "appeal from authority" argument.
Sorry, I should have said ASP.NET MVC
Technoli
I can't buy this, I'm saving for Starter Shockwave 11 in FORTRAN
Why post this, here of all places? My guess would be about 70% of Slashdot visitors hate Silverlight and 85% hate VB.
Apparently you think that being exposed to diverse viewpoints is a bad thing. 70% of Fox News fans hate Barack Obama. Wouldn't it be nice if they did some genuinely "Fair and Balanced" reporting on him sometime?