This is the view from the Mix10 lounge on the 64th floor of the Mandalay hotel in Las Vegas!

Earlier today I had a chance to have an exclusive interview with both Tim Heuer and Mike Taulty! The focus was obviously Silverlight, but I had a good mixed bag of questions so hopefully there is something for everyone to find a little interesting!

Hi everyone!

It’s great to be here today and have a chance to ask these Microsoft gurus some Silverlight questions. I will be asking a mixed bag of questions over the next 2 hours so hopefully there will be some interesting content for everybody.

I will post each question as a reply to this thread allowing Tim Heuer and Mike Taulty to post their answers as separate responses, so keep checking back over the next 2 hours

Question #1: Before I get into the technical questions, I would like to talk about the Silverlight Sweet Spot!

Obviously Silverlight has unique tools like Smooth Streaming and Deep Zoom, but what do you see being the one thing that Silverlight excels at over all other technologies?

Working at Metia with Silverlight for the last 3 years, we have created many types of projects from banners and micro sites to immersive virtual experiences. Where in the market and what type of projects should my team at Metia be focusing on to best reap the rewards of using the Silverlight platform? Where do we find that Silverlight Sweet Spot?

I imagine that this will differ for different people and my answer will probably surprise you as it’s not some particular feature.

For me, the sweet spot of Silverlight is really the developer model in that I get to write regular C#/VB code like tonnes of people know how to do today and I combine that with the productivity of declarative UI that XAML and the tooling gives me and I can write RIAs using that . I don’t have to learn a new IDE or a new debugger or anything.

I can also take a chunk of that stuff I wrote and potentially re-use it on the desktop and ( as we hear about at MIX10 next week ) it sounds like I’ll be able to do that for the Windows Phone 7 Series too.

So the fact that I get a “browser deployment model” for .NET rich apps really is what makes Silverlight so great for me personally.


I think there are sweet spots in technology but more importantly sweet spots in apps or ‘killer apps’ — the latter of these is I think where the importance goes. Any technology can be awesome, but if it doesn’t solve a problem or enhance a user experience, then where is the value.

For Silverlight, clearly HD media is a sweet spot as you note with Smooth Streaming support. But to me, the sum is greater than the parts — the ability to leverage core .NET skills and framework along with the ability to
deliver a highly interactive/rich experience with designers is the overall best picture here. Differentiating existing or new applications using interactive technologies is key. If you are using Silverlight for a mail
contact form, it’s probably overkill…don’t use it ‘just because’ but rather find ways it can solve a problem, and maybe the problem is as simple as productivity in developers.

Question #2a: I would like to talk a bit about Smooth Streaming

We currently use the SMF media control on codeplex to display Smooth Streaming; will Silverlight 4 come with an ’out-the-box’ smooth streaming player control?

Unfortunately no, SL4′s MediaElement won’t have native Smooth Streaming support. Essentially Smooth Streaming is provided to Silverlight using implementations of the MediaStreamSource API. The Silverlight Media Framework worked with the IIS team to create the Smooth Streaming Media Element (referred to as SSME). This is something I’d like to see make its way back into the core framework but it didn’t happen for SL4.

SMF, however is a great project and is getting better, adopting a plugin model for v2 to make the player much smaller and have a ‘take what you need’ approach rather than a monolithic one.

Question #2b: I would like to talk a bit about Smooth Streaming

Will there be cross scheme support for streaming video? Currently we cannot stream a video (http) to a secure site (https)?

Cross scheme is a huge request in general and where we are looking to improve. I would encourage you to keep the feedback coming and perhaps add a wish list item (or vote for an existing one) on this feature http://silverlight.mswish.net

Question #2c: I would like to talk a bit about Smooth Streaming

Will there be more control over the Smooth streaming rates so that we can change the order that the user receives the streams? Currently the user receives the lowest bandwidth first so they always start with a low quality video.

