September 15th, 2013 by
By Bryan Levey
During a professional development and goals discussion with a member of my Engineering Team recently, the first request out of his mouth was: “I want to take a class on WPF. I think I can do much more with it.”
The user interface for our flagship product – RTX64 – was written using Windows Presentation Foundation (WPF), and this engineer was the primary developer. I recalled that during design and usability meetings, he was constantly chiming in with “I can do that” or “That’s easy to do.”
Our decision to use WPF was based on the promise of productivity and flexibility of the platform, but that doesn’t always translate in actual practice for developers.
So what are WPF’s attributes?
- It has been around since 2006 and Microsoft has released 5 major versions so it’s really not ‘the new thing.
- It uses XAML, an XML based language, so for the generation brought up developing web-pages, there’s a certain amount of familiarity.
- WPF separates the user interface from the business logic, enabling application developers and UI designers to easily work concurrently on a single project.
- WPF also moves UI rendering off to the video hardware through the use of DirectX, freeing the CPU to handle more of the logic-oriented tasks. Everyone likes increased performance.
OK, but that doesn’t really explain the passion. Here’s a sampling of what my engineer had to say:
It gives me so much flexibility and allows me to change things quickly.
- I created templates for look and feel themes. I make one change and it propagates through the entire UI. Furthermore, these templates can include behavior.
- I created event behaviors using C# and then attached these behaviors as properties on our UI controls, so we can override behaviors such as Mouse-up or Mouse-down.
- For our Latency View Tool, I created our own shapes in a C# class and then WPF rendered it automatically. It’s like writing our own primitives.
- I can isolate code issues quickly so it’s easy to debug. I can tell you in 5 minutes where any UI issue is occurring.
- Oh, and this is a huge benefit…I was able to import a Photoshop document into Blend (part of VS2012), and then all I needed to do was create events for each element.
- It made WinForms seem obsolete and primitive.
While WPF might not be absolutely necessary for developing with RTX64, it can be a momentum builder.
Engaged developers make for quality code and … quality code turns into a better user experience… a better user experience means higher quality applications developed by our customers … higher quality applications means repeat customers and … repeat customers means higher revenues.
What I know for certain is that I’m excited about the new user interface associated with our upcoming release of RTX64. In particular, the use of WPF has increased my confidence about the flexibility and maintainability of the GUI, which says a lot considering that I manage our Support Team.
Even better I’m optimistic that going forward we will be able to quickly produce additional monitoring and performance tools for our customers.
Viva La WPF!