Web-Entwicklung mit ASP.NET & Webmatrix
Matrix Reloaded

DeveloperIT-ProjekteSoftware

Webmatrix hat sich mittlerweile als einfaches Entwicklungswerkzeug für ASP.NET etabliert. Dieser Workshop zeigt einige interessante Funktionen der neuen Version.

Einleitung

Web-Entwicklung mit ASP.NET & Webmatrix

Eine kostenlose Software von Microsoft? Diese erstaunte Frage war in vielen Artikeln zu Webmatrix zu lesen. Mittlerweile hat sich das Staunen der Autoren gelegt und auch Sie haben vielleicht schon mit Webmatrix entwickelt.

Mit der zweiten Version von Webmatrix findet sich unter www.asp.net nun eine aktualisierte Variante des Editors. Die echte Versionsnummer ist 0.6 mit dem Zusatz Build 812. Die 0 impliziert, dass es sich nicht um eine Final handelt; dementsprechend identifiziert sich Webmatrix auch als Technical Preview. Microsoft lässt hier also Vorsicht walten.

Der inoffizielle Name der zweiten Version ist Webmatrix Reloaded – in Anlehnung an den zweiten Teil der Matrix-Filmtrilogie. Übrigens, interessanterweise wird eine eventuell geplante zweite Version von Windows XP in den letzten Wochen von Microsoft auch als Reloaded angekündigt.


Neues

Web-Entwicklung mit ASP.NET & Webmatrix

Webmatrix Reloaded enthält einige interessante Funktionen. Unter anderem können jetzt Access-Datenbanken direkt eingebunden werden, und Webmatrix erlaubt auch J#-Dateien (siehe Kasten). In diesem Workshop lernen Sie zwei andere, weniger bekannte neue Funktionen kennen: das verbesserte Tabellen-Handling und den Einsatz von User-Controls. Als Beispiel erstellen Sie eine einfache Navigation, bestehend aus zwei Leisten, und fügen in eine der Leisten ein User-Control ein. Dafür benötigen Sie zuerst eine neue ASP.NET Page in Webmatrix. Als Programmiersprache kommt C# zum Einsatz.


Tabellen

Web-Entwicklung mit ASP.NET & Webmatrix

HTML-Tabellen sind nicht vollständig pflegeleicht. Sie benötigen eine gute Vorschau und ein paar Editierwerkzeuge, um damit zu Rande zu kommen, ohne in den HTML-Code auszuweichen. Wenn Sie in Webmatrix eine Tabelle aus der Toolbox unter HTML Elements ziehen, besitzt sie automatisch drei Reihen und drei Spalten. Für die hier angestrebte Navigation sollen es allerdings zwei Reihen und zwei Spalten sein. Sie können nun entweder die überflüssige Reihe und Spalte entfernen, oder Sie erstellen die Tabelle mit dem Menübefehl HTML, Insert Table. Im Dialogfenster haben Sie die Wahl, wie viele Reihen und Spalten es sein sollen. Einziges Problem hier ist, dass Sie die Breite und Höhe (Width und Height) der Tabelle nur in Pixel angeben können. Prozentwerte verträgt nur der Eigenschafteninspektor (Register Properties). Dort geben Sie nach dem Erstellen der Tabelle eine Breite und Höhe von jeweils 100 Prozent an, damit die Navigationsbalken über die gesamte Seite reichen.

Wenn Sie die Tabelle mit zwei Spalten und zwei Reihen fertig haben, verbinden Sie die Zellen in der oberen Reihe miteinander. Den dazu nötigen Befehl finden Sie im Menü HTML, Edit Table. Sie können hier nun ein Logo einfügen und eine Überschrift für die Webseite wählen. Die Höhe der Zelle stellen Sie im Eigenschafteninspektor auf 100 Pixel. Außerdem sollte die Zelle eine Hintergrundfarbe bekommen. Damit ist der obere Balken fertig.

Der linke Balken erhält eine Breite von 150 Pixel und ebenfalls eine passende Hintergrundfarbe. Die Navigation selbst wird als User-Control realisiert. Bevor Sie aber damit beginnen, müssen Sie noch die Abstände der Tabelle vom Rand korrigieren. Hierzu ist in Webmatrix leider Handarbeit notwendig. Wechseln Sie also in die HTML-Ansicht und ergänzen Sie die folgenden Attribute im body-Tag:


User-Control

Web-Entwicklung mit ASP.NET & Webmatrix

User-Controls sind in ASP.NET ein erster Ansatz, Inhalt und Code mehrmals verwendbar zu machen. Ein User-Control ist im Prinzip ein normales Webformular, nur mit der Dateiendung ASCX. Das User-Control kann dann in beliebig vielen Webseiten eingesetzt werden. Vorsicht: Sie können User-Controls nicht direkt aus dem Browser aufrufen, sie müssen in einer normalen ASPX-Seite eingebunden werden.

