Just over three years ago, in July, 2005, I released the first version of my Adobe Illustrator to Avalon/XAML Export Plug-In. The plug-in started off as a weekend project, and it’s since become quite popular. The plug-in is included in most WPF and Silverlight books, and it’s fun to see it referenced when I’m thumbing through new releases at Borders or Barnes & Noble. I hadn’t been watching the download stats, so I checked tonight and was surprised to see that it’s been downloaded over 75,000 times (actually a bit more, but the stats aren’t complete). Even if I only counted the most recent release, that would make it a top download on CodePlex. That’s pretty cool.
I receive e-mail about the plug-in almost every other day, and here are the most common questions and their answers:
- Do you plan to update the plug-in?
Unfortunately, my role has changed within Developer & Platform Evangelism (DPE) over the years, and I no longer focus on WPF, Silverlight, or XAML. As such, it’s unlikely that I’ll have the time to update the plug-in.
- Do you plan to release the source code?
While releasing the source code has been my goal since day one (actually, even prior to its first release), there are many complicated reasons why I can’t. I’m not happy about it either, but it is what it is.
- Does it run on a Mac?
No. I have nothing against the Mac, but I’ve never owned one, and I’ve never done any Mac development. Sorry. Update: there is now a Mac version of the plug-in.
- Why doesn’t it do _____?
Most of what it can or can’t do is listed in the Features grid on the plug-in page.
A colleague pointed me to Hanselminutes Show #120. Jump to 17:34 to hear Felix describe his workflow. Here are some of the juicy quotes that help to validate why I created the plug-in in the first place:
“Every designer knows Photoshop and Illustrator inside out.”
“That Illustrator plug-in has been available to me and I use it—I say—daily.”
“It’s unbelievable. It’s such a vital tool.”
It’s great to hear this from someone who uses the plug-in on a daily basis, and frankly, his feedback has motivated me to think about updating the codebase. No promises, but you never know. 🙂
By the way, if you’re looking for an Illustrator tool that you can extend, check out the XamlXporter for Illustrator project on CodePlex.
The other XAML-related tool I’ve written is called SWF2XAML, and it was first released in November, 2006. Compared to the Illustrator plug-in, SWF2XAML has a much more complex codebase. SWF2XAML will open a Flash file (SWF), parse structures from the file format, generate a frame of data, convert it to WPF, and display it in a window. The XAML can then be exported for either WPF or Silverlight use. As a convenient side effect, embedded bitmaps are also automatically exported.
According to the stats, SWF2XAML has been downloaded over 42,000 times, and its most recent version alone would dethrone the Illustrator plug-in (if it was hosted on CodePlex, that is). Again, I’m amazed. It’s been referenced in recent WPF and Silverlight books, but it isn’t as pervasive as the Illustrator plug-in.
There are three questions I receive frequently for SWF2XAML:
- I receive the following error message: “Input string was not in a correct format.” What’s up?
This is a known bug that occurs when the numeric format in Windows is set to a non-United States format (i.e. 123.456.789,00). The workaround—while inconvenient—is to change the Regional Settings in Windows to use English (United States). This seems to do the trick every time.
- Do you plan to update the tool?
Same answer as the Illustrator plug-in, I’m afraid. 🙁
- Does it convert animation or sound?
No. While it could be extended to convert animations and sound, it was built to recover static assets from SWF frames and convert them to XAML. For many, once the assets are converted, they can be used (and even re-animated) in a XAML tool of choice. Many large web sites have used SWF2XAML to convert their Flash assets to XAML for use with Silverlight.
If you want to know how to read a Flash file (SWF) with C#, check out my Example C# Code for Reading Flash (SWF) Files. For insights into how the Flash shapes are parsed and converted to XAML, check out Converting Flash Shapes to WPF. Last, I encourage you to experiment with another tool that converts Flash files—including both animation and sound—called theConverted – Swf to Xaml Converter (the Samples page has some good demos).
Thanks to everyone who has used these tools over the years! I’ve really appreciated the suggestions and feedback I’ve received, and I’m very happy to hear that they’ve helped you be more productive.
Update: Robin Debreuil, creator of theConverted, points out that he has recently added the project to CodePlex. Thanks, Robin!