Saturday, February 2, 2008

Let it Bleed - On the Edge with Silverlight 1.1 Alpha - Part 1

So I found an excuse to get my hands dirty with Silverlight 1.1.  I'm involved in campus recruiting for my company, and each semester we give an employer presentation that involves a talk about the company, then a short demo of some current Microsoft technology.  Generally, I give the spiel about the company, then organize some other folks to show off the technology.  I decided to flip it this semester, so that I could devise some way to show off Silverlight.

Facebook felt like a good place to start.  For the Fall semester, we had given a presentation about using the Facebook API, and it had resonated.  As far as I can tell, Facebook adoption among college students runs about 100%.  It permeates every aspect of their lives, so talking about how to work with the Facebook API has built-in relevance. 

Then I wanted to think of something that exercised a broad range of the Silverlight feature set.  Graphics, audio, video, animation, the works. 

It was also a project that would give me a chance to learn in an enjoyable way.  That is -- dive right in, try things, see if they work.  If they don't work, dig into resources to find out why. That's one of the reasons you'll find that developers work on projects on their own time.  When a client is footing the bill, you can't be quite so free. 

However, there were a number of times during the project where "enjoyable" wasn't the adjective I would have selected.  The fact that Silverlight is alpha software meant that there were hiccups, blind alleys and mysterious behavior.  Even more brutally, the documentation and online resources are not terribly mature.  It's funny -- in the space of seven years or so, the development process has changed completely.  It used to be that you learned by instinct, brute force, or hazy documentation.  Now, if you need to find out how to solve a particular problem, chances are, someone in the world has faced a similar problem and posted a solution. The answer is a Google search away. That's not necessarily the case with Silverlight at this point in its lifecycle.

But I appreciate the experience now. It was enjoyable It was like a throwback to the wilder days.

So.  When I started, here was my initial thought of what would make up the Silverlight demo:

  • A mechanism to sign in for Facebook
  • A mechanism to harvest a user's friend list
  • A XAML-based map of the United States, to indicate where friends are located
  • Animation
  • Video

From there, who knows?  I wanted to identify opportunities as I went. I will take you through some of the highs and lows of my experience.