Grobe Beschreibung:

Das Tool stellt einen C#-Quellcode in einem HTML-Element dar. Schlüsselwörter, Sonderzeichen, Strings, 
Kommentare, Zahlen, Klammern werden in verschiedenen Farben angezeigt (Syntax-Highlighting). Die 
Schlüsselwörter werden aus einem Textfile ausgelesen.




Verwendung auf 2 Arten:

1.) Als Custom-Control (eingebettet in aspx-seite):

- Sourcewindow in eine DLL exportieren (csc /t:library /out:bin\MyControls.dll SourceWindow.cs)
- SourceWindow in aspx-seite einbinden:

<%@ Page %>
<%@ Register TagPrefix="cc" Namespace="MyControls" Assembly="MyControls" %>
    <body>
        <form runat="server">
            <asp:Panel id="Panel1" runat="server" BackColor="#E0E0E0" 
                       BorderColor="Navy" BorderWidth="3px">
                <cc:SourceWindow id="SourceWindow1" RunAt="server"
                    FileName="c:\\Inetpub\\wwwroot\\proj\\SourceWindow.cs"
                    KeywordsFile="c:\\keywords.syn"
                    Font="Courier">

                </cc:SourceWindow>
            </asp:Panel>
        </form>
    </body>
</html>


- Hierbei wird das in eine DLL exportierte Sourcewindow mittels asp-tag eingebunden. Allerdings müssen 
   hierbei die Parameter (Filename, Syntaxfile, Font) fix angegeben werden.


2.) Aufruf mit frei einstellbaren Parametern:

Hierbei kann man zunächst auf einer eigenen aspx-seite das Sourcefile, das Syntaxfile und den Font 
einstellen. Drückt man auf den Button „weiter“, wird ein Sourcewindow mit den gewünschten Parametern 
erzeugt und dargestellt. 

Funktionsweise:
Die Klasse SourceWindow erweitert die Klasse System.Web.UI.Control
Render-Methode wird überschrieben.
An den HtmlTextWriter der Render-Methode werden die generierten html-tags geschickt

Analyse des Sourcefiles:
Einlesen des Sourcefiles mittels eines StreamReader, der Zeichen für Zeichen einem Tokenizer übergibt. 
Der Tokenizer analysiert den Eingabestrom und generiert Tokens. Aufgrund der Art des Tokens wird dann der 
gewünschte html-code zur Darstellung des Textes erzeugt und an den HtmlTextWriter geschickt.

Download the project