When developing for Silverlight or WPF based applications, like anything else, there is a lot of tools and information out there to assist you in the development process. Microsoft has made quite a few tools to help us in these endevours, among those tools, that' I'd like to discuss, is Expression Design, and Expression Blend.
Some people would say "well duh", obviously you can use those, and talk about them in great detail. For some people it's not quite so obvious where to start at, and when. Perhaps they stumbled upon a tutorial that shows them how to perform one function in Blend, and then another tutorial showing the same thing in Visual Studios. None of these even mention bothering to use Expression Design.... so when and why would we use one tool over another.
Expression Blend is a powerful tool, and a lot of tutorials will lead you toward it, but what is the tool essentially? To me, it's a layout manager, control designer, and animation studio. That's my own personal definition of it. Can you do more then that in it? Yes, but is it ideal for more then that? In my opinion, not really. When I'm writing complicated code, I'd prefer to use visual studios. I'm not going to define a C# double animation in Expression blend, I'm going to code it in VS. But will I write a storyboard or state in Expression Blend? yes, preferably every time if I can pull it off.
So, where does design come in? Many of you may know, that you can export design as a silverlight canvas or WPF canvas. What does this accomplish for you? A lot if you really take an open-minded look to it. The drawing tools in design are obviously superior to that of Blend, and essentially whatever you can draw in design can be exported to a canvas.
So lets actually think about leveraging the design abilities of Expression design and draw UI that throw out the normal squares, rectangles and circles....Lets make some crazy shapes that bring us interfaces that break the norm. And when designing these interfaces think of the animations you can use against them. You can draw a bunch of wonky shapes in expression design..apply gradients.....whatever you can think of, and then export these objects as a canvas...open it in expression blend, and have an animation field day with them.
So great, were using design to make really unique objects that were exporting, and then animating in blend. What else can we do with Design and the canvas export? Well what is XAML in it's basic form? It's namespaced XML. You can take Linq to Xml and iterate through any XAML so long as you load your namespaces correclty....Linq to XML and XAML will be saved for another blog post in the future.
Another thing to let your mind rumble on.... If I'm using Design to make objects, which in the end have paths and coordinates, and I"m parsing it with Linq to XML, what can I do with those path objects? Think Sql 2008 Geomertry types...and equating images to a database....yeah more on that in the future.