Where do you seek help on Open XML development?
When I am doing Open XML development I find my most common issue is trying to determine what XML should use to achieve a desired effect in the document I’m creating.
In the past my first port of call was the Open XML ISO specification, which had pretty complete documentation of Open XML. The problem with the ISO specification is that it is really, really, really long (4000 pages). Finding what you’re looking for could take a while.
Fortunately in version 2.0 of the Open XML SDK Microsoft has released an app called the Open XML Classes Explorer. The explorer not only provides a good interface over the ISO spec documentation but it also includes the SDK document object model documentation and links the two together. Highly recommended.
Did you development in the old office binary file formats? If yes, what are the differences and is it easier working with Open XML?
I have never done any development using the old office binary file formats.
What do you do when you are not building software?
I’m one of those weirdos whose job is also their hobby. In my own time I occasionally do development work on my own JSON library for .NET which is unimaginatively called Json.NET. I released it 3 years ago and it has been downloaded about 80,000 times.
Outside of programming I’m an avid reader, movie fan, arm chair economist and I often peruse Wikipedia. I play football, ski in the winter and run in the summer.
When you built TextGlow it was early in the lifecycle of Open XML and Silverlight, which one presented you with the greatest challenges?
Silverlight was definitely the bigger challenge. The first version of Silverlight only supported JavaScript. It wasn’t until the Silverlight 1.1 Alpha that a developer could use .NET to create Silverlight apps, and the first alpha is what I developed TextGlow against.
As .NET in the alpha was brand new a lot of functionality you would expect was missing. For example, the alpha didn’t have LINQ to XML which was kind of critical since Open XML is XML. I ended up writing my own lightweight implementation.
Another major missing piece from the alpha was layout controls. The only way to position controls in Silverlight at the time was to use a Canvas. As a Office Word document is based around text flow (text flows from left to right until it reaches the end of the line, and lines flow from top of the page until the bottom) and Canvas only supports absolute positioning, I had to write my own layout controls like StackPanel and WrapPanel.
If you could have done something differently, how would you approach this in hindsight?
Given the time (a couple of months) and the resources (I was the sole developer) I think the TextGlow document rendering was really good.
Even though the project was a tech demo, in hindsight what I would have liked to have spent more time on would be improving the TextGlow User Interface (UI) to make it more user friendly.
What features would you like to ask the Silverlight 3 team to ship to make building TextGlow easier?
Silverlight 3.0 now has LINQ to XML and layout controls which are a big help to anyone working with Open XML in Silverlight. There are two major areas where I’d like to see Silverlight improve for Open XML development: