Years of software development on the PC have proved that as a developer technology matures, so does the tools ecosystem around it. As of this writing, Silverlight has shipped four major versions since its first production release in September 2007. Translation: Silverlight has run in production websites and applications for three years and four months.
When Silverlight became popular with its version 2 release, there was a very strange stigma for most of us to overcome: For years in .NET development, Visual Studio was our tool that we spent 95 percent of our time in to build software. And suddenly we were being told that we needed to balance our development time with Visual Studio in something called "Microsoft Expression Blend." And we were told there were three other tools in the Expression suite that we also needed, and that caused further confusion. And then we were told, "Blend is the tool for designers." That confused us more. Then, as we started building Silverlight sites and apps, we all agreed: "You just cannot do this as effectively without Blend." When Visual Studio 2010 shipped, it had significantly better support for XAML… but not even close to what Blend has. Now, with Blend Version 4, there is just no question that you need it for your Silverlight application development because it does such a great job with XAML.
For those of you "new" to the term, "Blend": Microsoft Expression Blend is the tool that emits XAML. And it does a very good job of it. It is a monster of an application, though. The learning curve is significant. So, getting to an expert level is challenging. I have been trying for years to become proficient in Blend, doing many demos on stage, and I would still call myself average. But, if you do become proficient in Blend, you can sling some pretty awesome user interfaces in a fraction of the time it would take you to do so by hand or in Visual Studio. If fact, one of the most impressive Blend things I have ever seen was Adam Calderon completely designing the most awesome UI for a C# CRUD application without writing a lick of XAML! He did the entire thing by clicking, dragging, and dropping in Blend. That was a couple years ago and was the defining moment for me on how important Blend is. I also make it a point to see as many Blend presentations as possible done by Markus Egger. I always learn a lot when attending a Blend session done by Markus. He is a master at Blend.
So there it is, we all genuinely accept that we need both Blend and Visual Studio for Silverlight, and those are both Microsoft tools. And you can definitely gauge the acceptance (and "adoptance," for that matter) of a platform or technology by the third-party tools that revolve around it. The Silverlight ecosystem has a plethora of good tools that are used by the pros. Personally, I love Charles Petzold's free XAML Cruncher tool.
So, it was with great interest last week that I lurked on the "Silverlight Professionals" email alias in LinkedIn to a thread titled: "How Many of these tools have you used? Which are the best?" The thread first points to a fantastic list of a large number of tools on the "RealSoftwareDevelopment" site. Broken down by free tools and licensed tools, it does a great job of listing each tool, where to get it, and what it does. But it was written back in 2008, so it doesn't even include the XAML Cruncher tool. But, in the comments on the "RealSoftwareDevelopment" site, there are a number of other tools mentioned. And as you'd expect, in the LinkedIn Silverlight Professionals group there are a number of other tools mentioned that are worth researching:
LightWave 3D; ZAM 3D from Electric Rain; First Floor Software's Silverlight Spy; JetBrains' ReSharper; Electric Rain's Convexion, which converts PowerPoint presentations to XAML; EQATEC's Profiler for performance analysis of Silverlight applications—to name just a few of them. And, as you'd expect, there are a variety of free XAML tools on CodePlex including XAML Toys.
But, what resonated most for me in this thread, and what I just could not have said better is from Edu Couchez:
"…for my daily SL and WPF work, I use a combination of Photoshop for the first designs and test layouts, Illustrator/Expression Design to create the basic vectorial elements, Blend to build the entire scene and place the actors, and Visual Studio to bring them all alive.
"Anyway, thank God, today we have a handful of good tools to enrich our Silverlight/WPF projects with more than a couple of rectangles and code. It's up to us and our creativity to take the best of all and tailor eye-catching user experiences."
Tim Huckaby ([email protected]) is founder and chairman of InterKnowlogy—experts in Microsoft .NET and Microsoft platforms—and chairman and founder of Actus Software. Tim has worked on and with product teams at Microsoft for 25-plus years, has authored books and several publications, and is a frequent conference speaker.