Pro Silverlight 4 In VB 181
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.
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.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 |
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.
whyishewritingaboutvb? (Score:2)
Re: (Score:2)
I dunno, I think Virginia Beach is a pretty nice place.
Have you actually been there? The place sucks donkey balls.
Re: (Score:2)
Re: (Score:2)
Yes, it's a better place than Iraq and Afghanistan, but that's not saying much.
VB is really a dump as far as US-based beach towns go. There's a billion draconian rules about what you can and can't do, there's cops everywhere (it's a virtual police state), and the beach is tiny and crowded. You're not allowed to throw frisbees on the beach for god's sake. The town is just a shitty tourist trap.
Not only that, the surrounding cities in the Hampton-Roads area are shit too: Norfolk, Newport News, and worst of
Re: (Score:2)
If you want beaches, there's dozens of better places in the US to go, including pretty much the entire state of Florida (which isn't exactly a great state either, but it's better than VB).
You missed the obvious .. the Outer Banks
Re: (Score:2)
Of North Carolina? Yes, those are pretty nice, and a short distance from VB. But you do need to be very careful of the undertow there.
Re: (Score:2)
Stationed there for 3.5 years
As per Grishnakh .. VB sucks as a town and/or beach in general. If you were there for 3.5 years and didn't get to the outer banks then shame on you.
Re: (Score:2)
You do. As an army brat for the first 16 years of my life my military father always had time for stuff like that.
Re: (Score:2)
I was born in Chesapeake. The GP is correct: It sucks huge, throbbing, unwashed members.
This entire story... (Score:2)
This entire story is a troll.
Re:This entire story... (Score:5, Funny)
Silverlight isn't a rival to anything. This is like publishing a book "Fortran-77 For The 21st Century."
Re: (Score:2)
Re: (Score:2)
I thought the only people who still used any variation of VB were the "oldtimers" who picked up coding in the 90s while dreaming of making lots of money. At least those are the only people I see still coding in VB.NET and the like these days, pretty much all the real geeks I know tend to have pet languages that they're not allowed to use at work (Python, Ruby, asm for some arcane old CPU or something completely different) and code C#.NET or Java for a living...
Re:This entire story... (Score:4, Funny)
Re: (Score:2)
Some places still teach VB as the main language in IS programming courses. Perhaps because its syntax is more self-explanatory - e.g. compare C# keyword "abstract" vs VB "MustInherit" (on classes) and "MustOverride" (on methods), or "sealed" vs "NotOverridable", or "static" vs "Shared".
Re: (Score:2)
Don't forget "Exit For" and "Exit While" instead of break; - which not only explains exactly what's happening but also allows you to jump straight out of two nested loops on occasion if they are of different kinds, something you can't do in C#.
I also Like VB.Net's shortcut initialiser/constructor Dim foo as New ClassWithReallyReallyLongName() though C# now has var which does the same thing.
Where I work 3 out of 5 of us code C# for fun in our spare time. And in a way I'm glad that my job isn't the same as m
Re:This entire story... (Score:5, Insightful)
Re: (Score:2)
What GP said is essentially correct - VB and C# are so close in terms of language features that if you know one, learning the other pretty much boils down to learning the syntactic differences, and those are for the most part one-to-one mappings or close to it. All C# programmers I knew could read VB code without much effort.
Re: (Score:2)
I agree with you.. by the way.. But I admit I am partial to C#... Bad taste left by old legacy VB6 customers...
However, with the current .NET framework it really does not matter. Yes, VB.NET classes definitions are an eye sore (too verbose in my opinion), but it doesnt take long to swap between one or the other... Meaning it really does not matter.
On the Silverlight... Never been there because I personally feel as a consultant that Silverlight died when Android and iOS came on the scene... Meaning, moving
Re: (Score:2)
C# and VB.Net are two different syntaxes for using the same common runtime library. Arguing about whether C# is better or worse than VB.Net is the height of language snobbery. What matters is the .Net library underneath. The only reason to prefer one over the other is because you happen to prefer one syntax over the other.
Sorry but if are going to call yourself a "professional" developer then you should know the syntax of Java and/or C#. Once you know one of those languages then you should be able to move between the two fairly easily as the job/project requires. If you go from knowing VB and learn only VB.NET then you will be limiting yourself considerably.
There are a number of languages which you can access Cocoa from on OS X but I would hardly consider all of them equal to each other.
Where in my post did you see anything about not knowing Java or C#? And what does Cocoa have to do with .Net development?
C# and VB.Net are two "skins" on the same underlying framework. If you are a language snob, you may not like it, but VB.Net developers can do EXACTLY the same functions that C# developers do. This kind of snobbery is what limits you from being a "professional" developer.
Re: (Score:2)
Re: (Score:2)
a programmer's programmer using VB (Score:2)
Re: (Score:2)
Yo, dawg. I herd you liked to program, so I put VB in your Silverlight so you can program while you program.
Wait, what?
Re: (Score:2)
Or a mechanic's mechanic working on a lawnmower.
This is fun. We should do this more often.
Re: (Score:2)
This is Slashdot, remember? We use car analogies here.
Re: (Score:2)
Yeah, but even a mechanic working on a Yugo sounds more legit than a programmer in VB.
Re: (Score:2)
Hey, I work in VB too, but only because I have to, not by choice.
Re: (Score:2)
Gourmand vs. Gourmet (Score:2)
[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).
Re: (Score:2)
a programmers programmer needs amazon click cash too.
Advance shill notice (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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?
Er, most proper book reviewers get their books for free.
Re: (Score:2)
I can also tell you that it is often the case that authors are requested by the publisher to "recommend" reviewers for them to approach. If suitable targets are not acquired, they leverage their own private and consequently partisan fleet of buoyant yes-men to craft 1000-word critiques suitable
Re: (Score:2)
it's not only reviewer who is suspect but the guy who gets to plaster his amazon ref id on the link.. hint to slashdot: it's more credible if the reviews chosen actually tell something of the book and there are no ref id's.
Not a quick buck book (Score:2)
New years resolution (Score:3, Funny)
So after I post this I am going read my ruby on rails book.
Re:fpfpfpfpfp (Score:5, Funny)
pfpfpfpfpfpsdpfspdfpasfoawiertkgwerchgcsdhs vdghs ch
sdfghsdf
No, thats Perl. This is a book about "silverlight"
Re: (Score:2)
Looked like JUSTIF to me, but to be honest, both of those languages look like gibberish to me.
MacDonald is a programmer's programmer, (Score:2)
MacDonald is a programmer's programmer,
I thought it was the beginning of an SAT question.
Re:MacDonald is a programmer's programmer, (Score:5, Funny)
Professional and VB in the same sentence is incorrect grammar, right?
Re: (Score:2)
No, that's a full on syntax error, I can't implicitly convert between those two.
Re: (Score:3)
I can't implicitly convert between those two.
If you were using VB, you could! Especially if it wasn't what you wanted!
Re: (Score:2)
That's what makes it all the funnier. In his joke, it's not just a semantic error, it's actually syntactically incorrect to have those two words in the same sentence, just like you can't have two articles before the same noun.
Re: (Score:2)
Re: (Score:2)
MacDonald is a programmer's programmer,
To know recursion you must first know recursion.
To know MacDonald is a programmer, you must first know a programmer's programmer.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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.
Re:Mod article flamebait (Score:5, Informative)
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.)
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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!
Re: (Score:3)
I don't see anything wrong with that. A lot of professional software engineers use it.
Re: (Score:2)
Re: (Score:2)
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?
Re: (Score:2)
Your own dogfood. Eat it.
Pro .Net (Score:2)
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 sam
Re: (Score:3, Insightful)
And then have it only run on one platform. Amazing, vendor lock-in of many languages at once!
Re: (Score:2)
Ever heard of Mono?
Re: (Score:3, Funny)
Yeah, it does not support everything, is a patent mine field and is aptly named after a disease.
Re: (Score:3)
Yeah, it does not support everything,
Correct. You have much better portability by writing software in Mono and then porting back to .NET, although there are plenty of extensions in Mono that don't exist in Microsoft's implementation too.
is a patent mine field
Only because people like you keep saying that it is. In the real world, nobody is suing anybody over this technology. For Microsoft, Mono provides a legitimacy for their language to show that it really is cross platform, open standard. It would be a public relations nightmare if they did an about face on this.
Re: (Score:3)
Yes, and this is why anybody who believes in open standards should stay away from Mono. If you follow Microsoft's lead you will get burned.
That doesn't make sense. There was nothing in what I said that could lead you to that conclusion. It is you own hatred of Microsoft makes you believe it. When has Microsoft ever made a promise not to sue for patent infringement about a public, free licence, and then turned around and sued anyway?
They won't give a shit once they get beyond the adoption stage. They'll just tell everybody to license their intellectual property that they invested in.
There is more than one standard covered by a promise not to sue. If they reneg on this one then all of their promises would be null and void. They wouldn't be able to convince anyone to use their standards then.
You're not a communist, are you? Don't they deserve to get paid?
I se
Re: (Score:3)
When has Microsoft ever made a promise not to sue for patent infringement about a public, free licence, and then turned around and sued anyway?
I never said they did or will. I said, "anybody who believes in open standards should stay away from Mono. If you follow Microsoft's lead you will get burned."
Well, unless you mean that Microsoft will literally come around and set fire to you, then I can't see what other reasonable interpretation there could be. You claim this isn't about being sued by Microsoft, but then you go on to say:
Microsoft already has a patent deal with Novell and it's distribution of Linux. Don't want to be sued by Microsoft for using Linux? Buy Novell and pay royalties to Microsoft.
So you ARE talking about being sued. How much of that deal was just a PR exercise anyway? It is not as if any other distro has been sued - especially for something that Microsoft promised to keep free. The only close thing would be TomTom being sued for using FAT32, but then tha
Re: (Score:2)
You claim this isn't about being sued by Microsoft
I wish you would stop paraphrasing me, badly. What I'm disputing is the following statement from you: "When has Microsoft ever made a promise not to sue for patent infringement about a public, free licence, and then turned around and sued anyway?"
The key point here is all the other parts tied to the non-public stuff. I spent several paragraphs on it. I am not claiming, and have never claimed, that Microsoft will sue over a patent after they granted you royalty-free rights to use it.
So you ARE talking about being sued.
DETAILS MATTER. See abov
Re: (Score:2)
You claim this isn't about being sued by Microsoft
I wish you would stop paraphrasing me, badly.
Huh? What exactly is wrong with my statement? I asked "When has Microsoft ever made a promise not to sue for patent infringement about a public, free licence, and then turned around and sued anyway?" and you answered "I never said they did or will." That looks incredibly like you are saying that this isn't about being sued by Microsoft. So if you agree that you are not in danger of being sued for using Mono, what is your problem with it? Let's see:
Later on, if Silverlight is adopted by the web as a whole, in part because it is "cross-platform", then they can just pull the plug on Linux. New versions will be tied to Windows. The idea of being cross-platform will be quietly dropped.
So let me get this straight. The danger in using some open s
Re: (Score:2)
What exactly is wrong with my statement?
You're really pissing me off. You keep moving between a specific scenario to a generalization, as if the two were equal.
That looks incredibly like you are saying that this isn't about being sued by Microsoft.
Not being sued by Microsoft for a granted patent != sued by Microsoft for non-granted patents. Can you see the difference now? Can you please stop equating the two?
So if you agree that you are not in danger of being sued for using Mono
No, I don't agree and never said that. Mono is a large project that goes well beyond the Community Promise stuff.
The danger in using some open source software is that a company might pull the plug on some other proprietary software that you are not using. That does not make sense.
I've already explained my reasoning. The danger is adopting Mono leads to greater adoption of proprietary parts, an
Re: (Score:2)
You're really pissing me off. You keep moving between a specific scenario to a generalization, as if the two were equal.
That's funny. I'm getting pissed off because you can't address the specific claim, but instead keep wandering off into unrelated scenarios about different products and then spew general anti-Microsoft FUD. But then you went on to say:
Mono is a large project that goes well beyond the Community Promise stuff.
Wow, that is actually about the correct software package. Maybe we are finally going to see some insightful argument that blows my position out of the ballpark...
The danger is adopting Mono leads to greater adoption of proprietary parts, and strengthens Microsoft's hand.
Oh no! You have gone back to reiterating an old FUD claim, one that apparently required the user to switch away from
Re: (Score:3)
Re: (Score:2)
If you care a lot about that, then This Is Not For You.
I mean, I don't like vanilla ice cream, but I'd have to be seriously pompous to rant about how wrong people who like it are.
Re: (Score:3)
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.
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
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!
Re: (Score:2)
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).
Re: (Score:2)
Oh yeah, good 'ol Me.dies()
Re: (Score:2)
Protected Overrides Sub Finalize()
MyBase.Finalize()
End Sub
Re:Here we go (Score:5, Funny)
Re: (Score:2)
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.
Re: (Score:2)
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?
Re: (Score:2)
Re: (Score:2)
They need a name that's cutting-edge like...
...CutCo
...EdgeCom
...InterSlice
No, wait, how about... CompuGlobalHyperMegaNet?
Re: (Score:2)
I heard that Bill Gates himself is going to "buy you out".
Re: (Score:2)
*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
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:3)
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.
Re: (Score:2)
I would rather prefer not.
Re: (Score:2)
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
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
"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."
Re: (Score:2)