Editor's note: Welcome to .NETRocks Conversations, excerpts of conversations from the .NET Rocks! weekly Internet audio talk show. Hosts Richard Campbell and Carl Franklin chat with a wide variety of .NET developer experts. This month's excerpt is from show 619, with guest Shawn Wildermuth, a well-known Silverlight expert, on a range of topics, including Silverlight and mobile development, Silverlight 5, and more.
Shawn Wildermuth: Hey, guys.
Richard Campbell: Still a C# MVP?
SW: No, not for a while now. I'm actually a data MVP. There's a small group of us who were not focused on SQL Server but focused on the Surface surfacing data to apps.
RC: But actually your life is dominated by phone as near as I can tell.
SW: Phone and Silverlight. You know, it's hard that someone who is so passionate about data has ended up paying somewhat attention to the UI these days. But I'm writing a book on Windows \\[Phone\\] 7.0, as many of you know, and we're discussing what the right title is going to be. I'm still shooting for the Windows Phone Book.
Carl Franklin: Well, on Tuesday we had Scott on, Scott Guthrie, "the Gu," sort of talking about Silverlight 5.0 a little bit and sort of quelling everybody's unfounded fears that Silverlight is going away in favor of HTML5.0 and all these crazy things. What was your take on that whole period of time where people were running around like the world was going to end?
SW: Well, anyone who has followed me for a while knows that I'm usually the first one to panic. But think in this case I didn't because my attitude and what I've been teaching for four or five years now in Silverlight is that Silverlight isn't about the web. It's about apps.
SW: So if you're building websites, and you're using Silverlight as your front end, you're probably making a mistake.
SW: This is true for Flash, and this is true for Silverlight. So the maturation that's happening with HTML5.0 is awesome, but I don't think it changes anything. You know, in a fairly short blog post that talks about this, I said HTML is for a website and Silverlight is for web apps, and it's still kind of where I stand. I think the majority of Silverlight usage continues to be in the enterprise space, to build consumer-based apps or more likely business-to-business apps.
CF: I think where people drew the parity was because Silverlight is used for Windows Phone applications and iPhone is all HTML5.0, essentially, so there's a situation where the two technologies sort of come together for the same platform as a type of platform.
SW: Well, in theory we look at what Apple did. I think this is exactly the learning space. So Apple came out with the iPhone, and everyone went ooh, I have to have one because I have to wear my white headphones everywhere I can and everyone will think I'm cool. And when it came to the developers, Apple said "What do you mean you need an SDK? There's the web just like web-based apps." And the 12 people who cared to do that just complained that they couldn't get to the hardware, so Apple kind of reluctantly backed into the apps store. I think the apps store was something they were talked into. It's not really something that they wanted to do.
RC: Yeah. I think Steve Jobs' quote was third-party applications will be accessed through Safari, their browser. That's what it was all about.
SW: And so, I think that tells the real story on the iPhone. It's that, sure, they build sites that run well on Safari, on the iPhone, and run well on the browser, on Android, and again on the Windows Phone, but I think apps are a much bigger story there. You would think that, oh, I can build it in an HTML5.0, and then it will work on the Android, it will work on iPhone, it will work on the Windows Phone and will be good, except that no one is going to be happy with that level of abstraction.
SW: I think you're going to have to dive down into a real API framework, which means three different frameworks for phones.
SW: Three. You have iOS or Objective C on the iPhone, you've got Java on the Android, and you've got Silverlight on the Windows Phone.
CF: So I want to talk a little bit more about Silverlight 5.0, which I'm sure you're very excited about. You know, Rocky [Lhotka] was just doing an opening keynote here at the PDC, and he said his favorite feature of Silverlight 5.0 is going to be—because it doesn't exist yet—the idea that you can debug binding statements.
SW: I think the debugging of data binding in Silverlight 5.0 is really cool and helps business developers a lot. I don't really have a favorite feature. That's a really cool feature, and I think it will certainly help people. Silverlight 5.0 is kind of a bunch of smaller pieces of functionality that all really fit well together. Some of them are really for framework guys, like the ability to finally build markup extensions, and some of it is really for the trench developers, as I like to call them, the people building the apps. That's where you can get into things like debugging and have a better printing story like finally no bitmap printing, which was a problem to begin with. It's interesting that they finally framed it as media and business apps because that's really what it's been since 2.0.
CF: It really is. You obviously had a wish list before this was announced. How many of the items on your wish list have been addressed?
SW: Well, I'm in a peculiar place because I have some very particular things, and so half of my wish list got met. I'm still a little frustrated by the nature of support for certain things around data binding that I'd like to see mature a little more, some better support for writing your own collections that are bindable. There's still a bit too much that is sealed in Silverlight that isn't sealed in the .NET Framework, and some of that I'd like to see come to more parity, especially some of the interfaces that we need to implement. But that's mostly for framework guys much more than for developers. What's interesting about Silverlight is, instead of making it cool for the people that are writing these deep frameworks that help people, they really focused on the end users by looking at what developers building business apps need. For the most part, I think they've really hit the switch fine in Silverlight 5.0.
CF: Does it bother you that we have no right-click menu support?
SW: You do have right-click menu support. You have it in Silverlight 4.0.
CF: I thought that in a Silverlight application, you right-click and get the Silverlight option and that's it. Can you actually populate that menu?
SW: You can't, but you can override it and provide your own. In fact, the built-in Silverlight toolkit has a context menu control that does it all for you, and that existed since Silverlight 4.0.
CF: Really. Maybe it's just a thing that I have never seen a Silverlight application that does that, so I just assumed that it wasn't possible.
SW: Oh, here's the thing. If you're building really for cross platform, right-click isn't natural except for Windows guys.
SW: So I find that a lot of people building business apps for Windows using Silverlight tend to use right-click. I see it a lot in my class. If you're building something more cross platform, right-click makes no sense.
CF: You're absolutely right.
SW: You know, my big complaint, since we're talking about Windows, is that they've entrenched themselves a little bit more toward providing more Windows-specific functionality.
SW: P/Invoke. I don't mind the feature P/Invoke. I mind the feature P/Invoke being something that makes it look like on the outside that they're moving further away from Mac support. I think P/Invoke would have been fine if they would have announced that Apple script is also available through the automation factory, or as everyone calls it, COM support.
There's much more! Listen to or read the full interview here.
Richard Campbell and Carl Franklin (both Microsoft Regional Directors) are the voices and brains behind .NET Rocks! They interview experts to bring you insights into .NET technology and the state of software development. They’re more than dry technical interviewers—they have fun!