Um ein neues User-Control für die Navigation zu erstellen, gehen Sie so vor: Wählen Sie File, New File. Dort finden Sie als Dateityp ASP.NET User Control. Wählen Sie einen aussagekräftigen Namen wie beispielsweise navigation.ascx und speichern Sie das Control in denselben Ordner wie die vorher angelegte Website. Für das Beispiel fügen Sie eine Tabelle mit einer Spalte und drei Reihen ein. Die Tabelle sollte eine Breite von 150 Pixel haben. Fügen Sie drei Hyperlink-Web-Controls als Navigationselemente ein und vergeben Sie im Eigenschafteninspektor einen Text und den URL (Eigenschaft NavigateUrl). Speichern Sie nun das Control und wechseln Sie zurück zur vorher erstellten Website. Dies geht am schnellsten mit dem Register Open Windows.


Control einbinden

Web-Entwicklung mit ASP.NET & Webmatrix

Um das User-Control einzubinden, gehen Sie in das Register Workspace und dort in den Ordner mit dem Control (hier derselbe Ordner wie die Website). Ziehen Sie das Control von dort in die linke Navigationsleiste. Webmatrix registriert das User-Control automatisch in der Webseite:


<%@ Register TagPrefix="uc0" TagName="navigation" Src="navigation.ascx" %>

und fügt das Control in die Tabellenzelle ein:





Wenn Sie die Seite nun testen (am schnellsten mit [F5]), sehen Sie, wie sich das Control in die Seite einpasst.


Eigenschaften steuern

Web-Entwicklung mit ASP.NET & Webmatrix

Enthielte das User-Control nur Logo, Copyright oder sonstige statische Inhalte, wäre die Arbeit jetzt zu Ende. In diesem Fall enthält das User-Control allerdings eine Navigation. Und natürlich ist es unschön, wenn auf der jeweiligen Seite der Link auf die Seite auch aktiv ist. Um den Link zu deaktivieren, müssen Sie aber aus der ASP.NET-Seite auf Eigenschaften des Hyperlink-Web-Controls zugreifen, das sich im User-Control befindet. Dies geht nicht direkt. Sie können allerdings auf öffentliche Eigenschaften im User-Control zugreifen.

Das heißt, Sie verwenden im User-Control eine Variable (Eigenschaft des User-Control) und ändern mit ihr die jeweilige Eigenschaft. Im Code sehen Sie das beispielhaft für den ersten Link:


public Boolean Link1 {

get {
return HyperLink1.Enabled;
}
set {
HyperLink1.Enabled = value;
}
}

Diese Variable können Sie nun in der Website setzen. Die folgende Zeile setzt die Variable direkt im Control und deaktiviert den ersten Link:


Leider hat die Enabled-Eigenschaft des Hyperlink-Web-Controls in der Praxis nicht ganz die gewünschte Wirkung. Der Link wird im Internet Explorer nur grau dargestellt, aber nicht deaktiviert. Unter Netscape entfällt auch die graue Darstellung. Ein Blick in den von ASP.NET erzeugten HTML-Code verrät, warum. Zum Einsatz kommt das Attribut disabled, das für Formularelemente recht gut, für Links aber kaum funktioniert.

Eine Alternative besteht darin, den entsprechenden Link einfach auszublenden:

HyperLink1.Visible = value;

Als zweite Alternative können Sie auch das Link-Ziel entfernen. Dazu muss die Variable im User Control allerdings ein String sein:

public String Link1 {
get {
return HyperLink1.NavigateUrl;
}
set {
HyperLink1.NavigateUrl = value;
}
}

In der Website übergeben Sie dann beispielsweise ein Doppelkreuz:


Die fertigen Dateien finden Sie auch auf der Heft-CD.


Fazit

Web-Entwicklung mit ASP.NET & Webmatrix

In diesem Workshop ist das verbesserte Tabellen-Handling sehr positiv aufgefallen. In der Vorversion war mehr HTML-Handarbeit notwendig oder die Seite musste in einem anderen Editor bearbeitet werden. Jetzt geht das mit Webmatrix, auch wenn der Komfort mit einem guten Wysiwyg-Editor nicht vergleichbar ist. User-Controls stellen eine gute Möglichkeit dar, Code an zentraler Stelle zu sammeln. Hier funktioniert die Integration in Webmatrix reibungslos. Die positive Erfahrung mit diesem kleinen Update von Webmatrix macht Appetit auf die nächste Version. Getreu der Matrix-Filmtrilogie müsste es sich dann ja um eine Revolution handeln.


Hier spielt die Musik: J#

Web-Entwicklung mit ASP.NET & Webmatrix

Eine der interessantesten Neuerungen in der aktuellen Webmatrix-Version ist die Unterstützung von J#.

Neben dem Direktzugriff auf Access-Datenbanken und den in diesem Artikel beschriebenen Funktionen bietet Webmatrix in der zweiten Version vor allem Unterstützung für eine dritte .NET-Programmiersprache: J#. Dabei handelt es
sich um den Microsoft-Klon von Suns Java, der sich direkt an Java-Entwickler richtet, die in .NET hineinschnuppern möchten. Zugegeben, Java-Entwickler soll auch C# anlocken, das eher ein Mittelding aus C/C++ und Java ist. J# ist aber wirklich Java und insofern für Zweifler an C# gedacht. Größter Nachteil an J#: Die gesamte Dokumentation zum .NET-Framework und zu ASP.NET enthält Beispiele in VB.NET und C#, aber nichts in J#.