Jun 9, 2007

Silverlight UI and custom Silverlight controls

I've recently been involved with a competition hosted by TopCoder for Microsoft. Working  with the CSF (Connected Service Framework), the objective was to develop a designer for the session manifest using AJAX or Silverlight (preferably Silverlight). I've been working with AJAX for some time now and I wanted to learn more about Silverlight.

I've developed the UI using Silverlight 1.0 Beta and AJAX for calling into webservices exposing my domain model. I was a little troubled at first by the poor support for keyboard input, and wasted a lot of time trying to develop a custom Silverlight textbox control. Finally I resorted to overlaying HTML controls over my canvas that worked quite well. However, there is no keyboard input when in full-screen mode, and worse the overlay HTML controls disappear since the Silverlight control is windowed in full-screen mode.

My goal was to develop a solid base of reusable controls that would make extending and adding new features to the application fairly easy. The buttons and message box are custom Silverlight controls. Unfortunately I did not manage to get all the required features in. The session participants are not displayed and I was pretty far from my goal of designing the routing table using drag and drop by the time the deadline rolled in.

I'll be posting more over the next few days about what I've learned while developing the custom controls, and as you will see it is fairly simple.