Whilst working on the prototype of Silverword it became apparent to me that Microsoft have an insanely complicated task ahead of them in creating a set of framework controls that appeal to both designers and developers.
After I completed my first stab at the Silverword prototype it occurred to me that I could of created the solution several different way’s based on who I wanted to optimize it for, a designer or a developer.
Let’s take for example the way I did my “top menu – sub menu” controls. I went through three different designs before settling on the one that made it into the prototype.
In the end I chose to create 3 separate user-controls for each of the top menu-items. I favored the designer in me as the determining factor for the solution. Basically I wanted to give the freedom to the designer to creatively position each of the elements on the sub-menu the way they wanted. If they wanted to add icons or change font’s it was completely in their control.
The first solution I came up with for the “top menu” involved having an XML list of menu-items that I would programmatically iterate and create menu items from using a template menu control, this is very similar to the out of box visual studio menu controls (in the ajax toolkit and/or the standard controls). The solution was very biased towards the developer in me and it didn’t really give much freedom when it came to visual layout.
If you think about it visual studio with all it’s beautiful user controls are really designed with the developer in mind, it’s not a designers tool. There isn’t really anything in there to give designers freedom to make it look the exact way they want!
A designers tools are things like Photoshop, illustrator, expression design etc. So knowing what I now know great care should be taken when building framework controls in blend because it’s not as simple as portin visual studio controls into blend, it will fail to meet the needs of designers!
I now know the mammoth task ahead for Microsoft!
For all of you out there screaming for controls please please take the time to play with SilverLight and build your own controls. You’ll soon realize that it’s not as black and white as you may think!