Tablet Developers on the blade runner future.

This Week in Silverlight – February 21 2010

What’s new in Silverlight This Week in Silverlight

Application of the Week

Life-size Windows 7 Phone Series Demonstrator.

Honorable Mention: Smooth Streaming Player.

Silverlight News


Guest Hosts

Brian Henderson is a Silverlight Designer/Architect and INETA Community Champion. A few of the activities Brian can be found participating are flying (pilot), kayaking, hiking, or just taking video/photos.

Kelly White is a Senior Software Engineer with He previously lead the PDXUX.Net user group, and now runs the Portland Silverlight User Group with Erik Mork. Kelly has presented at user groups and code camps throughout the northwest on both Silverlight and WPF.


The Sparkling Client Goes to Mix 2010!

I’ve submitted a couple of sessions for Mix 2010.  They’re guaranteed to be weirder than the ordinary submissions ;)   If you want to see these talks happen, please vote at the mix site.  There are a lot of other good sessions as well.

The Neuroscience of Great Silverlight

This session meshes up Silverlight and neuroscience.  It’s all about how good applications require an understanding of psychology.

10 Things to Know About Prism

Interested in Prism?  This talk is all about how you can get started with Prism.  It summarizes the podcasts and screencasts I’ve done on Prism for Silverlight and gives an overview of how to get started with Prism.

Partnering Silverlight and Monotouch – Silverlight on the Iphone (kinda)

Ever want to write Silverlight on the iPhone?  This talk is about how to migrate your apps to the iPhone (hint: use MVVM).

The Number 1 Ux/Design Tool – The Trashcan

Why is Apple so amazing at design?  I think it’s because they know how to use the trashcan.  This session covers my thoughts on our mental hangups to writing great designs.

Resizing Silverlight Layouts

Silverlight is running on a lot of different platforms.  What are the secrets to making your application look nice everywhere?  This talk is all about those secrets.


Silverlight Tour Now Supports Silverlight 4

Shawn has been working hard, and we’re happy to announce that the Silverlight Tour now includes Silverlight 4.  Within minutes of the Silverlight 4 release :)   Shawn’s got the inside track.

Our next stop is in Portland on December 2nd – 4th.

Other upcoming stops include:

Atlanta, GA – December 7-9, 2009 (Almost sold out!)

Caracas, Venezuela on Dec 7-9

Silverlight Tour

Vertigo is Coming to Portland!

Vertigo is coming to Portland!  A little secret: They’re already a PLATINUM sponsor of the Portland SilverLight User Group!  Wahoo.

Well done Vertigo.  We’re going to make Portland a Silverlight Powerhouse.

Silverlight 3 Firestarter in Portland

Announcing: Silverlight 3 Firestarter Simulcast in Portland, September 17th.

Scott Guthrie keynote followed by presentations from Tim Heuer, Brad Abrams, Karl Shifflett and others.


Register here.


The Connected Show

Dmitry Lyalin has been a longtime friend/supporter of the Sparkling Client.  Along with co-host Peter Laudati, he’s doing his own podcast:

The Connected Show


Their latest show talks about PRISM in Silverlight and features Shawn Wildermuth.  If you’re looking for tech podcasts, make sure to check this one out!

10 Things to Know About Silverlight Prism


Prism is one of the hottest topics in Silverlight.  Here, I provide the top 10 things that I think every developer should know about Prism.

For a great write-up on Prism, I recommend:

Shawn Wildermuth’s MSDN article.


1. Prism is a collection of libraries for implementing best-practices in Silverlight

Now, Prism actually contains more than just the libraries (it also has source code, examples, quickstarts and excellent documentation), but the key thing is that Prism is a tool for creating testable/maintainable applications.

Silverlight Prism VideoSilverlight Prism Video

2. Prism is a Buffet (term coined by Shawn Wildermuth)

Prism has several different tools, and you can use any or all of them at your discretion.  It’s not a heavy-weight framework.  You can use Prism selectively.

Sparkling Client PodcastIntro to Prism Interview

3. Finding and Installing Prism is Confusing

For whatever reason, it’s hard to find and download Prism.  Actually, it’s not difficult; it’s just hard to get properly oriented.  For one thing, Microsoft sites refer to Prism as the “Composite Application Guidance”.  For another, the source appears to be on CodePlex, but it’s actually on MSDN.  So there’s a bit of a run-around before you can get up and going with Prism.  However, it’s great code and jumping through the hoops is worth it.

Sparkling Client Podcast Downloading and Building Prism Guide

4. Prism Supports Modularity

Prism is chock full of support for breaking applications down into manageable pieces.  It supports Unity for Dependency Injection and Service Location.  It also has a Module Catalog which manages the loading of .dlls and .xap files into Silverlight applications.  If you’re interested in application testability and maintainability, modularity is for you.

Silverlight Prism Video Prism Modularity Video Sparkling Client Podcast Prism Modularity Interview

5. Prism Supports Master Pages – Regions

Regions allow the visual parts of an application to be separated out and developed independently.   It’s similar to how master pages are used in ASP.NET.  If you’ve ever wanted to hand out UI tasks to different development teams, this is the tool that will make life much easier.

Silverlight Prism Video Prism Regions Video Sparkling Client Podcast Prism Regions Interview

