Welcome to irritatedVowel.com Sign in | Help

POKE 53280,0: Pete Brown's Blog

Silverlight, WPF, Woodworking, .NET Programming, CNC, Nature, and other topics.

Pete Brown writes on a number of topics including Silverlight, WPF, .NET, woodworking and working as a consultant in the DC area. On most forums, Pete goes by the name Psychlist1972. Pete has worked at Applied Information Sciences (AIS) since 1996 where he currently performs as a lead architect and project manager.

Subscribe to my feed

Add to Technorati Favorites
Applied Information Sciences - My Employer

Community Events



World Domination

who's online

Networks


View Pete Brown's profile on LinkedIn

AddThis Social Bookmark Button

Silverlight Install Experience for MSDN East Coast News

I’m putting the finishing touches on our first beta of MSDN East Coast News and decided to provide a customized install experience.

The out of the box installation experience looks like this:

image

That works, but really isn’t acceptable for this application. It doesn’t show the user why they would want to install this application.

FWIW, I have the same beef with adding applications within facebook. The “add application” UI (now the same thing for the “allow access” UI) doesn’t give you any hint as to what the application looks like or what it might do:

image

Now, you can click through on the link and see what the application is all about, but it would be better to have the app author put something on this page that showed you what you were getting into. Anyway, I digress, but the point is you want to provide the user with some information that will allow them to make an informed decision when they are presented with the prompt to install the software.

So, here is the customized install experience I put together tonight:

image

Don’t hate me for that orange color, I hate myself enough for it already (I will likely change it <g>)

The simple customization was very easy to build. All I needed to do was provide a couple images and some markup:

<asp:Silverlight ID="silverlightControl" runat="server" 
                Source="~/ClientBin/AppliedIS.PartnerHuddle.xap" 
                MinimumVersion="2.0.30523" Width="100%" Height="100%">
    <PluginNotInstalledTemplate>
        <div width=100%; height=100%;">
            <img style="position:absolute; top:0; left:0; z-index:5" src="Images/EastCoastNewsGetSilverlight.jpg" />
            <div style="width:363px; height:235px; position:relative; z-index:10; margin-left:380px; margin-top:30px;">
                <h3>Get Microsoft Silverlight 2</h3>
                <p>MSDN East Coast News requires Microsoft Silverlight 2 
                to provide a rich integrated media experience. Silverlight 
                is a small, safe, cross-platform browser plugin created 
                and supported by Microsoft.</p>
                <p>By Clicking "Click to install", you accept the 
                <a href="(license url)" target=_blank>Silverlight license agreement.</a>
                <br />
                Silverlight updates automatically, <a href="(privacy url)" target=_blank>learn more</a>
                <br /></p>
                <div align=center>
                    <a href="(install url)">
                    <img src="Images/GetSilverlightButton.png" style="border:none;text-align:center" />
                    </a>
                </div>                    
            </div>
        </div>
    </PluginNotInstalledTemplate>
</asp:Silverlight>

(I removed the URLs above because I’m waiting on official guidance before I publish anything with the three URLs listed. I wouldn’t want you to refer back to this entry in a year and wonder why the URLs don’t work.)

The example above uses the asp:Silverlight control, for Silverlight 2 Beta 2. Inside the <PluginNotInstalledTemplate> you put in any markup you wish the user to see if they do not have Silverlight already installed. This markup is typically a prompt to install Silverlight, but it could also be alternative content in HTML or Flash if you so desire.

In my version above, the content is a single background image I put together from app assets and screenshots in PhotoShop, some markup explaining what Silverlight is, and a button (image) which links to the Silverlight 2 installer.

To test, simple disable the Silverlight plugin in IE and then hit your page.

image

image

There are other ways to detect Silverlight and provide an alternative experience (script, browser sniffing etc.). If you plan to have more than one instance of Silverlight on a given page, you’ll want to investigate those methods in order to provide a single install prompt, rather than bombard the user with multiple prompts.

You can also do some very clever things with page refreshes and whatnot. I didn’t do any of that here, in part, because the intended audience for this application will likely already have Silverlight installed.

  Add to Technorati Favorites
Posted: Monday, September 01, 2008 11:17 PM by Pete.Brown
Filed under: , ,

Comments

Christopher Steen said:

Link Listing - September 1, 2008
# September 2, 2008 2:32 AM

Community Blogs said:

Koen Zwikstra with Silverlight Spy, John Papa on UserControl from Popup Control, Shawn Wildermuth on
# September 3, 2008 1:46 AM

Voytek said:

Excellent tutorial. Thank you.

# September 3, 2008 7:25 AM

Community Blogs said:

First today as a USArmy veteran (1970-1973), I think I would be remiss in not remembering 9-11-01. Roger
# September 11, 2008 3:14 PM

POKE 53280,0: Pete Brown's Blog said:

My primary Silverlight project for the past couple months has been the Facebook application I’ve been
# September 21, 2008 2:26 AM

Noel said:

FYI, the PluginNotInstalledTemplate does not work with IE6. Pretty big deal if you ask me.
# November 5, 2008 3:12 PM

Pete.Brown said:

@Noel Sure it does, you just need to make sure you actually have Silverlight uninstalled to see it. While that's a bit annoying from a devtime experience, the end result is as expected. http://silverlight.net/forums/p/34311/104210.aspx Pete
# November 5, 2008 3:28 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

Enter the text you see in the image:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS