×

First time here?

You are looking at the most recent posts. You may also want to check out older archives. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS or email. Thank you for visiting!

Man, I feel like I’m constantly on this soapbox about creating a good non-installed experience.  I’m recently sparked again by reading a recent post from Pascal Leloup entitled “Silverlight – It’s too damn complicated to setup.”  These are the times that I wish I could sit next to every developer at the moment they experience this frustration.

Part of the time it can be dealing with beta software (as is the case in one of Pascal’s scenarios here), and others I think just take some time to understand the why behind certain things.  Let me take a stab at some things here for Pascal’s (and hopefully yours too) benefit.  While his specific example was around a media player, some of these concepts go far beyond that.

ASP.NET Media Control

If you use the ASP.NET Media Control (<asp:MediaPlayer/>) you get some ease of being able to just drop it in, attach a media source (WMV/WMA/MP3) and you get a player.  One thing to note though is that the output is a Silverlight 1.0 application, not a Silveright 2 experience.  The scripts and templates for the ASP.NET Media Control are embedded resources.  You can certainly supply your own skin, but have to create it.  The documentation for the control are available here where you can see how it can be used, how you can use Javascript to program against it, and how you can use various MediaSkin files or create your own.  In my honest opinion, this is a good start, but will not likely get you to a customized user experience for the media playback experience.  Additionally, you can customize the ‘not installed’ experience as it exposes the PluginNotInstalledTemplate property that you can put whatever you want there.

Pascal says:

“…they have to make sure the Media player ASP.Net user control continue to be updated or maybe put it back to the Ajax Control Toolkit as an open source project, to be sure the community can improve it.”

I will be honest and say I’m not sure if the skin thing with using Javascript will be changing by Silverlight 2 timeframe…but the necessary scripts, etc. are continually being updated.  As I’ve said (sorry ASP.NET team), I think if you are looking for a highly customized experience, this may not be the control for you.

Silverlight.js

I’m assuming that Pascal probably is a Firefox user and the initial use of the script was continuing to show the install badge logo.  Based on the comments, it sounds like really outdated tools.  The script available on MSDN (which is the latest) has the proper install links and also fixes the problem with Firefox 3 detection.

Keep in mind though this is just a script.  It isn’t going to automatically do everything for you.  It should be considered an SDK tool and help you do some detection and provide alternate content to the user if the plugin is not installed.

Silverlight control

I assume here Pascal means the <object> tag and thus a Silverlight 2 application.  It looks like for the most part he got this working (with some media problems that I’m happy to try to resolve; oh and Pascal the media stretch fix has been checked in to the Codeplex project).  As to the Firefox 3 ‘official’ support…Silverlight 2 is still in beta and we’ve already said that we’ll be supporting Firefox 3.

Pascal comments:

“The other matter is to get a much cleaner way to implement easily Silverlight 2 on an ASPX page. Why not doing something like the Listview, with a template part where we can put our own installation links?”

Actually you can.  There are two ways you can do this, but let me show you a snippet, first using the ASP:Silverlight control:

   1: <asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/_SilverlightApplication1.xap" 
   2:         MinimumVersion="2.0.30523" Width="100%" Height="100%">
   3:     <PluginNotInstalledTemplate>
   4:         <a href="http://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;">
   5:             <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
   6:         </a>
   7:     </PluginNotInstalledTemplate>
   8: </asp:Silverlight>

Which essentially would be the same as:

   1: <object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" 
   2:     width="100%" height="100%">
   3:     <param name="source" value="ClientBin/_SilverlightApplication1.xap"/>
   4:     <a href="http://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;">
   5:         <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
   6:     </a>
   7: </object>

So you can see that ASP.NET does provide a method for putting Silverlight applications there using the ASP:Silverlight control and also exposes the PluginNotInstalledTemplate object for you to customize.  In the non-ASP.NET example, you can see that the alternate content is provided after the last <param> tag in the <object> tag.  What will happen here is that if the <object> tag is not understood, it will render the HTML it can understand.  You can see more about this on this screencast.

“Big Huge Icon”

Pascal notes:

“They automatically put a big huge icon in your face without any explanation at all to tell your grandmother what the hell to do with this bluish Silverlight logo? Super.. what?  I’d loved to add my own touch, an help button, a new logo, no hope.”

