ASP.NET-Webseiten

Einführung in WebMatrix

Clark Sell

Es gibt heute für Webentwickler keinen Mangel an verfügbaren Tools auf dem Markt. In der Tat sind die Chancen gut, dass Sie bereits viel Zeit mit Visual Studio verbracht haben. Wenn Sie von Microsoft WebMatrix bereits gehört haben, fragen Sie sich vielleicht, worum es sich handelt und was dieses Tool für Sie bedeutet – vielleicht fragen Sie sich auch, warum Sie sich deswegen überhaupt Gedanken machen sollten.

In diesem Artikel behandle ich diese und andere Fragen. Ich beginne damit, dass ich einige der aktuellen Änderungen für den ASP.NET-Stapel bespreche. Anschließend erkläre ich die Einrichtung von WebMatrix und die Erstellung der Anwendung „Hallo Welt“. Schließlich bespreche ich einige der Features wie Layout, Helfer, Datenzugriff, Berichterstellung und natürlich die Bereitstellung. Vor all dem werde ich jedoch WebMatrix definieren.

WebMatrix ist ein neuer, umfassender Website-Editor für ASP.NET-Webseiten. Er richtet sich an andere Webentwickler und einen anderen Teil von ASP.NET, als man es für ein Microsoft-Produkt erwarten würde. WebMatrix steht nicht im Wettbewerb zu Visual Studio, sondern stellt eher eine Ergänzung dar. Zwischen beiden Anwendungen gibt es einige Überschneidungen.

Die Installation von WebMatrix ist schnell und problemlos. Dies liegt daran, dass das gesamte Paket und die zugehörigen Dateien nicht mehr als 50 MB beanspruchen. Das Paket enthält einen Texteditor, einen Webserver, ein Datenbankmodul und das zugrunde liegende Framework,, also alles, was Sie für die Erstellung und Bereitstellung einer Website benötigen. Sie werden überrascht sein zu hören, dass die Anwendung nicht auf ASP.NET beschränkt ist. WebMatrix unterstützt auch PHP und MySQL. In diesem Artikel werden spezifisch die .NET-Features von WebMatrix behandelt.

Der neue ASP.NET-Stapel

In den letzten Jahren unterlag der ASP.NET-Stapel einigen Veränderungen. Im April 2009 wurde ASP.NET MVC als neue Option für die Entwicklung von Webanwendungen in ASP-NET veröffentlicht. Das MVC (Model-View-Controller)-Muster war an sich nicht neu, die Implementierung auf ASP.NET war jedoch neu. Außerdem können sowohl Web Forms als auch MVC auf der gleichen Website in völliger Harmonie verwendet werden.

Um die Integration in ASP.NET zu ermöglichen, wurden einige leichte Veränderungen am Framework durchgeführt, sodass diese Komponenten so aufeinander passen, wie Sie dies möchten. Und nun hat Microsoft ASP.NET MVC 3 und WebMatrix veröffentlicht. Dies sind wesentliche Veröffentlichungen, die eine Reihe neuer Funktionen und Optimierungen enthalten. Es gibt drei beachtenswerte neue Funktionen für das Framework: Razor-Parser und -Anzeigemodul (oder kurz Razor); ASP.NET-Webseiten; und IIS Express. Abbildung 1 zeigt die Beziehungen zwischen allen verknüpften ASP.NET-Frameworkkomponenten.

image: The Web Stack

Abbildung 1 Der Webstapel

Sie haben vielleicht in Abbildung 1 gesehen, dass Razor, IIS Express, SQL Compact und Web Deploy gültige Optionen für andere Bereiche in der ASP.NET-Webentwicklung sind. Außerdem ist Razor nun mit der Veröffentlichung von ASP.NET MVC 3 das neue voreingestellte Anzeigemodul. Ich werde Razor an späterer Stelle detaillierter behandeln.

