Q&As

Q&A: Microsoft's Scott Guthrie Breaks Down Silverlight 3 for Enterprise Developers

In one of its milestone launches of the summer, Microsoft on Friday officially released Silverlight 3, the latest version of its rapidly-evolving media client/rich interactive application development platform.

With the latest iteration, Silverlight gains outside-the-browser capabilities, which observers say could provide some serious competition for the nearly ubiquitous Adobe Flash/AIR technologies. (Coverage of Friday's launch can be found here.)

Scott Guthrie, corporate VP of Microsoft's .NET Developer Platform group, sat down with contributing editor John K. Waters. Guthrie answered wide-ranging questions ranging from how to debug Silverlight apps, to its the role of .NET RIA Services at the data access layer, to Silverlight's security model, among other topics.


Why should enterprise developers care about Silverlight 3?

One of the growing trends that we see is people wanting Web-based deployment of apps. In other words, they want the TCO of a thin client, but at the same time want to deliver the end-user productivity from the traditional desktop-based applications. Where I think Silverlight is interesting for enterprise shops is that it can provide this blend of Web-based TCO and deployment with all the end user capabilities of a thin client app.

Scott Guthrie, corporate VP of Microsoft .NET Developer Platform group
Scott Guthrie, corporate vp of Microsoft's .NET Developer Platform Group

Can you point to a particular change in this release that would make it appealing to enterprises?
When you think about visualizing data -- or displaying and interacting with it -- Silverlight 3 offers significantly richer capabilities than we had in VB 6 or WinForms, or the traditional line-of-business forms packages. We have about 100 controls in Silverlight 3, and those controls are much richer than we’ve had in the past, and that’s how you get that user productivity benefit. Having rich APIs, rich UI controls, and rich networking support that just does all that work for you means that you, as a developer, can focus on your business.

If you had to point to one thing that separates Silverlight 3 from the competition, what would that be?
For enterprises in particular, the ability to write .NET code -- server side, middle tier, and now client side-inside the browser, and getting Web-based deployment -- that’s something that no one else has. If you look at Ajax you have this impedance mismatch of languages. If you look at [Adobe] Flash and Flex, you might be using .NET or Java on the server and end up having to map it. The ability now to do business rules once, to do validation logic once, and then to have it run on both the client and the server -- and then have those clients be any type of device or operating system… well that’s going to impact enterprise productivity. That’s the promise of Silverlight, that ability to take .NET everywhere.

We’ve heard concerns from enterprise developers who say that Silverlight’s security sandbox inhibits its use for enterprise apps/intranets. What is Microsoft doing about the restriction to Internet security zones? 
When you’re running client code in Silverlight, by default we restrict that code from accessing your file system or doing anything that could hurt your machine. For Internet-based apps, that’s critical. You don’t want to visit a site and have it access your documents without your permission. So, with Silverlight 3, both our in-browser and out-of-the-browser models both support a sandbox mode like that. But let’s say I do want to have local file system access, because it’s a sales app inside the firewall. With Silverlight we allow you now to open files locally, but it still requires user permission. One of the things we’re looking at for future releases is an option, especially for enterprise apps, that allows an administrator to grant permissions.

Is that something that’s in the works at Microsoft now?
The truth is, people who want to use Silverlight for enterprise full-trust apps still represent a relatively small portion of the market. It’s something that we haven’t built yet, but it’s something that we are considering.

Among the biggest changes in this release is the new out-of-browser capability. It puts you in head-to-head competition with Adobe, which has Flash for inside the browser and AIR for apps that run outside. Why did you add this capability?
It was the next logical step in the evolution of Silverlight.

Weren’t you worried that it would break your security model?
Especially for this first release of that capability, we tried to nail the user-experience model and the security model, so that people will trust it. You often hear people say that inside the browser is safe; outside isn’t. We’ve really tried to change that perception with Silverlight 3. That way you don’t have to worry about that app accessing your private data or leaving something behind that could junk up your system.

The popular TweetDeck Twitter client, which is an Adobe AIR application that lives on the desktop, but acts like a Web app, is often pointed to as the quintessential out-of-the-browser application. What types of apps make sense for Silverlight outside the browser?
I think we’ll be seeing a lot of data-snacking apps (gadgets and widgets), extended off-line media scenarios make sense, and companion apps for your Web site. In future releases, I’m sure that Silverlight will enable even richer out-of-the-browser capabilities. But for this release, these are the sweet spots.

Are we looking at birth of a bifurcated world split between .NET-with- Silverlight and Adobe-with- Java?
For enterprise RIAs and line-of-business apps, certainly if you’re a .NET shop, Silverlight is a no-brainer. But we’ve gotten to the point now in the development of our stack where we can talk to Java shops or people on other platforms. There’s nothing like Silverlight in the Java world today. There’s JavaFX, but it doesn’t do all the stuff we can do, and it doesn’t have the tooling support.

How can developers debug Silverlight 3 apps? Is Microsoft enhancing its Silverlight test framework?
Because we’re .NET based, you can set a break point in Visual Studio, and it just works. So, the same way you can debug a WinForms app, you can debug a Silverlight 3 app. That said, Visual Studio 2010 will have a fully interactive WYSYG Silverlight designer and much better testing and test-driven-development support. You’ll see a lot more support for Silverlight with that. (For more a complete analysis of Microsoft’s forthcoming Visual Studio 2010, see IDE Evolution)

It seems as though you’re cannibalizing WPF for Silverlight. What’s the latest on Silverlight’s parity with WPF? How close are these technologies at this point? What can developers expect going forward?
WPF plays a very important role for us. It’s sort of like the big brother of Silverlight. Part of the reason we were able to do as much as we have in the past nine months, is that Silverlight is built in WPF. We’re building tools that let you target Silverlight and WPF in WPF.

But what should developers know about the status of WPF in relation to Silverlight?
We are really trying to make sure that we maintain compatibility between the two. You can build XAML in one and use it in the other. Now you can write controls once now and use them in both places. That means that there’s a spectrum of how you can use your skills. Silverlight is great for many things, but if you want to build the richest possible Windows app, WPF is the high end. And it’s not going away.

Is .NET RIA Services going to be preferred over ADO.NET DataServices for Silverlight Data Access? 
No. The bits that are being released today for RIA Services, actually build on top of ADO.NET DataServices. So you can think of ADO.NET DataServices as providing a kind of lower layer RAW/REST API, and then RIA Services as a layer on top. We definitely think that there are scenarios where you would want to have a pure REST service model. And then the .NET RIA Services gives you things like the validation, cross-tiering, and higher-level services on top. We’ve worked hard to layer them nicely, so that RIA Services isn’t a competitive technology, but actually just builds on top of ADO.NET Data Services.

When are the plans for Webcam audio support? Right now many developers have to use Flash and Silverlight in the same app to support this functionality.
We’ll be adding Webcam microphone support natively to Silverlight in the future. That’s a feature that’s definitely coming.

Is the new "save file dialog" Microsoft’s answer to print support? When will Silverlight support reporting and printing?
"Save file dialog" now lets you save things locally, which sounds like an obvious thing, but Ajax doesn’t support that today. And there are a lot of things you want to do when you’re implementing that to make sure you’re doing it securely. That’s why we waited until Silverlight 3 to add it. It’s now built in.

Do you have a native print API in Silverlight today?
No. What people typically do is to generate the content on the server, and the Silverlight app would open a window and pull a file from the server—it might be a PDF file, HTML, a Word doc, or Excel. And you can then use print within that particular file. A direct print API that allows you to construct your document on the client side entirely is something we’re looking at for the future.


Reader Comments:

Wed, Nov 11, 2009 Rahul Gangwar

You might do everything without SL but the point is hwo easy? Are you gonna do it with lots of learning curve, no easy tool support, kind of trying to do a patch work with one technology here and another there? SL's real value is ease of doing it with a solid roadmap. I don't see any technology with such extensive support ranging from documentation to tools to ease. That is what makes SL shine apart and not primarily features.

Thu, Sep 24, 2009

SL without Printing really sucks -- like some imature product manager was on drugs.

Tue, Aug 18, 2009 Kevin

Look around, there's code on the net for doing printing in WPF/Silverlight. Not that hard.

Wed, Aug 12, 2009 Mark

I put in line breaks. Sigh.

Wed, Aug 12, 2009 Mark

Sorry, but what you say about setting Silverlight apart from the rest is not true. With things like GWT, Vaadin, Echo and RAP I can do Java top to bottom and STILL have AJAX. Also, I can do java top to bottom with JavaFX, Swing and have a web deployment and have had that for years. Communicating back to the server is much easier too (see Spring Remoting). I also like how you discounted JavaFX and say you can "talk to Java shops". Sure via web services. Yuck. JavaFX does have tooling support (still needs work). I am not sure what Silverlight can do that JavaFX can't that is important. I am sure there are things JavaFX can do that S3 can't. JavaFX is much more than an RIA technology. I suggest you check out this years JavaOne Videos. I do agree with Gartner (can't believe i am) that Silverlight is only a strong valuation for Microsoft shops. First, the only choice to communicate with a Java backend is webservices. And I would have to duplicate object, logic, etc. Plus, to do Silverlight, I have to use VS.Net. I cringe everytime i have to. Sorry. Java IDES are much better. Also, it might be just me, but i hate "coding" in XML. I like the JavaFX syntax much better. And please can you do away with user controls? I hated them in VB(classic) and I still hate them. Look at Swing/SWT/GWT/JavaFX/etc on how to do it right. That being said, if I have to do .Net, I think i will take it over ASP.Net. Of course that doesn't say much.

Wed, Aug 12, 2009 SG

To install silverlight plug-in, while running silverlight application is it necessary that user needs administrator rights on that machine?

Wed, Aug 12, 2009 markhenry stouc.kay@gmail.com

such a really good site because this site has good information all of user http://www.goarticles.com/cgi-bin/s DOT howa.cgi?C=1851713

Mon, Aug 3, 2009 Bobby India

Help me
I am trying to install Silverlight 3 on my system it is my first experience
my system's configuration is as follows
512 MB RAM, Core 2 Duo Processor
OS: winxp with SP2, Visual Studio 2008

I also installed the following s/w on my machine
1. Service Pack 3 of WinXP
2. Service Pack 1 of Visual Studion 2008
3. Visual Studio 2008 Express Edition with Service Pack 1
(installed visual web developer and Visual C# components)
4. I also installed silverlight.exe on my system and message comes installed successfully
5. when i run silverlight3_tools.exe then after 3 or 4 minutes message comes installation faild and generates a big error

kindly help me what's the problem or how to install
silverlight 3.

Wed, Jul 29, 2009 SL Newbie

By the way, what is the point for me to upgrade from SL2 to SL3 if it is still a complete solution to developer yet?

Wed, Jul 29, 2009 SL Newbie

Undoubtedly SL is great for creating compelling web site/application. However from a developer point of view, Microsoft really pissed me off. Why can't Microsoft launch a complete solution rather than rolling out piece by piece? Correct me from wrong, print funciton is not available yet (may be it can be accomplished by some indirect or tricky way) and similarily navigation wasn't available at SL2. Apparently not all "must" functions are available yet. I was about to decide to develope my company's next project using SL and luckily I did some research and found out print function is not available yet. Imagin if I realize the fact couple months after starting the project, do I tell my boss that I need to wait for the next release to get such a basic function. I really don't know how many "much" functions are still missing. :(

Wed, Jul 29, 2009 Gus Coniglio California

Until the out-of-browser functionality has full-trust capability, I’d have to save that it has very little pragmatic value to me. I’m better off using “thin” multi-tiered WinForms apps.

Mon, Jul 27, 2009 Joan Florida

Can't use Silverlight until it supports printing.

Sat, Jul 25, 2009 Thomas8

I Cant download silverlight. the trouble feedback indicates that c:\9b3c9d3a817631720b74a13a\ is missing and it is. I can find no references to that file. Any help or ideas? Thanks

Thu, Jul 23, 2009 Dazzle Whitre http://ezinearticles.com/?Does-Dazzle-White-Pro-Work?-Review-on-Dazzle-Teeth-Whitening-Gel&id=2539008

Such a really wonderful news i am so happy this news

Thu, Jul 23, 2009 Meir krudo Israel

What about Hebrew/Arabic suuport?

Wed, Jul 22, 2009

yes, a mac has right click: Ctrl+Click is the most common way to do it, two finger touch is another option

Wed, Jul 22, 2009 Ronnie Meijer Netherlands

I love Silverlight. There is one thing though, when can our dutch users get a localized installation proceddure.

Wed, Jul 22, 2009

does a mac have a right mouse button?

Wed, Jul 22, 2009 MACA

Silverlight 3 is fantastic, just add right click mouse support natively without requiring to get back to the hosting page. It's a nasty trick. The market for sl3 controls is growing rapidly, it means that may people are actively using it

Tue, Jul 14, 2009 Glen

You talk about having the same rich features as a desktop app in Silverlight yet there is no basic support for right mouse click.

Tue, Jul 14, 2009 Edgar

Correction on my last comment. I meant it burns me that I have to back to ASP.NET if I want to make a printable report.

Tue, Jul 14, 2009 Ravi Bhavnani

Please consider adding support for synchronous WCF client proxies.

Tue, Jul 14, 2009 Edgar Harris

Please add printer support in the future. It kind of burns me that I have to go back to ADO.NET if I want to make a printable report. Oh and please don't ruin Silverlight by breaking the sandbox model for those few developers that are asking for it. In most cases the sandbox model doesn't eliminate features it just requires some creativity to get around them, and in those extremely rare cases that it does block a feature then that's what WPF is for.

Add Your Comment:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above