Game Development Reference
Layering Windows Forms
on Console Applications
Discovery consists of seeing what everybody has seen and thinking what
nobody has thought.
Console applications are perhaps the most common application type used for
tools because of their lightning-fast development nature, and because they provide
a simple interface that is easy to learn. Users of console tools generally feel com-
fortable with console-based interfaces because they all typically function the same
way, and it is very easy to pick up a new tool when the interface is consistent with
old tools. Some advanced users also write or record scripts that automate the
workflow of a particular set of tasks. Authoring scripts for console applications is
much easier to do than for graphical user interfaces.
Tools development is all about reusability at both the code and application level.
There may be some situations where an existing console application solves an
intricate problem, but a graphical user interface version of the tool is wanted by a
certain group of users. There are a few solutions to this problem. The first solution
is to develop a Windows Forms version of the tool, using a fresh new code base.
This solution requires the maintenance of two separate code bases, and can lead to
support and synchronization problems. It also takes considerable time to build a
new tool. The next solution is to develop a Windows Forms version of the tool and
share the same code base. This might not be achievable if the console application
is unmanaged and building a managed wrapper is out of the question.