Here is some follow up information from Cal Schrotenboer's webcast on Silverlight animation. Cal provided some very useful information and links in his responses below. Many thanks again to Cal for being a guest on geekSpeak!

Can you compare (at a high level) Silverlight 1.0 and Silverlight 2

Here's a feature matrix comparing Silverlight 1.0 and Silverlight 2. Obviously the most important new features are:

  1. Code behind support for C# and VB.NET
  2. A host of new controls (buttons, textboxes, datagrids, grids, stackpanels, etc.)
  3. Support for Styles and Templates

Other significant new features include isolated storage and LINQ support.

You stated that one can’t animate the visibility property in Silverlight, can you provide a link to an article explaining why?

The answer to this question is contained in a CodeProject article which I wrote: "While elements with an opacity of 0 still respond to mouse events, elements with a Visibility property of "Collapsed" do not. At first I thought that I would simply animate the Visibility property of each image shifting it from Visible to Collapsed as necessary and vice versa. This approach turned out to be a dead end since Silverlight does not support DiscreteObjectKeyFrame animations which are required for animating the Visibility property."

Where can I find the Link to the "dragging trick" from Jesse Liberty?  Also referenced in

In Silverlight 1 I would call additional jscript in the createsilverlight.js . I also would create certain delegates as well. Now with 2.0 we no longer use the createsilverlight.js we used to make the call. I've looked at the params and could call script from the onLoad. Is there any other method you would recommend?

This question seems a little ambiguous to me. If it is asking whether there are alternatives to using an object tag to request a .xap file containing the Silverlight Host Control I would first wonder why someone would want to do that. Adam Kinney seems to be pretty pleased with this new approach.   One particularly nice feature of this new approach is that Visual Studio collects all of the files which your application needs, including for example graphic images, and places them in this .xap file for convenient deployment.

Pete Brown lists the following advantages of the .xap file approach:

  • Compression greatly reduces the size of the download for the user. This is a big deal for performance.
  • The single-file deployment model makes web deployment easier and cleaner o If you want to create a portable application (we're doing one of those this spring/summer), all you need to deliver to someone is the xap package and, if they don't have something set up already, the page html markup to display the control
  • You can store the xap in a document library in SharePoint 2007 and serve up your Silverlight content from there. (in 1.1, there were issues with the path names for the DLLs)

Microsoft has published a Word file entitled "Basic Concepts of Silverlight Development"  . This document states: "If you are familiar with the Silverlight 1.0 technique of using the Silverlight.js script, and calling a JavaScript function to load up the Silverlight control, that approach still works, but it’s not how the Silverlight wizard chooses to set things up." So you can use the old method (Silverlight.js) if you prefer even though MS recommends the new structure.

Here's another example of using the old Silverlight.js & CreateSilverlight.js approach.  This author (Alex Golesh) suggests that you might want to do this in order to "fine tune some properties or use single point of creation for multiple Silverlight components in a single page".

On the other hand, if this question is asking if there is another option to setting the parameters to the Silverlight Host Control in the onLoad method, the answer is more complicated. In the first place, it would be quite inadvisable to try to set these properties after the onLoad event handler because these properties are required for the initial layout. Some properties can now (effectively) be set in the root element (UserControl) of the principal .xaml file (called Page.xaml by default). For example, here is where you could set the Height and Width properties of your Silverlight content as well as the background color which you would like to use. However, you normally would set these parameters in the object tag for the Silverlight Host Control or in its child parameters.

Interestingly, Pete Brown points out that you can place a call to CreateSilverlightEx in a custom splash screen. So here is an example of an alternate location from which these properties can be set. This topic is also quite nicely covered in the official Silverlight documentation.