Sometimes, things appear in the SUX (Sarah on User eXperience) series because they work contrary to my expectations. Silverlight is one of those things.
For a web technology, Silverlight is more an app developer’s domain than a website developer’s domain. It really requires an application development train of thought. In these past few weeks, I’ve been working on a Silverlight app and running into quirks that probably wouldn’t have thrown me off if I spent more time writing apps rather than websites. However, I typically focus on websites more than apps, which is a slight paradigm shift. So imagine the frustrations I ran into with Silverlight, thinking that a web technology would be aligned with the web train of thought.
For one, they don’t do margins the web way. Margins in the web world – think CSS attributes – are top-right-bottom-left. Margins in an app world (and in the Silverlight realm) are done left-top-right-bottom.
Another thing that required a little searching was finding a dropdown box. Yes, as a website developer, I’m used to the terms dropdown, DropDownList, or even the old <select> lists. But as I look at my toolbox, I’m not seeing any of those terms. Ah… but there’s ComboBox, similar to the control I was familiar with back in my VB 6 days. Ugh… another app term, not the web developer term.
The last grumbling I have on this is the lack of transparent window support. Transparent PNG supported was enhanced in Silverlight 4, which I really like. But there still isn’t any support for transparent windows. On this project, we would’ve loved to have a transparent window, especially on an out-of-browser app. Sure, we could’ve done this in WPF, where transparency is supported. But WPF on a Mac isn’t supported – Mono doesn’t have plans on implementing it. Silverlight, on the other hand, is supported on Macs, which is why we planned going this route. Until they port transparent window support from WPF into Silverlight, we’ll work with the technology constraints and go with a custom chrome. But transparent windows would be awesome!
Thankfully, I’m getting around Silverlight a lot better than I anticipated, but I still need to remember that I need to treat it like an application tool and not necessarily a web development tool. Don’t get me wrong – it is a web technology after all. But first and foremost, it is a subset of an application development tool, not a web development tool. Once I get that through my head, I understand why they went this route.