This post is part of the Learning GUI Toolmaking Series, here on FoxDeploy. Click the banner to return to the series jump page!
Where we left off
Thanks for joining us again! Previously in this series, we learned all about writing fully-fledged applications, in Posts 1, 2 and 3. Then, we learned some techniques to keeping our apps responsive in Post 4.
In this post, I’ll walk you through my GUI design process, and share how that actually worked as I sought to create my newest tool.
Along the way, I’ll call out a few really confusing bugs that I worked through in creating this tool, and explain what went wrong. In particular, I ran into quite a snag when trying to programmatically create event handlers in code when trying to use $psitem
or $_
. This lead to many conversations which introduced me to a powerful solution: the $this
variable.
What is the tool?
Introducing the FoxDeploy DSC Designer.
Think something sort of like the Group Policy Management Console, for your DSC Configurations. But we’ll get back to this in a few minutes.
My GUI Design Process
Here’s my general process for designing a front-end:
- Create the elevator pitch (Why does this need to exist?)
- Draw out a rough design
- Make it work in code
- Add feature by feature to the front end
- Release
- Iterate
It all started with me taking a trip to Microsoft last year for the MVP Summit. I’d been kicking around my elevator pitch idea for a while now, and was waiting to spring it on an unwary Microsoft Employee, hoping to con them into making it for me:
Here’s my elevator pitch
To drive adoption of DSC, we need some tooling. First, we need a GUI which lists all the DSC resources on a machine and provides a Group Policy Management Console like experience for making DSC configs.
We want to make DSC easier to work with, so its not all native text.
I decided to spring this on Hemanth Manawar of the PowerShell team, since I had him captive in a room. He listened, looked at my sketches, and then said basically this:
‘You’re right, someone should make this…why not you?’
Thanks guys. thanks
So I got started doing it on my own. With step one of the design process –elevator pitch– out of the way, I moved on to the next phase.