Another big request recently! And something that our internal customers are facing as well. The goal of Smooth Streaming is to deliver the best experience. The assumption in the heuristics now is to assume the lowest and grow from there. We do envision enhancements that would enable the user to specify starting bitrates and have more control over this. Some of these features may come in the Silverlight Media Framework project (http://smf.codeplex.com) before they hit the core perhaps.

But this is on our radar.

Question #2d: The last question on Smooth Streaming

Will there be any smooth streaming servers made available for streaming conferences or do we have to build that side ourselves?

I’m not sure what is meant here — Smooth Streaming is a feature of IIS7 actually, with Silverlight as a playback mechanism. So all you need is a Windows 2008 server with the IIS Media Pack installed.

If the question is about service providers having offerings for live smooth streaming for anyone to use, I’m not sure what some of our partners may have in the works. There are several big partners that already provide Smooth Streaming support (i.e., iStreamPlanet, Limelight, Akamai) as well as shared hosters that are starting to offer the feature on their hosting plans (DiscountASP for one).

All you need is an encoder to create the SS bits and then upload those to an IIS7 server. For Live Smooth Streaming it is a bit more involved and requires some live hardware encoders.

Question #3a: I would like to talk about the new WCF RIA Services

Can we expect to see a new version released alongside the upcoming Silverlight 4 RTM?

What changes can we expect to see between the beta released at PDC earlier this year and the next version? Any breaking changes? Any new features?

Yes, WCF RIA Services will ship as a part of Silverlight 4. In fact, when you install the Silverlight 4 tools, WCF RIA Services will now automatically install in your development environment as well.

There will be some changes from the PDC beta release and some breaking changes, all of which we will publish in documentation for developers. Some new features will be introduced in a RIA Services Toolkit — a temporary ‘out of band’ release that will have some features we are thinking about as well as some new endpoint type features. All of these will be discussed soon :-) .

Keep an eye on http://silverlight.net/riaservices

Question #3b: One more question on WCF RIA Services

In regards to the current 60 second timeout on WCF calls, we find that is not enough when dealing with large amounts of data or users with slow internet connections. Will this be removed or be configurable?

I will have to check on this one as I don’t know for sure. As you know RIA Services uses WCF under the hood, so in some instances we are bound to some constraints provided there. If someone specific has a question on this, feel free to contact me directly and I’ll find out. I just don’t know the direct answer offhand.

Probably worth adding that there are sessions on the agenda for MIX10 next week relating to WCF RIA Services.

Visit http://live.visitmix.com/Sessions and have a look for RIA Services.

Question #4: I have some questions about the new Out of Browser feature set

A lot of the new feature set for Silverlight 4 are based around the out of browser experience, will we see a lot of these new features being made available in the browser version?

Two of the key out of browser features for us at Metia are the Notification API and the HTML control, why are these only being made available for out of browser and when can we expect to see them being made available for the browser experience?

There are some features as you note that are available in OOB mode only. Some of these we debated on (NotificationWindow) whether or not it should be in-browser as well. For example, does it follow the ‘web’ protocol to have toast notifications from a web site? Or should we not care and we shouldn’t follow ‘web’ rules here. These are some of the debates. As to HTML and in-browser…trust me this is HIGH on my request list too (make sure to vote for it http://silverlight.mswish.net). There are some security mitigations we are taking here by only enabling it in OOB mode. As this feature evolves we will continue to take feedback, understand our own security threat assessments and try to improve where we can.

Must admit that my 2p here would be for an in-browser not to display ”toast”. It doesn’t feel very “web” to me so I’d prefer to see it stay as pure “out of browser”.

Question #5a: I would like to talk about the upcoming use of Silverlight on Windows Mobile

This one really excites me and I am hoping we will hear a lot more at Mix10 next week!

How powerful/restricted will the tools be compared to the full browser based plug-in?

At this time, we aren’t explaining a lot of the finer details unfortunately, but you can read what Charlie Kindel has to say about as much right now: http://blogs.msdn.co…xperience.aspx.

Additionally there are over 12 unique sessions for Windows Phone development at the upcoming MIX conference next week — keep an eye on those ;-)

Question #5b: I would like to talk about the upcoming use of Silverlight on Windows Mobile

