views:

431

answers:

5

How can I embed a demonstration applet written in Silverlight within a blog post? Is it possible to do so using any hosted blog engines, or only using a blog engine that I host myself?

I assume that I will need to use the same tags and .js as in a regular (X)HTML page with a SL control. Are there any hosted blog engines that will permit me to enter this? (Is it possible with blogger?)

Does the SL security model mean that the XAP file need to be hosted on the same site as the blog pages itself?

+3  A: 

You can host a Silverlight app in HTML using the <object> tag, there is no need for the blog host to understand any of this. There is no server side element to hosting a Silverlight app its a purely client side thing.

<object id="SL" data="data:application/x-silverlight-2," type="application/x-silverlight-2" style="width:400px; height:300px">
  <param name="source" value="MySLApp.xap" />
  <param name="minRuntimeVersion" value="3.0.40624.0 />
  <param name="initParams" value="someParam=value" />
  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&amp;v=3.0.40624.0" style="text-decoration: none;">
    <img src="http://go.microsoft.com/fwlink/?LinkId=108181" style="border-style: none" alt="Get Microsoft Silverlight" />
  </a>
</object>

In this case the Silverlight app "MySLApp.xap" is placed in the same folder as the HTML page using it. However it could be on a different server if you like. However access to the HTML Bridge will be blocked but then if your app is self contained and does not need to communicate with the host page then there is no problem.

AnthonyWJones
A gotcha specific to Blogger: If you format the object tag as shown, Blogger may introduce spurious formatting tabs even though you're using the "Edit HTML" view. So for Blogger you need to ignore good style and put the entire block onto a single line.
Eric
+1  A: 

An easy solution that worked for me is just to use an iFrame. So I published the regular TestPage.html generated by Visual Studio to my web site (along with the .XAP file of course) and then embedded it:

<iframe src="http://www.lostbearlabs.com/sl/Spring001/TestPage.html" frameborder="0" width="400" height="400" scrolling="no" ></iframe>

Using blogger, I discovered this gotcha: Any attempt to make the HTML pretty (e.g. by splitting it into separate lines) causes blogger to insert spurious <br> tags into the output, even if I do my edits using the "Edit HTML" view. So the iFrame tag must all be on a single line!!

Eric
A: 

You might want to check your host has the required MIME types mapped:

http://learn.iis.net/page.aspx/262/configuring-iis-for-silverlight-applications/

according to this Server 2008 IIS7 should work out of the box but IIS6 may require MIME types adding...

Jason Roberts
+2  A: 

I created a Silverlight xap to host hero images OR video in my wordpress theme - I pass the content to it using initparams and custom fields per post.

That way I can use the same xap to host videos with media controls if appropriate or images with cool fade ins/click effects

example image post:

http://www.blackspike.com/site/html/display-google-docs-spreadsheets-in-wordpress

example video post (click vid for controls):

http://www.blackspike.com/site/wpf/hanselmans-babysmash

Both using the same xap!

felixthehat
A: 

Hi all,

The solution marked as answer above works well if the html page and the silverlight xap file are hosted on teh same server.

As this is not possible in most of the cases, as most of the bloggers use either blogger/wordpress. We do not have any way of setting the mime type on these hosting providers.

Here is a good link which explains in detail regarding hosting an silverlight application in blogger. http://dotplusnet.blogspot.com/2010/09/how-to-host-silverlight-xap-in-blogger.html

Cheers

KayKay