6 Jun
2008

Tech Ed Session: Architecture Patterns of RIAs in Silverlight

Category:UncategorizedTag: :

Bob Familiar is an architect evangelist from Microsoft who talked to us about how RIAs are put together, with particular focus on SilverLight. This was a rather ad hoc session for me as the ShrePoint session I was headed to was canceled. Here are the notes I took in session.

Bob built his own music site, Sounds Familiar, in Silverlight to showcase the technology and it is the focus of this session. He used all the ideas in this presentation in building the site. Indeed, we spent the session looking at the source code of this site. Neato.

  • Silver light has a native networking stack in the runtime
  • REST and SOAP communications are supported directly from the client at runtime.
    • SOAP uses a proxy, like always
    • REST uses WebClient, like always
    • In both cases, the service being invoked must provide a basicHttpBinding endpoint.
    • To enable cross domain service calls, put a special XML file on the root of the server you are trying to hit. This helps prevent cross domain service attacks.
  • The plugin is ~4M in size. No big deal because is is really just a container. This is 2.0 we are talking about here. This is similar to Flash.
  • Given that designers are working with XAML via expression blend, it is likely time for them to learn about source control.
  • Creating a control for a Silverlight application is just like creating a control for a WPF app, you just use a different base Control class. Why no interface to implement here?
  • Aspect ratio is maintained despite scaling as a brownser window might shrink, for instance. This is cool because maybe we won’t have to declaratively set size and let the Silverlight app float in the page. Cool.
  • I can make a managed code function acessible by Javascript. This is cool and it works both ways.
    • I can call a JS function from my managed code.
    • I can call a managed code function from the JS in the containing page.
  • Databinding is there for the data you are pulling out of those services.
  • Resource files are supported for plenty of uses, localization based on IP would be neat, eh?
  • You can create custom controls for reuse, which makes total sense.
  • Deep Zoom is cool. What a great way this would be to render X-Rays in a doctor’s office, eh?
    • There is a tool, Deep Zoom Composer, that creates a binary file of your image that can be streamed and zoomed. 
    • Hard Rock cafe is using this to let people examine all their memorabilia. Cool.
    • You can embed images within images. Look at the stamp on the envelope in the 5th row from the bottom, on the left. Zoom into the stamp on this envelope.
    • After you play with that, think about this: What if that were a navigation metaphor for a file system? Going down, coming up through the directory structure or something. Trippy.
  • Get this: Expression Studio can import Adobe illutrator files and make XAML out of them. Now there’s a awesome gig. Can this port my current Flash animations?