How will Microsoft manage the distribution of Silverlight Mobile applications? What kind of testing processes will be put in place before a Silverlight Mobile App can go live?

I’m liking your persistence on this one Gavin ;-) but as far as I know this kind of detail about the developer story for Windows Phone 7 Series isn’t announced at the moment.

I’d look to MIX10 next week (live.visitmix.com) for a lot more information.

If I said any more I’d expect to get eaten by Microsoft lawyers before the end of the day ;-)

Most of these details for Windows Phone application development (platform and policy) will be revealed next week. Unfortunately I can’t share anything at this time. As Charlie notes, we want developers to be ’profitable’ by their own definition (money, fame, whatever) so we’re creating a marketplace to help do that — the details of the marketplace logistics will be a part of some sessions at MIX10 (which you can watch within 24 hours of them happening on live.visitmix.com).

Question #6a: I would like to talk about the possibilities of Augmented reality and the new Web cam support in Silverlight 4

First of all it looks like the web cam output is only available in RAW format, will this be expanded to include codec’s or are you looking to the community to support that side?

We very much wanted to provide an in-runtime codec for encoding, but it just came down to resources for this release. Perhaps this is something the Toolkit team will explore…but I suspect partners/community will beat us there. Mike Taulty already has good examples on using the RAW audio/video to write out AVI files that can be used, etc. There is definitely room for improvement here and we know that.

For augmented reality, check http://slartoolkit.codeplex.com.

Question #6b: I would like to talk about the possibilities of Augmented reality and the new Web cam support in Silverlight 4

Augmented reality is a hot topic these days; do you see Silverlight being a big player with this type of experience? If so, what cool things can we expect to see and be able to do?

I think we’ve just entered real usable scenarios of augmented reality. I see it having a big role in retail and hospitality markets first and then perhaps something like healthcare. These are only my opinions of course, and perhaps driven by my own use patterns and desires :-)

One of our community members, Rene Schulte, recently released a Silverlight Augmented Reality Toolkit (SLAR) that is available for people to play around with http://slartoolkit.codeplex.com

– it’s very cool!

Question #7: What’s your favorite coding feature in Silverlight 4?

I’ve been asked this a few times and I’ve never landed on a particular feature. I like the ease that WCF RIA Services provides me for accessing data in a flexible manner.

Overall though I think it would have to be general LINQ support. I’ve really fallen in love with the ability to use LINQ everywhere and like the flexibility of it whenever I need it.

What do I wish we had? Anonymous type binding.

That’s tricky – there’s an awful lot of stuff coming in Silverlight 4 but I think if I had to pick out one addition it’d have to be the arrival of the Managed Extensibility Framework (MEF).

This is maybe less instantly appealing than visual features like HTML Display, Rich Text Areas or WebCams but I think in the long-run MEF has the potential to have a huge impact in the way that apps are written in that it
allows for the possibility of an application built out of a set of composable pieces that “discover” each other at runtime and which can also change at runtime.

That might mean for a Silverlight app I can quickly download one set of functionality and then download more over time or it might mean I can load additional functionality on demand as the user wants it.

For me, it’s a very cool addition to the framework.

Question #8: Question about the writable bitmap feature

Are there any plans to extend this to include output formats such as JPEG and PNG?

It is something that is requested, but not sure how high it will fall on the priority list.

I would recommend looking at FJCore (http://code.google.com/p/fjcore/) and Image Tools (http://imagetools.codeplex.com/) as current libraries that can help.

Question #9: Question about the new Rich text box control

The current beta version requires us to do a lot of work to get the rich text box to work. Are there plans to expand this control to make it easier to use or is that down to the community?

That may be too general of a question — I’d love to hear what issues you are having with RichTextBox (will be renamed to this from RichTextArea).

Some things we’ve heard:

- RTF support

- HTML support

Which we are looking at but have not solidified plans yet.

The RTF and HTML support sound great, one thing that would be cool is a default editor UI.

Question #10: I have a quick question about the compression levels of the XAP file in Visual Studio

In the current Visual Studio we don’t find the compression algorithm to be very good when creating the XAP file, so we use 3rd party tools to improve it. Will Visual Studio 2010 be better at compressing the XAP file?

Hmm, this one is interesting to me. In Silverlight 3 we invested a lot in better compression over Silverlight 2 XAP size and got pretty good results. What additional tools are you using (7-Zip?) and what additional compression percentage are you seeing? To my knowledge the tools haven’t changed much in this area for VS10 tools (although I’m doing a quick check now :-) ).