Umgekehrt wurde ASP.NET Web Pages als Entsprechung zu Web Forms und MVC eingeführt. Das Web Page-Modell ist ein seitenzentriertes Ausführungsmodell, PHP vergleichbar. Markup und Code sind beide in der Seite selbst enthalten, und mittels Helfern wird der Code präzise gestaltet. Sie schreiben die Seiten in Razor entweder mit Visual Basic oder mit C#.

Erste Schritte

Die ersten Schritte mit WebMatrix sind einfach. Die Installation wird von Microsoft Web Platform Installer 3.0 (WebPI) durchgeführt. Dies ist ein clientseitiges Programm, mit dem die Installation von Anwendungen wie SQL Express oder ASP.NET MVC äußerst einfach wird. Weitere Informationen zu WebPI finden Sie auf microsoft.com/web/downloads/platform.aspx. Für die schnelle Installation besuchen Sie  web.ms/webmatrix und klicken auf die Schaltfläche für neue Downloads. Damit wird nicht nur WebPI, sondern auch WebMatrix installiert. Nach Abschluss der Installation sind die folgenden Komponenten installiert:

  • Microsoft WebMatrix (Editor)
  • ASP.NET Web Pages mit Razor-Syntax (Modul und Framework)
  • SQL Compact (Datenbank)
  • IIS Express (Webserver für die Entwicklung)

Ich habe zuvor erwähnt, dass WebMatrix auch die PHP-Entwicklung unterstützt. Obwohl das Paket die Entwicklung direkt unterstützt, müssen Sie die PHP-Laufzeit installieren, wenn Sie eine PHP-Website völlig neu erstellen möchten.

Hallo Welt-Web

In so gut wie jedem technischen Handbuch finden Sie das klassische „Hallo Welt“-Beispiel. Lassen Sie uns daher eine „Hallo Web“-Website mit WebMatrix erstellen. Beim ersten Öffnen von WebMatrix wird Ihnen ein Dialogfeld mit vier Optionen angezeigt. Jede dieser Optionen stellt einen anderen Ausgangspunkt dar:

  • My Sites (Meine Sites)
  • Site From Folder (Site aus einem Ordner)
  • Site From Template (Site aus einer einer Vorlage)
  • Site From Web Gallery (Site aus einer Webgalerie)

My Sites enthält einfach die letzten Websites, an denen Sie gearbeitet haben. Site From Folder öffnet einen Ordner als Root einer Website. Alle Elemente, die in diesem Ordner aufgelistet sind, werden als Ressourcen für diese Website verwendet. Sie können auch mit der rechten Maustaste auf einen Ordner klicken und die Option für das Öffnen als Website mit Microsoft WebMatrix auswählen. Diese zeigt das gleiche Verhalten wie die Option Site From Folder.

WebMatrix wird mit einer Reihe vorab entwickelter Webvorlagen ausgeliefert, sodass Sie schnell mit der Erstellung von Website beginnen können. Durch die Auswahl von Site From Template wird eine Ordnerstruktur eingerichtet, die den gesamten Quellcode enthält, den Sie für die Entwicklung einer Website anhand dieser Vorlage benötigen. Zum Zeitpunkt der Verfassung dieses Artikels gab es fünf Vorlagen: Empty Site (Leere Website), Starter Site (Startwebsite), Bakery (Bäckerei), Photo Gallery (Fotogalerie) und Calendar (Kalender). Weitere Vorlagen werden in der Zukunft hinzugefügt werden.

Site From Gallery ist wahrscheinlich die interessanteste Option. Seit einigen Jahren können Sie nun bereits WebPI für den Download von Anwendungen wie Umbraco oder WordPress verwenden, diese wie gewünscht anpassen und auf Ihrem Hostinganbieter bereitstellen. Leider war diese Integration nicht durchgängig. Nun können Sie in WebMatrix mit der Entwicklung von einer vorhandenen Anwendung wie Umbraco aus beginnen. WebMatrix und WebPI richten alle Komponenten ein, die Sie für die Entwicklung Ihrer Website von den Anwendungen aus benötigen, die in der Galerie aufgelistet sind. Nach der Einrichtung durch WebMatrix können Sie die gewünschten Anpassungen durchführen und die Entwicklungsfunktionen von WebMatrix für die Bereitstellung auf Ihrem Hostinganbieter nutzen.

Um unsere „Hallo Welt“-Demo zu erstellen, öffnen wir WebMatrix und wählen Start from Template (Mit Vorlage beginnen) aus. Wählen Sie die Vorlage Empty Site (Leere Website) aus, und geben Sie der Website einen Namen, in diesem Fall „Hallo Web“. WebMatrix erstellt einen leeren Ordner mit dem von Ihnen gewählten Namen. Wählen Sie nun die Registerkarte Files (Dateien) aus und anschließend in diesem Hauptfenster die Option Add a file to your site (Der Website eine Datei hinzufügen) aus. Das erste, was Sie beachten sollten, ist die neue Dateierweiterung. ASP.NET Web Pages hat zwei neue Dateiformate: CSHTML und VBHTML. Die ersten beiden Buchstaben der Erweiterung geben die Sprache an, den der Razor-Parser für die Analyse des Codes verwenden muss: C# oder Visual Basic. Ich wähle einen Dateinamen mit CSHTML aus und nenne die Datei HelloWeb.cshtml. Nun wird die Datei automatisch geöffnet und zeigt einen voreingestellten HTML-Code an.

Mit der Hinzufügung von Hallo Web zum vorhandenen Textelement ist „Hallo Web“ beendet. WebMatrix erkennt automatisch alle von Ihnen installierten Webbrowser. Sie können Ihre Website in einem dieser Browser oder in allen Browsern ausführen. Hierfür benötigen Sie nur einen einfachen Mausklick. Durch Klicken auf „Run in the ribbon“ (Im Band ausführen) wird automatisch der voreingestellte Browser geöffnet und die Seite angezeigt, auf der der Fokus liegt. Im Fall von „Hallo Web“ werden Ihnen natürlich die Worte „Hallo Welt“ angezeigt.

Kodieren in Razor

Wie bereits gesagt, handelt es sich bei Razor um ein Code- und Markupvorlagenmodul. Dies bedeutet, dass Sie Syntax schreiben, die später interpretiert und an den Requestor gesendet wird. Im folgenden finden Sie den HTML-Code für unsere einfache Webseite, die einen Code enthält, der @DateTime.Now aufruft:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
         <title>Hello World</title>
      </head>
      <body>
        Hello Web it's @DateTime.Now
      </body>
    </html>

Dieser Code ruft die Now-Methode der .NET System.DateTime-Klasse auf. Das Ergebnis ist eine Seite wie in Abbildung 2 gezeigt.

image: Hello Web in the Browser

Abbildung 2 „Hallo Web“ im Browser

Es kann auch etwas komplizierter werden. Erstellen wir nun einige Eigenschaften, führen eine Schleife aus, mischen etwas HTML-Code unter, und schauen uns das Ergebnis an. Abbildung 3 zeigt genau dies, wobei etwas gültiger HTML-Code ausgelassen wurde, um den Code nicht zu lang werden zu lassen. Und Abbildung 4 zeigt die gerenderten Ergebnisse.

Abbildung 3 CodingRazor.cshtml

    @{
      var cars = new string [] { "Camaro", "Avalanche", "Honda"};
      var emailAddress = "cars@something.com";
    }
     
    <ul>
      @foreach ( var car in cars ) {
        <li>
          <a href="http://@(@car).something.com">@car</a>
                
          @if ( car == "Camaro" ) {
            @: Is my favorite!  
            }
        </li>
      }
    </ul>
    
    To comment on this list of cars e-mail us at @emailAddress.

image: The Cars Code Rendered in a Browser

Abbildung 4 Der Autocode im Browser

Betrachten wir nun einige Teile des Codes aus Abbildung 3 genauer. Wir beginnen mit dem Hyperlink „http://@(@car).something.com“. Sie sehen „@(@car)“. Dort muss ich Razor explizit anweisen, dass @car die Variable ist, da diese nicht in die URL eingebettet ist. Der nächste Codeteil ist der Inhaltsblock, der durch „@:“ definiert wird. Innerhalb der Schleife gibt es eine If-Anweisung, die den Text „Mein Favorit“ enthält. Wenn Sie „@:“ entfernen, kann Razor nicht kompilieren, da der Text nicht in HTML gewrappt ist. Schließlich rufen wir @emailAddress auf und beenden den Satz mit einem Punkt. Razor war intelligent genug zu erkennen, dass @emailAddress eine Variable und keine Klasse ist. Die Überraschungen hören hier nicht auf. Wenn Sie den Quellcode auf dieser Seite betrachten, sehen Sie, das reines HTML im Browser gerendert wurde, wie hier gezeigt:

    <ul>
      <li><a href="http://Camaro.something.com">Camaro</a> Is my favorite! </li>
      <li><a href="http://Avalanche.something.com">Avalanche</a> </li>
      <li><a href="http://Honda.something.com">Honda</a> </li>
    </ul>
    
    To comment on this list of cars e-mail us at cars@something.com

Layout

Razor führt eine neue Möglichkeit ein, wie Sie den Websiteinhalt auf eine wieder verwendbare Weise strukturieren können. Wenn Sie mit dem Master Pages-Idiom in ASP.NET Web Forms vertraut sind, erkennen Sie, dass Razor Layout verwendet, um das gleiche Ziel zu erreichen, jedoch mit einem anderen Ansatz. Nebenbei ist anzumerken, dass Sie diese beiden Layoutansätze nicht zusammen verwenden können. Das bedeutet, dass Sie Master Pages nicht als Layoutmodul für Razor verwenden können, und umgekehrt.

Um mit Layout zu beginnen, erstelle ich eine Seite, die mit einem Unterstrich beginnt, z. B. _MasterLayout.cshtml. Seiten, die mit einem Unterstrich beginnen, können nicht direkt im Browser gerendert werden. Andere, öffentliche Seiten müssen auf diese verweisen. In gewisser Weise verhält sich eine unterstrichene Seite wie eine Klasse in einer Assembly, die als intern gekennzeichnet ist. In dieser Seite strukturiere ich, wie und wo die einzelnen Teile der Seite durch Verweise eingefügt werden. Es gibt drei Hauptklassen, die Sie bei der Strukturierung unterstützen: RenderSection, RenderPage und RenderBody. Abbildung 5 zeigt eine einfache Masterlayoutseite, in der alle drei Klassen verwendet werden.

Abbildung 5 Die Klassen RenderSection, RenderPage und RenderBody

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <title></title>
        @RenderSection("ClientScripts", required: false)
      </head>
      <body>
        @RenderPage("~/layout/shared/_header.cshtml")
        @RenderBody()
        @RenderPage("~/layout/shared/_footer.cshtml")
      </body>
    </html>

Auf diese Masterseite muss von allen untergeordneten Seiten aus verwiesen werden, die dieses definierte Layout verwenden möchten. Wie Sie hier sehen, führt die erste Zeile genau dies aus:

    @{ Layout = "~/layout/shared/_MasterLayout.cshtml"; }
        
    @section ClientScripts {
      Custom Script Here </br>
    }
     
    Some body content

In meiner Layoutseite habe ich einen optionalen Abschnitt namens (@RenderSection) im Kopfabschnitt der Seite definiert. Da dieser Abschnitt optional ist, kann eine untergeordnete Seite diesen implementieren, wenn gewünscht. Um einen Abschnitt zu implementieren, verwenden Sie @section, gefolgt vom Namen, den Sie im Aufruf @RenderSection angegeben haben. Für den Rest der Seite (in diesem Beispiel) wird angenommen, dass es sich um Inhalt handelt. Dieser wird von @RenderBody genutzt. Im Onlinequellcode für diesen Artikel finden Sie ein detaillierteres Beispiel hierfür.

