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
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.