Freigeben über


Ein ASP.NET verwendender Client

Eines der wichtigsten Features von .NET besteht darin, dass derselbe Code sowohl in ASP.NET als auch in eigenständigen Clientanwendungen ausgeführt werden kann. Natürlich gibt es einige Unterschiede. Die ASP.NET-Seite erzeugt in der Regel HTML-Code als Reaktion auf eine HTTP-Anforderung, und die Seite selbst wird im Unterschied zu den vorherigen Beispielen dynamisch kompiliert. Jede ASP.NET-Seite wird einzeln analysiert, und die Syntax wird überprüft. Schließlich wird eine .NET-Laufzeitklasse erstellt, die kompiliert und aufgerufen wird. ASP.NET legt das kompilierte Objekt im Zwischenspeicher ab, so dass spätere Anforderungen den Kompilierungsschritt nicht durchlaufen und somit viel schneller ausgeführt werden.

Die meisten vorhandenen ASP-Seiten verwenden Microsoft JScript oder Microsoft Visual Basic Scripting Edition (VBScript). Eine .NET-kompatible Version von JScript wird mit .NET Framework mitgeliefert, und VBScript-Code wird ganz selbstverständlich auf Visual Basic aktualisiert. Anhand des folgenden Codes wird die Seite unter Verwendung von Visual C# gezeigt, dieselbe Seite kann jedoch ebenso einfach in Visual Basic oder JScript geschrieben werden:

Auflistung 11. Client in ASP.NET (ClientASP.aspx)

<%@ Page Language="C#" Description="ASP.NET Component Test" %>
<%@ Import Namespace="CompCS"%>
<%@ Import Namespace="CompVC"%>
<%@ Import Namespace="CompVB"%>

<html>
<script language="C#" runat=server>
void Page_Load(Object sender, EventArgs EvArgs) {
   String Out = "";
   Int32 Count = 0;

   // Iterate through the component's strings, and concatenate them.
   Out = Out + "Strings from C# StringComponent<br>";
   CompCS.StringComponent myCSStringComp = new 
   CompCS.StringComponent();
   for (int index = 0; index < myCSStringComp.Count; index++) {
     Out = Out + myCSStringComp.GetString(index) + "<br>";
   }
   Out = Out + "<br>";

   // Iterate throught component's strings, and concatenate them.
   Out = Out + "Strings from Visual C++ StringComponent<br>";
   CompVC.StringComponent myVCStringComp = new 
   CompVC.StringComponent();
   for (int index = 0; index < myVCStringComp.Count; index++) {
      Out = Out + myVCStringComp.GetString(index) + "<br>";
   }
   Out = Out + "<br>";

   // Iterate over component's strings and concatenate.
   Out = Out + "Strings from Visual Basic StringComponent<br>";
   CompVB.StringComponent myVBStringComp = new 
   CompVB.StringComponent();
   for (int index = 0; index < myVBStringComp.Count; index++) {
      Out = Out + myVBStringComp.GetString(index) + "<br>";
   }

   Message.InnerHtml = Out;
}
</script>
<body>
   <span id="Message" runat=server/>
</body>
</html>

Dies entspricht im Wesentlichen dem Code, der in den eigenständigen Client-Beispielen verwendet wird, mit der einzigen Ausnahme, dass er eine Zeichenfolge (mit der Bezeichnung out) erstellt und die Zeichenfolge einer Eigenschaft eines HTML-Serversteuerelements zuweist.

**Hinweis   **Der Code hätte das vertraute Response.Write verwenden können, um die Zeichenfolge direkt in den HTML-Ausgabestream zu schreiben.

Die Seite gibt Visual C# als Sprache an, es hätte jedoch auch Visual Basic oder sogar JScript verwendet werden können:

<%@ Page Language="C#" Description="ASP.NET Component Test"

Das Importieren von Bibliotheken in ASP.NET erfolgt ebenfalls auf etwas andere Art und Weise:

<%@ Import Namespace="CompVB"%>
<%@ Import Namespace="CompCS"%>
<%@ Import Namespace="CompVC"%>

