Building Silverlight Applications using .NET

Check that article by Scott, describbing how easily we can build Silverlight applications with dotNet:

I’m just about to hop on the flight back to Seattle after finishing up a 10 day business trip to Europe where I spoke at conferences and user group events in Budapest, Amsterdam and Zurich. Although trips like these are a little exhausting, I find them really valuable as a way to connect with developers from around the world, as well as provide me the opportunity to create and deliver new presentations and samples.

One of the talks I delivered on this trip was a new “Building Silverlight Applications using .NET” talk that people seemed to really like.

Building Silverlight Applications using .NET Talk

I tried to keep the format and samples in this talk simple, and used a model where I used a few slides to explain each programming model concept in Silverlight, and then showed a very simple sample for each concept that helped demonstrate concretely how it worked.

In the talk I covered:

  • XAML
  • Using Shapes and Text
  • Using Controls
  • Layout (Canvas and Layout Managers)
  • Brushes
  • Transforms
  • Handling Events and Writing Code
  • Building Custom UI Controls
  • Reaching out and Programming the HTML of a page from a Silverlight control
  • Handling HTML Events in Managed Code (e.g. html button click handled in C#/VB on the client)
  • Exposing managed APIs to HTML JavaScript in the browser
  • Using the File Open Dialog support
  • Using the HTTP Network APIs
  • Using the Web Service APIs
  • Isolated Storage for local data caching

The slide deck comes to 83 slides – but I think does a good job of explaining everything step by step (it is also an easy deck to read – so even if you don’t want to run the samples locally I’d recommend taking a look through the deck since I think you’ll find it useful). You can download the slides + demos of this talk below:

Included in the .zip download are readme instructions on how to run all of the samples on your own machine.

Quick Answer to a Common Question about .NET with Silverlight

One of the most common questions I received when giving the talk was – “do I need to have the .NET Framework installed in order to use Silverlight?”. The answer to this is no – a cross platform version of the .NET Framework is included in the 4MB Silverlight 1.1 download, which means you do not need to have anything extra installed on the client in order to program Silverlight with a .NET programming model in the browser.

The Silverlight version of the .NET framework includes the same CLR engine (same GC, type-system, JIT engine) that ships with the full .NET Framework, and a subset of the .NET Framework namespace libraries. You can see the full list of all classes/namespaces that are included by opening up the Object Browser when you create a new Silverlight application using Visual Studio (click here for a sample screen-shot of this).

People are usually pretty stunned/confused to hear that it is possible to get this much stuff in so small and quick an install package. Let me just say it wasn’t easy.

Other Silverlight Talks and Blog Posts

For a broader overview talk of Silverlight, as well as some cool (more complete) samples you can download, please check out my previous “Lap Around Silverlight” talk and blog post here. You can learn even more about Silverlight from my summary post here. And you can watch me build a Silverlight application using .NET from scratch in this video here.

The talk above borrowed a number of slides from a few other Silverlight and WPF/E talks that others and I have given (although almost all of the code samples I showed in my talk are new). In particular, my WPF/E talk from earlier in the year, Jamie Cool and Nick Kramer’s Two Talks at MIX, and Stefan Schackow’s Extending the Browser Programming Model with Silverlight talk at MIX. You can watch Jamie, Nick and Stefan’s talks online (along with all of the other MIX talks) for free here.


Leave a Reply

Your email address will not be published. Required fields are marked *