Die Ausführung von default.cshtml (im Ordner namens „Layout“ im Download für den Quellcode) ergibt das Ergebnis, das in  Abbildung 6 gezeigt wird. Alle Abschnitte wurden korrekt gerendert und als reines HTML an den Browser übergeben.

Abbildung 6 Ergebnis der Ausführung von default.cshtml

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title></title>
  Custom Script Here </br>
</head>
<body>
  <p>this was rendered from ~/layout/shared/_header.cshtml</p>
  Some body content
  <p>this was rendered from ~/layout/shared/_footer.cshtml</p>
</body>
</html>

Helfen Sie mir, Ihnen zu helfen

Sie hören dieses Wort immer wieder in der Softwarebranche: Wiederverwendung. WebMatrix führt ein Konzept ein, das dem Plug-In-Modell vergleichbar ist, das in WordPress oder jQuery verwendet wird. In WebMatrix sind diese Plug-Ins als Helfer bekannt. Das Konzept ist vergleichbar: Es handelt sich um veröffentlichte Pakete mit wiederverwendbarer Funktionalität oder kleine Teile von .NET-Code, die für bestimmte Zwecke entwickelt wurden und für die einfache Verteilung und Nutzung verpackt wurden. Das Helferpaket selbst ist lediglich ein NuGet-Paket (siehe nuget.codeplex.com). Wenn Sie .NET-Entwickler sind, der Helfer entwickelt und verwendet, ist dies nicht viel anders als die Nutzung einer .NET-Standardklasse, denn das ist genau das, was es ist.

Helfer werden in einem cloudbasierten NuGet-Feed gespeichert und aus diesem abgerufen. Wie finden Sie diese Helfer? Klicken Sie nach dem Öffnen Ihrer Website in WebMatrix auf „Run“ (Ausführen). Dadurch wird die Website im Browser geöffnet, z. B.: http://localhost:53655/default.cshtml. Navigieren Sie anschließend zu http://localhost:53655/_admin. Dies ist die einzige unterstrichene Seite, die gerendert werden wird, und dies nur auf dem lokalen Computer. An dieser Stelle werden Sie zur Erstellung eines Kennworts aufgefordert und anschließend zum Package Manager geleitet (siehe Abbildung 7).

image: ASP.NET Web Pages Administration Package Manager

Abbildung 7 ASP.NET Web Pages Administration Package Manager

Sie können Helfer in einer dieser drei Kategorien anzeigen: Installed, Online und Updates. Sie können sie auch nach der Quelle anzeigen, aus der sie stammen. Diese Quelle ist ein NuGet-Feed. Der voreingestellte Feed ist das offizielle Verzeichnis der WebMatrix-Helfer. Sie können jedoch auch andere Quellen hinzufügen.

Da wir nun die Liste der Pakete haben, installieren wir ein Paket. Zu Demonstrationszwecken installieren und untersuchen wir einen Helfer, den wir den Helfer für die Kürzung von URLs nennen, URL Shortener Helper (siehe UrlShortenerHelper.CodePlex.com). Dies ist ein Helfer, den ich für die Unterstützung der Kürzung von URLs entwickelt habe, wobei ich Anbieter wie bit.ly verwendet habe. Das Konzept ist einfach: Nehmen Sie eine URL, und kürzen Sie diese, wobei Sie die Interaktion mit dem Anbieter verbergen, den Sie für die Ausführung gewählt haben. Wechseln wir nun zu Online und wählen Install für die URL-Kürzung aus. Damit wird der Helfer auf Ihre Website heruntergeladen, installiert und konfiguriert.