We use ReXapper and WinRar and still get better results, but of course it depends what content is inside the XAP file.

Question #11: I have a question about Search Engine Optimisation

Currently we have to build a separate HTML page to handle SEO, when will Silverlight allow the content from within its pages be searchable?

Silverlight apps (XAPs) themselves aren’t easily understood by today’s search engine bots. There are ways to make your content discoverable though by providing alternate content and sitemaps so that when the bot visits your app/site without Silveright, it will still have content to follow.

Assume a sample of a product catalog for an e-commerce store. You want search engines to index “bluetooth keyboard from microsoft” and have a direct link to that point in your application right? But if your ‘app’ is a Silverlight app, how do you do that?

By providing alternate content in the <object> tag of the HTML where Silverlight is instantiated, the bots can see a link to something like myecommercestore.com/products/12345 which represents a detail view of that
product. Using the Navigation APIs in Silverlight you can create unique URLs for any point of your application to enable this to happen.

We haven’t had good tutorials on this to date, I know that. Brad Abrams is doing an SEO/Silverlight session at MIX10 that you should subsribe to at http://live.visitmix…0/Sessions/CL50 for a walk-through of how to accomplish that.

Bottom line: it is possible, but isn’t ‘automatic’ from the runtime yet.

Silverlight content is not so visible to search engines even if it’s static content versus content that is pulled from some online-service and surfaced by Silverlight.

There are techniques to mitigate this and you mention one in the question which is around offering alternate content to a search engine. There’s a good sample here http://silverlight.n…re-seo-example/ which illustrates this technique and how you can use one set of data and surface it
via;

1) Silverlight

2) ASP.NET for downlevel clients and search engines

3) A sitemap to additionally help search engines

and it does it in a pretty productive way – worth taking a look if you’re interested in this area.

Question #12: I have some questions about Gesturing in Silverlight

Currently the gesture support for Silverlight 4 seems to pull the gestures recognized by Windows 7, I have experienced problems with this as the browser can sometimes gain focus and change its zoom level. Relying on the system also restricts this feature to Windows 7. Will Silverlight eventually manage gestures by itself and not rely on the system to pass them through?

Are there plans to generate a default gesture library within Silverlight?

Silverlight support for touch is provided by listening to the WM_TOUCH events. If other software is installed that also is doing this (i.e., for example HP TouchSmart devices come pre-installed with HP-specific touch software) — there may be times where something might be conflicting. I personally haven’t seen them, but if you have a specific scenario you can contact me direct and I can help triage.

As to gestures, we currently don’t natively support gestures in the runtime. However, I’d encourage you to check out http://touch.codeplex.com for an Open Source implementation for touch/gesture support for Silverlight and WPF.

I am all out of questions!

I would like to thank Tim and Mike for taking the time to answer all my questions and hopefully I might bump into you at Mix next week!

After playing with my first Photosynth: Create a 360 panorama using Microsoft Silverlight Photosynth, I wanted to try out how the tool would work focusing on a single object. This meant taking photographs around an object instead of taking pictures around myself.

As you can see in the above Silverlight example, compared to my previous Photosynth the feel of being in a 3d space is lost. However, the ability to zoom in and see the detail of each image is still pretty cool thanks to the Deep Zoom technology. And the ability to look around an object is still pretty smart. The tool feels like it is built to navigate around an environment instead of an object so the navigation controls don’t work as well, but you can still play the sequence in the order that you took the photos so all is not lost.

Below is another test I carried out, this time I moved the object around for each photograph instead of the camera. This didn’t work too well, as the Photosynth tool referenced the carpet as the common element instead of the object.

Next I want to test out a journey of photographs, maybe walking down a street in London would be cool.