Konvertierung von Webprojektmappen und Projektdateien

Aktualisiert: November 2007

Visual Studio 2005 ändert das Webprojektmodell in vielerlei Hinsicht. Es wird z. B. keine Projektdatei mehr benötigt, da alle Dateien im Webanwendungsordner als Teil des Webprojekts betrachtet werden.

Das neue Webprojekt hat Auswirkungen auf die Konvertierung von Dateien wie ASP.NET Web Forms-Seiten (ASPX-Dateien), ASP.NET-Benutzersteuerelementen (ASXC-Dateien), der Datei Global.asax und der Datei Web.config. Die genauen Änderungen in diesen Dateien hängen von der Programmiersprache des Projekts ab, das konvertiert wird.

Visual Studio 2005 ändert das Code-Behind-Modell, sodass partielle Klassen verwendet werden. So kann eine Klasse mehrere Dateien umfassen. Im vorhergehenden Code-Behind-Modell erbt die ASPX-Datei von einer kompilierten Klassendatei, die aus der entsprechenden Code-Behind-Datei erstellt wurde (ASPX.VB oder ASPX.CS). Im neuen Code-Behind-Modell erbt die ASPX-Datei von einer kompilierten Klasse, die aus der entsprechenden ASPX.VB-Datei oder ASPX.CS-Datei sowie aus einer Stubdatei besteht. Diese wird aus der ASPX-Datei generiert und definiert die Felddeklarationen für die in der ASPX-Datei verwendeten Steuerelemente. Durch diese Änderung kann automatisch generierter Code vom Code des Benutzers unterschieden werden. Benutzersteuerelemente (ASCX) und die Code-Behind-Dateien für Benutzersteuerelemente werden ähnlich behandelt. Details zum Code-Behind-Modell finden Sie unter Codemodell für ASP.NET-Webseiten.

Visual Studio 2005 ändert das Kompilierungsmodell so, dass nicht mehr eine Assembly, sondern eine Vielzahl von Assemblys erstellt wird. Alle ASP.NET-Webseiten und Benutzersteuerelemente können jeweils in einer eigenen Assembly kompiliert werden. Durch diese Änderung sind mehr Bereitstellungsszenarien möglich, z. B. Veröffentlichen des Quellcodes auf dem Server und anschließendes dynamisches Kompilieren von Teilen der Webanwendung bei Bedarf.

Code-Behind-Dateien

Die folgenden Änderungen werden an ASP.NET-Webseiten und -Benutzersteuerelementen bei der Konvertierung zum neuen Code-Behind-Modell von ASP.NET, Version 2.0, vorgenommen:

  • Das CodeBehind-Attribut in der @ Page-Direktive wird in ein CodeFile-Attribut geändert.

  • Der @ Page-Direktive wird ein Inherits-Attribut hinzugefügt, das auf die zugeordnete Compile-With-Klassendatei zeigt.

  • Alle Code-Behind-Klassendefinition werden geändert, um das Partial-Schlüsselwort zu implementieren.

  • Memberdeklarationen für Benutzersteuerelemente werden von der Code-Behind-Seite entfernt. Im Compile-With-Modell werden Instanzen von Benutzersteuerelementen automatisch aus dem deklarativen Code erstellt.

  • Ereignisse werden mit deklarativer Syntax an Steuerelemente gebunden. Das Click-Ereignis für ein Button-Steuerelement wird z. B. an das Steuerelement gebunden, indem im deklarativen Code dem asp:button-Element ein OnClick-Attribut hinzugefügt wird. Delegaten und das Handles-Schlüsselwort in Visual Basic werden in Methoden entfernt. Delegaten werden nicht für Member entfernt, die nicht im deklarativen Code dargestellt werden, z. B. Delegaten für dynamisch erstellte Steuerelemente.

  • Memberdeklarationen in Klassendateien (jedoch nicht in Seitenklassen), die als Friend oder Internal gekennzeichnet sind, werden in Public geändert.

  • Debuggerhaltepunkte werden nicht konvertiert, und sie werden nicht in den konvertierten Dateien angezeigt.

    Hinweis:

    Wenn eine Webseite oder ein Benutzersteuerelement nicht über ein CodeBehind-Attribut in der @ Page-Direktive verfügt, wird es nicht konvertiert. Entsprechend bleiben Webseiten oder Steuerelemente erhalten, die ein Src-Attribut enthalten.

Eigenständige Codedateien

An eigenständigen Codedateien werden die folgenden Änderungen vorgenommen:

  • Die eigenständigen Codedateien werden in das Verzeichnis App_Code verschoben.

  • Memberdeklarationen, die als Friend oder Internal gekennzeichnet sind, werden in Public geändert. Diese Änderung ist erforderlich, weil bei mehreren Assemblys die Zugriffsebene zulassen muss, dass die Member für andere Assemblys sichtbar sind, in denen sich die kompilierte eigenständige Codedatei nicht befindet.

  • Aufrufe der Type.GetType-Methode werden geändert, sodass sie die BuildManager.GetType-Methode verwenden. Die BuildManager.GetType-Methode sucht Typen in Assemblys der obersten Ebene.

  • Debuggerhaltepunkte werden nicht konvertiert, und sie werden nicht in den konvertierten Dateien angezeigt.

Designer-Einstellungen

Einstellungen auf einer Seite, die sich auf den Designer beziehen, werden bei der Konvertierung unterschiedlich behandelt:

  • Das MS_POSITIONING-Attribut (Flusslayout oder Rasterlayout) wird nicht geändert, und Visual Studio behält diese Einstellung gemeinsam mit den absoluten Positionierungsattributen von einzelnen Steuerelementen bei. Standardmäßig wird bei neuen Seiten in Visual Studio jedoch das Flusslayout verwendet, und sie enthalten nicht das MS_POSITIONING-Attribut.

  • Das <meta>-Tag für die Standardsprache für Clientskripts wird intakt gelassen.

Datei "Global.asax"

Bei der Konvertierung der Datei Global.asax wird die zugehörige Code-Behind-Datei in das Verzeichnis App_Code verschoben. Bei der Konvertierung werden die folgenden Änderungen vorgenommen:

  • Das CodeBehind-Attribut und das Inherits-Attribut werden aus der @ Application – "Global.asax"-Direktive entfernt.

  • Der @ Page-Direktive wird ein Language-Attribut hinzugefügt, sofern es noch nicht angegeben wurde.

  • Für Visual Basic wird der Klassendatei eine Namespace-Anweisung hinzugefügt. Der Namespace wird vom Stammnamespace im Webprojekt definiert.

Datei Web.config

In Visual Studio 2005 unterstützt die Datei Web.config eine größere Anzahl von Elementen als in Visual .NET. Zum Beispiel werden Projekteinstellungen, die weiterhin für Visual Studio gelten, oft in die Datei Web.config konvertiert. Ausführliche Informationen finden Sie unter Konvertierung von Webprojekteinstellungen.

Siehe auch

Konzepte

Übersicht über Webanwendungsprojekte

Webprojektkonvertierung aus Visual Studio .NET

Konvertierung von Webprojekteinstellungen

Weitere Ressourcen

Syntax von "Global.asax"

ASP.NET-Konfigurationseinstellungen

ASP.NET-Konfigurationsdateien

Syntax von "Global.asax"