Helfer werden zurzeit auf zwei Arten geschrieben, entweder direkt in Razor oder in einer kompilierten Assembly. Welche Möglichkeit sollten Sie wählen? Das hängt natürlich von den Umständen ab. Im Fall meines URL-Kürzers bestand der Code nur aus einer Interaktion mit der API eines externen Anbieters. Es wird kein HTML übergeben. In meinem Szenario war es also besser, den Helfer in einer Assembly zu verpacken. Der Facebook-Helfer übergibt jedoch eine große Zahl an Markups und wurde daher als CSHTML-Helfer geschrieben. Helfer, die API-Aufrufe wrappen und Markups übergeben müssen, können auch einen hybriden Ansatz verfolgen, bei dem Sie beides können: Ausführung von Funktionen in Razor und in einer Assembly.

Ein Beispiel hierfür finden Sie in UserVoiceHelper auf UserVoiceHelper.codeplex.com.

Wenn wir uns nun unsere Website anschauen, sehen Sie einige neue Ressourcen. Unterhalb des Rootverzeichnisses gibt es nun den Ordner /bin mit zwei neuen Assemblys. Dies ist das Ergebnis der Installation des Pakets durch NuGet. Außerdem sehen Sie die Datei ReadMe.UrlShortener.txt im Rootverzeichnis, die Anweisungen zur Verwendung des Helfers enthält. Andere Helfer, wie z. B. der Facebook-Helfer, fügen eigene Ordner und eigenen Code im Ordner App_Code hinzu.

Daten

Es ist ziemlich schwierig, eine Website ohne einen Datenspeicher im Hintergrund auszuführen. WebMatrix wird mit einer neuen Version von SQL Compact Server Compact Edition 4 bzw. SQL Compact ausgeliefert. Es handelt sich hierbei um ein kostenloses Datenbankmodul, das keine Installation und keine xcopy-Bereitstellungen unterstützt. Da SQL Compact eine Version von SQL Server ist, können Sie jederzeit ohne größeren Aufwand auf eine erweiterte Version von SQL Server aktualisieren. WebMatrix wird sogar mit einem Tool bereitgestellt, das Ihnen beim Upgrade der SQL Compact-Datenbank auf SQL Server hilft.

WebMatrix verfügt über integrierten Editorsupport für Ihre Datenbankanforderungen. Von der Tabellenerstellung bis zur Datenerstellung – Sie können alles von WebMatrix durchführen. Nachdem Sie die Datenbank und alle notwendigen Ressourcen erstellt haben, ist alles in einer Datenbankdatei mit der Erweiterung SDF enthalten. Abbildung 8 ist ein einfacher Datenzugriffsaufruf. 

Abbildung 8 Abfrage von Cars.cshtml nach Daten

    @{ 
      var db = Database.Open("Cars");
      var selectQueryString = "SELECT * FROM Models ORDER BY Year";
    }
    <!DOCTYPE html>
    <html lang="en">
      ... 
        <tbody>
          @foreach (var row in db.Query(selectQueryString))
          {
            <tr>
              <td>@row.Year</td>
              <td>@row.Maker</td>
              <td>@row.Model</td>
            </tr>
          }
        </tbody>
      ...
    </html>

Ich beginne, indem ich die Autodatenbank öffne und frage diese Verbindung später in einer foreach-Schleife ab. In der Schleife zeige ich ein Ergebnis pro Zeile an. Nach dem Rendern der Seite senden Sie die Seite zur Quellansicht. Sie sehen erneut reines HTML. Teile dieses Beispiels wurden aus Gründen der Kürze ausgelassen, sind jedoch im Onlinequellcode in der Datei DataAccess.cshtml verfügbar.

Bereitstellung

Ihre Website ist grundsätzlich nutzlos, wenn Sie über kein Tool für die Bereitstellung verfügen. Auf der Windows-Plattform hat dies stets IIS bedeutet. Weitere Informationen zu IIS finden Sie auf iis.net. IIS ist seit jeher ein Bestandteil des Windows-Betriebssystems und wird von Ihrem Hostinganbieter oder von Ihren IT-Mitarbeitern konfiguriert und verwendet. Webentwickler auf Windows haben in der Regel IIS oder den integrierten Visual Studio-Webserver namens Cassini verwendet. Mit der Veröffentlichung von WebMatrix und Visual Studio 2010 SP1 steht uns nun IIS Express als zusätzliche Plattform bereit. IIS Express ist das beste aus beiden Welten – die Leistungsfähigkeit von IIS und die Einfachheit von Cassini.