In den oben stehenden Zeilen wird <%...%> verwendet, um Skriptcode anzuzeigen. Darüber hinaus werden die zu importierenden Namespaces angegeben. Wie bereits weiter oben erwähnt, müssen sich die Assemblies im Unterverzeichnis \Bin des Anfangspunkts der Anwendung befinden.

Eine weitere Nuance dieser Seite ist folgende Zeile:

<script language="C#" runat="server">

Dadurch wird der Server angewiesen, den Code auf dem Server auszuführen, und nicht den Codetext als Teil des HTML-Streams an den Client zurückzusenden.

Web Forms bietet die spezielle Erkennung der folgenden sechs Methoden:

  • Page_Init
  • Page_Load
  • Page_DataBind
  • Page_PreRender
  • Page_Dispose
  • Page_Error

Diese Methoden werden automatisch mit Ereignishandlern für die Standardseitenereignisse verbunden. Der Ereignishandler für Load wird am häufigsten verwendet und enthält den Großteil des Codes für das Beispielprogramm:

void Page_Load(Object sender, EventArgs EvArgs) {...}

Der Rest des Codes ist verhältnismäßig einfach. Er verkettet lediglich Zeichenfolgen zu einer längeren Zeichenfolge mit der Bezeichnung out und fügt out dem HTML-Code mit folgender Anweisung hinzu:

Message.innerHTML = Out

Zum Testen dieser Seite sind einige Schritte erforderlich. Zunächst muss auf dem Testcomputer folgende Software installiert sein:

  • Internet-Informationsdienste (IIS)
  • Die Common Language Runtime
  • ClientASP.aspx
  • Die kompilierte CompVC.dll-Komponente, die kompilierte CompCS.dll-Komponente und die kompilierte CompVB.dll-Komponente

Wenn Sie .NET Framework SDK auf einem Computer installieren, auf dem IIS bereits installiert ist, kann der Computer ASP.NET ausführen. (Wenn Sie IIS nach der Installation von SDK installieren, sollten Sie das SDK erneut installieren.)

Außerdem müssen Sie ein virtuelles Verzeichnis konfigurieren (mit Hilfe von Internet Services Manager), das auf das Verzeichnis zeigt, in dem sich ClientASP.aspx befindet. Führen Sie zum Erstellen eines virtuellen Verzeichnisses mit Hilfe des IIS-Snap-Ins folgende Schritte aus:

  1. Wählen Sie die Website oder die FTP-Site aus, der Sie ein Verzeichnis hinzufügen möchten.
  2. Klicken Sie auf die Schaltfläche Aktion, zeigen Sie auf Neu, und wählen Sie Virtuelles Verzeichnis.
  3. Beenden Sie die Aufgabe mit Hilfe des Assistenten zum Erstellen virtueller Verzeichnisse.

Wenn Sie das NTFS-Dateisystem verwenden, können Sie ein virtuelles Verzeichnis auch erstellen, indem Sie in Windows Explorer mit der rechten Maustaste auf ein Verzeichnis klicken, anschließend auf Freigabe und dann auf die Registerkarte Webfreigabe klicken. Weitere Informationen finden Sie in der IIS-Dokumentation unter dem Thema "Erstellen von virtuellen Verzeichnissen". Die Dokumentation befindet sich auf dem Computer, auf dem IIS installiert ist, unter https://localhost/iisHelp/.

Das virtuelle Verzeichnis kann auch erstellt werden, indem die VBScript-Datei CreateVRoot.vbs ausgeführt wird, die sich im Verzeichnis CompTest befindet.

Die DLLs für kompilierte Komponenten sollten sich im Unterverzeichnis \Bin unter dem Anfangspunkt für das virtuelle Anwendungsverzeichnis befinden.

Angenommen, es wurde alles korrekt konfiguriert, dann ist das Ergebnis der Ausführung der Datei mit dem URL https://localhost/NetSDK/PlatformIntroduction/ClientASP.aspx eine Instanz des Internet Explorers mit einer Anzeige, die der folgenden ähnelt:

Siehe auch

Zusammenfassung des Lernprogramms für Entwicklung | Anhang A: Tools zum Durchsuchen von Namespaces