6. Prism Supports Loosely Coupled Communication – Eventing

Once you’ve broken an application into multiple pieces, there’s always the question of how do these pieces communicate?  Especially, how do they communicate when they aren’t supposed to know about each other?  Here, Prism Eventing steps into the gap and provides communication infrastructure.

Silverlight Prism Video Prism Eventing Video Sparkling Client Podcast Prism Eventing Interview

7. Prism Supports Commanding – Help for MVVM

MVVM/Presentation Patterns are powerful patterns for building testable and scalable Silverlight applications.  Unfortunately, they require Commanding (the ability for the XAML/Interface to directly communicate with ViewModels/Presenters), and raw Silverlight 2 doesn’t have this functionality.  Prism Commanding comes to the rescue and uses attached properties to enable this scenario.

Silverlight Prism Video Prism Commanding Video Sparkling Client Podcast Prism Commanding Interview

8. Prism Supports Sharing Code Between Silverlight and WPF – Multi-Targeting

Silverlight and WPF are pretty similar.  They both use XAML, and they have similar libraries they can call.  Unfortunately, they’re different enough that you can’t add a reference from Silverlight to a WPF .dll (or vice versa).  The way to share functionality between these technologies is to share code between projects.  Enter the Project Linker.  This is an application that makes it easier to share code between Silverlight and WPF.

9. Most Silverlight Applications can Benefit from Prism

Prism isn’t the answer for all applications, of course.  There are some apps (small applications, media applications and possibly games) that Prism might not help with, but in general the patterns are widely applicable (Dependency Injection, Commanding, etc.).  Even if you don’t use Prism, the patterns in Prism are still valuable.  In fact, there are other projects such as Ninject and Caliburn that implement some of the same patterns as Prism.

Sparkling Client Podcast When to Use Prism Interview

10. Prism Helps with MVVM/MVP

Prism doesn’t directly implement either MVVM (Presentation Model) or MVP patterns.  Instead, it provides support (example: Commanding) that makes these patterns easy to implement.  See the Reference Implementation and Quickstarts for examples on how to implement these patterns using the support that Prism provides.

This post uses the free Function Icon Set.

Downloading Prism

As of Prism v 2.2 it looks like this information is starting to fall out of date.  Use at your own discretion :)


Prism is amazing. It was pretty much made by geniuses.  Unfortunately, it’s kind of hard to figure out 1) where to download it and 2) what to do with it after you’ve downloaded it.  This is a guide that shows you how to get up and running with Silverlight Prism:

1. (optional) Go to the Prism Codeplex site.  Look for the download.  However, it’s a trick.  The Prism code is actually on MSDN.


2. Go to the MSDN site. Where you’ll find 3 confusing links.  Unless you’re interested in multi-targeting (sharing source between Silverlight and WPF sites), all you need is the first one.  Download the “CompositeApplicationGuidance-xxx.exe” file.


3. Launch the .exe and select a folder.  The Prism source will be extracted there.  Be patient.  This will take a few minutes.

4. Browse to the folder with the source.  Notice the help file.  This file has a lot of great information about Prism.


5. Dive into the “CAL” folder.  Probably stands for “Composite Application Library”, but no one knows for sure ;)


6. Select the “CompositeApplicationLibrary.sln” file.  *Don’t* select the “Desktop” version (this is for WPF).


7. Close the “Desktop” folder in the solution.  This is for the WPF source.


8. Consider whether you want a debug or release version of the libraries.  One handy trick is to create a debug build, and then make sure that the Prism source stays in its present folder.  That way, whenever you’re debugging your applications, you’ll be able to see Prism Source information on the call stack.


9. Build the Solution.

10. Navigate to the “..\CAL\Silverlight\Composite.UnityExtensions\Bin\Debug” (or, if a release build, “..\Bin\Release”).

This folder has the 5 key Prism assemblies:

  • Microsoft.Practices.Composite.dll
  • Microsoft.Practices.Composite.Presentation.dll
  • Microsoft.Practices.Composite.UnityExtensions.dll
  • Microsoft.Practices.ServiceLocation.dll
  • Microsoft.Practices.Unity.dll


Update (thanks to Ian Smith)

11. The pdf documentation for Prism can be found herepdf_doc (thanks to Ian for the screenshot):


Behaviors in Blend 3 – Podcast

In this podcast, Erik gives an overview of Behaviors.  What are they and what are they good for?  They’re one of the most powerful features in the upcoming Silverlight 3 and Blend 3 world.  They allow designers to handle user interactions in XAML, and they also provide a clean division of concerns. Unfortunately, in the Blend 3 Preview, there aren’t any behaviors included.

For example code, see the Behaviors in Blend 3 companion screencast.

Hyper-video screencast site

Interested in Silverlight 3?

The Silverlight Tour now supports Silverlight 3!  For more information and class dates see:  here .  The next class is April 6th-8th in Chicago, IL.  It covers Silverlight 2 and *now* Silverlight 3:

  • The Out-of-Browser experience.
  • Use Pixel Shaders and 3D transformations.
  • Build Behaviors.
  • Styling Improvements including Merge Dictionaries and Based-on Styles
  • Data Validation using the Control Model
  • Working with Binary XML
  • Using the new Bitmap APIs
  • Blend 3 Preview Coverage

Silverlight Tour

<-- -->