IIS Express wird standardmäßig mit WebMatrix installiert. Sie können die Anwendung jedoch auch getrennt mittels WebPI herunterladen. Anders als die Vollversion von IIS wird IIS Express wie jedes andere Benutzermodusprogramm installiert. Sie finden es unter  C:\Program Files (x86)\IIS Express. Es besteht aus zwei Programmen, iisexpress.exe und iisexpresstray.exe. Das erste Programm ist das eigentliche IIS Express, während iisexpresstray das visuelle Symbol ist, das im Benachrichtigungsbereich von Windows ausgeführt wird.

IIS Express wird in der Regel von der Befehlszeile aus gestartet (cmd.exe). Es gibt eine Reihe von Optionen, die Sie übergeben können, wie path, port, name, framework version und mehr. Geben Sie für alle Befehle Folgendes ein: > iisexpress.exe /? Wenn ich einen Webserver für meine neue WebMatrix-Website außerhalb von WebMatrix selbst starten möchte, muss ich nur Folgendes eingeben:

> iisexpress.exe /path:"c:\MySite" /port:81

 Anschließend können Sie den von Ihnen bevorzugten Internetbrowser öffnen und zu http://localhost:81 navigieren. Damit wird Ihre Website unter C:\MySite bereitgestellt.

WebMatrix verbirgt all dies vor Ihnen, die Möglichkeit ist jedoch vorhanden, wenn gewünscht. Nach Klicken auf „Run“ (Ausführen) startet WebMatrix IIS Express im Systembereich und führt die Konfiguration für Sie durch. Wenn Sie WebMatrix beenden, wird auch IIS Express beendet.

Suchrelevanz

Die Suchrelevanz ist wichtiger als je zuvor. Sie können nicht auf Bing oder Google warten, um Ihre Website relevant zu machen. Um Sie hierbei zu unterstützen, verfügt WebMatrix über eine Berichtsfunktion namens Search Engine Optimization (SEO) (Suchmaschinenoptimierung).

Klicken Sie auf die Registerkarte für die Berichtserstellung unten links in WebMatrix, und Sie erhalten die Möglichkeit, einen neuen SEO-Bericht zu erstellen. Nun crawlt WebMatrix durch Ihre Website und sucht nach Abschnitten, die möglicherweise für Suchmaschinen von besonderer Relevanz sind. Nach dem WebMatrix Ihre Website durchsucht hat, wird Ihnen eine detaillierte Liste von Verletzungen angezeigt, zusammen mit Empfehlungen, wie Sie diese beheben können. In Abbildung 9 sehen Sie ein Beispiel für einen SEO-Bericht, der für den Democode für diesen Artikel ausgeführt wurde.

image: SEO Reporting

Abbildung 9 SEO-Bericht

Bereitstellung

Sie haben zahllose Stunden mit der Perfektionierung Ihrer Website verbracht. Nun müssen Sie diese bereitstellen. WebMatrix erledigt dies in nur zwei Schritten: Konfigurieren und Bereitstellen. Im WebMatrix-Band sehen Sie die Schaltfläche „Publish“ (Veröffentlichen). Die Konfiguration der Bereitstellungseinstellungen ist natürlich von Ihrem Hostinganbieter und dessen Umgebung abhängig. Abbildung 10 zeigt das Dialogfeld mit den Einstellungen für die Veröffentlichung. WebMatrix unterstützt sowohl FTP als auch WebDeploy direkt. Wählen Sie die entsprechenden Einstellungen aus, und klicken Sie auf „Publish“ (Veröffentlichen).

image: Publishing Settings

Abbildung 10 Einstellungen für die Veröffentlichung