On the last sentence of no hope to add your own touch, he couldn’t be further from the truth…more on that in a second.

On the first note: I couldn’t agree more!  I get frustrated when I see the Get Microsoft Silverlight install badge.  But the challenge is that it is the best default for people who aren’t customizing their experience.  We could have come up with a super creative, very descriptive image, but what if the Silverlight content is only 10x10px?  As it stands now, the default image wouldn’t look good in that scenario!

The point here is that the developer must own the install experience.  Silverlight isn’t on every desktop, let’s be honest.  The focus in the ‘not installed’ experience should be your content/company and not Silverlight.  It is important to keep the Silverlight branding at some level because once they click install it will show them the Silverlight installer and you want to keep continuity in the message of what they are installing.  Outside of that though, you own that space.  Maybe I should lobby to change the Visual Studio templates to add comment code instead of the default badge so that it reads:

   1: <!-- PUT YOUR CUSTOM PLUGIN NOT INSTALLED EXPERIENCE HERE -->

I’ve already written about some good examples of doing this.  It was even pointed out in the video player Codeplex project that I participate in, that we didn’t have guidance on that.  I cringed a little bit to even provide a sample, because I really believe the web site should own that experience…but I at least put a sample in the documentation.

When Silverlight ships we’ll be providing an updated installation guidance document talking about the various ways you can do this, with some clear samples of the SDK methods of detection of upgrades, non-installs, browser refresh/restarting, etc.  The one thing the document won’t do, however, and that is provide you that alternate HTML.  Why?  Because the non-installed experience is about your content, not Silverlight.  Imagine how you feel now when you see the “big huge icon” – it doesn’t make sense right?  Neither will it to your customers if you don’t provide them with information.  And don’t ask Microsoft to provide the samples…why would you want Microsoft to design/describe the content from your organization?

Summary

Sorry to keep repeating, but it’s about the content, not Silverlight.  Content is king.  If you are looking for a gallery of ‘not installed’ template experiences, stop looking – it doesn’t make sense.  Your brand in your application/site/organization is important and won’t be found in any templates.  Even other rich platforms don’t provide custom templates.

Be sure to take time to add this as a work item to your projects using Silverlight…don’t forget about it.  This is an important step in early adoption of your content in Silverlight and you should take time to nail that experience.  As I mentioned, we’ll provide updated guidance on any new settings/APIs that you can tap into to make the most out of that experience and minimize the impact to your end-user.

Related Resources:


This work is licensed under a Creative Commons Attribution By license.


9/8/2008 2:48 PM | # re: Silverlight install experience too hard?
Hi Tim

Wow you've been busy replying my post ;-) Now thanks a lot I appreciate the answer but Ialready done what you suggest here, by following your own advice or using your own video control tool.
Now yes it's working, but maybe I was not clear enough in my post, the integration of Silverlight and ASP.NET is not yet a success. I am an early adopter of .Net, so I think I gathered some good experience on ASP.NET, and for what has been its success was the ease you can embed a control, chnage few parameters and voila! With Silverlight, and I accpt it's still Beta, we have three versions of the sam technology, with no apparent relationship, and as your answer show it clearly, not a clear way to make things working. Regarding Firefox 3, I still think it's urgent MS move fast, because this version has been already downloaded by millions of people. Now I still think the Flash plugin experience is far better than Silverlight. Now I have to add I find Silverlight approach to coding much more powerful than Flash!
One last thing, I don't understand wht the ASP.NET Media Control can't be adapted (through Service Pack) to fully support Silverlight 2.

Paschal
9/8/2008 2:57 PM | # re: Silverlight install experience too hard?
Also Tim I used the object approach because the silverlight.js didn't worked well for me.
I also used your excellent video player application.
I want to add somthing on the Media Control. Why not pushing the paradign of control attributes like in any .Net standard control and adding things like PlayButton templates or ForwardButtonColor?
I think it will make the job easier for the developers who want a Silverlight experience but don't have the tools or just the time to edit/create a XAML application.

