Jun 21, 2021
This week, Jeffrey is joined by Charlie Kindel! Charlie is an American tech executive doing consulting and advising. Formerly, he has held roles with Control4, Amazon, and Microsoft. Much of his career has been spent focused on smart home products. Additionally, he is also the maintainer of Terminal Gui, which is a .NET 5 UI framework for console applications.
In this conversation, Charlie discusses the Terminal Gui and highlights some of the cases where it shines. If you’re looking for a full user interface but you only want it to sip — rather than sap — system resources, the Terminal Gui may be the solution you’re looking for! It’s fun from a retro perspective as it allows people to go and explore the way UIs were back in the 80s and before.
Charlie shares how the Terminal Gui project got started, its current capabilities, the notable applications that use Terminal Gui, its constraints, dependencies, memory usage, potential future integration, and more! Don’t miss out on learning about this lightweight UI framework.
Topics of Discussion:
[:14] About The Azure DevOps Podcast, Clear Measure, the new podcast Architect Tips, and Jeffrey’s offer to speak at virtual user groups.
[1:24] About today’s episode with Charlie Kindel
[1:48] Jeffrey welcomes Charlie Kindel to the podcast!
[2:04] Charlie shares some of his notable career highlights.
[4:28] What Jeffrey finds fascinating about Terminal Gui with modern .NET 5.0 applications.
[5:55] How the Terminal Gui project got started and its capabilities.
[7:35] Jeffrey highlights how lightweight Terminal Gui is.
[8:22] Are there any notable applications that use Terminal Gui right now? What is one of Charlie’s favorites?
[10:09] What does the control model for Terminal Gui look like for those who want to create a composite control or a new type of control?
[12:11] Are there any limitations besides the layout? What types of controls can be made with Terminal Gui?
[13:46] What are the constraints with Terminal Gui?
[15:46] Is it expected to use a form base model similar to WinForms or WPF? Or more like model-view-controller where you split up the behavior and the layout? What’s the intended approach?
[16:56] If someone is going to adopt Terminal Gui and use it for a particular command line EXE, what is the testing story (so that they know if the user interface is behaving properly)?
[17:50] If someone is going to be using Terminal Gui in their build, tests, and deployments, do they need to be aware of any dependencies (besides the library itself)?
[18:27] A word from Azure DevOps Podcast’s sponsor: Clear Measure.
[18:58] What do the tests look like in Terminal Gui? What should developers be looking at if they want to write tests?
[20:25] With Terminal Gui, would you deploy as a regular .NET 5.0 assembly? Would most of the time you roll up all the libraries and do a single executable deployment?
[20:51] What are some of the future visions for Terminal Gui?
[22:15] Why you would want to use Terminal Gui if you already use WPF, Xamarin, MAUI, etc.
[23:19] Jeffrey shares one of his first experiences with using Terminal Gui and why he likes it.
[24:09] Has Terminal Gui been tested with really old Windows or constrained hardware?
[24:33] Are there any reports on the footprint of startup memory usage?
[25:03] Jeffrey and Charlie discuss memory measurements.
[26:51] Is tab ordering built into Terminal Gui?
[28:08] Charlie discusses the potential of future integration with MAUI.
[29:19] Charlie shouts out the other contributors on the Terminal Gui project.
[30:24] Where and how to check out Terminal Gui.
[30:50] How to start contributing to the project.
[31:17] Jeffrey thanks Charlie Kindel for joining the podcast!
Mentioned in this Episode:
Architect Tips — New video podcast!
Clear Measure (Sponsor)
.NET DevOps for Azure: A Developer's Guide to DevOps Architecture the Right Way, by Jeffrey Palermo — Available on Amazon!
bit.ly/dotnetdevopsebook — Click here to download the .NET DevOps for Azure ebook!
Jeffrey Palermo’s Twitter — Follow to stay informed about future events!
The Azure DevOps Podcast’s Twitter: @AzureDevOpsShow
Microsoft PowerShell Graphical Tools
Miguel de Icaza's 2019 blog post on Terminal Gui
Presentation from .NET Conf 2018
Video recording of Terminal Gui
Xamarin.Forms with console UI adapter
Want to Learn More?
Visit AzureDevOps.Show for show notes and additional episodes.