Sie haben keinen Hostinganbieter? Klicken Sie auf „Find Hosting Provider“ (Hostinganbieter suchen). Dies führt Sie auf asp.net/webmatrix/hosts. Dort können Sie einen Hostinganbieter auswählen, der für WebMatrix bereits konfiguriert und zertifiziert ist. Wenn Sie bereits eine Website haben, deckt WebMatrix auch diese ab. Im gleichen Veröffentlichungsmenü finden Sie auch die Option „Download Published Site“ (Veröffentlichte Website herunterladen). Es handelt sich einfach um das Gegenteil einer Bereitstellung. Der Prozess verwendet die gleichen Einstellungen, die Sie für die Bereitstellung konfiguriert haben. Nach der Konfigurierung der Einstellungen für die Veröffentlichung können Sie Ihre aktuelle Website auf den lokalen Computer herunterladen, um sie zu bearbeiten. Nach dem Abschluss der Bearbeitung stellen Sie sie einfach erneut bereit.

Erweiterungen

Wäre es nicht schön, wenn Sie bei der Auswahl eines Frameworks wüssten, dass dieses mit Ihren Anforderungen und der Komplexität Ihrer Website wachsen? Über die Jahre wurden für ASP.NET genau die Komponenten entwickelt, die dies tun. Heute gibt es zahlreiche Komponenten dieser Art, und wir können diese entsprechend den Anforderungen kombinieren. In Abbildung 1 haben Sie gesehen, wie alles auf ASP.NET und darüber hinaus auf .NET aufbaut. Das bedeutet, dass die Migrierung Ihrer WebMatrix-Anwendung nach Visual Studio möglich ist. Dies erfolgt mit einem Mausklick.

Wenn Sie sich das WebMatrix-Band genauer anschauen, sehen Sie oben rechts eine Schaltfläche für das Öffnen in Visual Studio. Damit wird Ihre Website als ein ASP.NET-Websiteprojekt in Visual Studio geöffnet. Es hört jedoch nicht mit der eigentlichen Website auf. Wahrscheinlich haben Sie auch eine Datenbank. Sie können jede SQL Compact-Datenbank zu einer höheren Version von SQL Server portieren. WebMatrix unterstützt Sie bei dieser Migrierung durch die Migrationsschaltfläche in den Datenbankmenüs.

Zusammenfassend lässt sich sagen, dass WebMatrix als Tool für jeden Benutzer entwickelt wurde und eine gute Ergänzung zu Visual Studio darstellt. Die Art Ihrer Nutzung von WebMatrix ist von der jeweiligen Aufgabe abhängig. Es ist nichtsdestoweniger ein Tool in Ihrer Toolbox. Sie können problemlos die ASP.NET-Komponenten auswählen, die Sie nutzen möchten, und die Migration zu Visual Studio und SQL Server ist ebenfalls problemlos. Die Helfer und das neue Layoutsubsystem machen Wiederverwendbarkeit zur Realität. Wenn die völlig neue Erstellung einer Website nicht interessant ist, können Sie mit WebMatrix von einer bewährten Anwendung aus beginnen, die in WebPI aufgelistet ist, wie Umbraco oder WordPress, und Ihre Website direkt bei Ihrem Hostinganbieter bereitstellen.

Lieder konnte ich zahlreiche weitere Funktionen in diesem Artikel nicht behandeln. Dazu gehören das Zwischenspeichern, die Weiterleitung und das Debuggen. Alle in diesem Artikel verwendeten Links finden Sie unter bit.ly/IntroToWebMatrix.

Clark Sell arbeitet als Senior Developer Evangelist für Microsoft von Chicago aus. Er führt einen Blog auf csell.net, veröffentlicht Podcasts auf DeveloperSmackdown.com, und Sie können ihm auf twitter.com/csell5 folgen.

Unser Dank gilt den folgenden technischen Experten für die Durchsicht dieses Artikels: Erik Porter,Mark Nichols und Brandon Satrom