Views Overview
Judith Bishop http://www.c.up.ac.za
Nigel Horspool http://www.cs.up.ac.za
The Views project began in May 2002 with a twofold aim
- to develop an XML-based GUI interface for the .NET Framework in
Rotor; and
- to promote C# to a wider community, especially education.
Since Rotor does not include the WinForms API, developing programs
involving GUIs is difficult, and outside the reach of novices. Our
Views system bridges the gap, and provides
research interest in addition.
In January 2002, we embarked on a book-writing
project for Addison-Wesley. The book emerged as C# Concisely in October
2003. Our premise is that C# is an excellent language in which to
teach introductory programming courses at colleges and universities.
However, there is a dilemma: if C# is taken along with the Visual
Studio.NET development environment, there is too much to teach at once,
yet modern pedagogy requires that students use GUIs in their programs,
to make them more interesting and more like the real-world. So instead
of using the Visual Studio forms designer or hand-coding WinForms GUIs,
we are promoting a special XML-based class named
Views.
Rotor affords us the means to develop
Views and its suite of test programs in a platform
independent way. Conversely,
Views extends
the applicability of Rotor into the novice programming market. In
addition, we are proposing a platform-independent tool for developing
GUIs that will emit XML suitable for input to
Views.
The process is summed up in the Figure.
The objective of pursuing Views
and the approach of our book is to promote C# the language without
having it dominated by Windows programming or the Visual Studio
environment. A major advantage of Views is
that it enables course educators to have their students use GUI forms
without needing the full .NET environment to be installed on their
computers. The .NET Framework distribution (even the redistributable
form) is sufficient for Views to work. Rotor
is an excellent vehicle for experimenting with this ideal and will
enable us to distribute our software far more widely.
Views makes use of some of
the more advanced namespaces in C# such as regular expressions and XML
interpretation. It can thus also be seen as a case study in itself in
the serious use of the language.