Paschal
9/8/2008 8:13 PM | # re: Silverlight install experience too hard?
Paschal: these are all good comments. By your blog post I really think you were dealing with older bits. 1.1 install links are not a part of any Beta 2 bits...so either there is some remnants left on your machine or they are older ones. As to the ASPNET media control, it's conceivable that they may extend to support v2 templates, but I think it is really just a helper control to be honest. The documentation points out how you can customize the XAML to add templates as you note to things like PlayButton, etc. I don't think we'd do like I think you are suggesting, because the nature of Silverlight *is* XAML. Providing a templat mechanism that doesn't accept XAML doesn't make sense in this scenario.

I think for now they wanted to provide at least some level of server-side control. The templates they use are the ones from Expression Encoder...so in some sense, they are relying on others to create them. And as I say, I bet over time they will enable a v2 template. The goal of that control, though, as it provides...I don't see much value in providing a v2 control unless it provides any more value...right now the templates provide playback capabilities...unless a v2 one would provide 'better' playback capabilities, I'd wonder if it is time well spent.

FF3 support: it is coming, we've said that. We're just in a beta release cycle and so were they. They released before we did. We decided not to release an additional beta release because even in beta it isn't 'officially' supported. FF3 will be a supported browser for Silverlight 2...we've said that. The work is there, the tests are being done. The updated script was a fix to those who were using the silverlightjs file for install detection and is still valid. The FF3 break in that file has since been fixed.

We only have 2 versions of Silverlight: 1.0 and 2. 1.1 was an alpha preview that was never deemed production ready at all. Anyone using it now is doing so in error. Any tools showing links to 1.1 SDK/installers are outdated tools. I've not seen the experience you've described, but could imagine it is possible if there is a conflict of tools -- and as you note, us early adopters always get our hands messy in betas :-)!

I appreciated your post -- the concerns aren't uncommon, but the first 2 points just smelled of outdated bits. If you are still experiencing them, I'm happy to remote desktop to visibly see them and fix.
9/8/2008 8:27 PM | # re: Silverlight install experience too hard?
Tim,

We took your advice and created a branded experience, try it at www.buzzoggi.com Should we have done more?
9/8/2008 9:05 PM | # re: Silverlight install experience too hard?
Steve: no I think what you have is appropriate. If anything I'd say it should be relative to the size of the screen. Right now it sits in the upper/left corner, but aside from that at least it displays a relevant message!
9/9/2008 12:21 AM | # re: Silverlight install experience too hard?
Hi Tim,

As you note it is actually quite easy to customise the installation experience in Silverlight 2 B2.

I blogged about this last week here because I thought it was so easy compared to previous releases:

www.bbits.co.uk/.../...ence-for-silverlight-2.aspx

Cheers

Ian
9/9/2008 1:30 AM | # re: Silverlight install experience too hard?
Thanks Tim dor the help. I like to try quickly with FF3 compatibility because I have a project ready to go now!
Any chance to be in the loop for that ;-)

Paschal
9/9/2008 9:23 AM | # re: Silverlight install experience too hard?
Hi,Can you please help me? I am 88yrs old and Silverlight is way above my Head. I have not installed it, and every time I close down Iget notification not to turn off computer as 1 download will be installed etc. The Download fails every time. So far I have not been able to DELETE it. At my age I am only a learner and quite happy with other Windows items, but this failure download is very frustrating to say the least. I would appreciate any help you can give. Cheers.
9/15/2008 1:00 PM | # re: Silverlight install experience too hard?
Does anyone have any suggestions on how to make the installation process more amicable where the user doesn't have admin rights.

Previously, we rolled out a SL 1 application and are in the process of rolling out an enhanced site with some additional functionality using SL2B2, and have changed the existing control to 2B2 rather than 1.0.

We had some adverse responses to the first SL control, namely around the installation process, and users not having Admin rights, and requiring that IT do the installation. These concerns have continued to be raised as we push out another version in 2B2, and the 3.0 or whatever the full first RTM version will be.

Any Ideas, suggestions some may have would be greatly appreciated.
1/19/2009 10:11 AM | # re: Silverlight install experience too hard?
Hello all,

I found this website very helpful when I had some issues with silverlight installation, I strongly recommend you all to visit their blogs for any information.

http://www.camelotis.com/blog/

I got some prompt reply via e-mails.


 
Please add 4 and 7 and type the answer here:

DISCLAIMER:

The opinions/content expressed on this blog are provided "ASIS" with no warranties and are my own personal opinions/content (unless otherwise noted) and do not represent my employer's view in any way.