Kompilieren von Webanwendungsprojekten

Aktualisiert: November 2007

Der Webanwendungsprojekttyp stellt eine Alternative zum Websiteprojekttyp dar, der in Microsoft Visual Studio 2005 eingeführt wurde. Das Webanwendungsprojekt-Modell basiert auf dem Visual Studio .NET 2003-Webprojektmodell. Es wurde entwickelt, um die Konvertierung von Visual Studio .NET 2003-Webprojekten in höheren Versionen von Visual Studio zu vereinfachen und notwendige Codeänderungen zu reduzieren. Codedateien im Projekt werden mithilfe von Microsoft Build Engine (MSBuild) in eine einzelne Assembly vorkompiliert. ASP.NET-Webseiten (.aspx) und Benutzersteuerelemente (.ascx) werden vom ASP.NET-Compiler dynamisch auf dem Server kompiliert.

Hinweis:

Sie können ASP.NET-Webanwendungsprojekte mithilfe von Visual Studio oder Visual Web Developer Express Edition erstellen.

Kompilierungsmodell

Das Kompilierungsmodell für Webanwendungsprojekte ähnelt dem Kompilierungsmodell von Visual Studio .NET 2003. Sämtliche Codedateien (eigenständige Dateien, Code-Behind-Dateien und Designerklassendateien) im Projekt werden in eine einzelne Assembly vorkompiliert. Diese Assembly wird standardmäßig erstellt und im Ordner Bin beibehalten. Da bei diesem Kompilierungsmodell eine einzelne Assembly erstellt wird, können Sie Attribute wie Name und Version angeben. Sie können auch den Speicherort der Ausgabeassembly angeben.

Ein Webanwendungsprojekt wird nicht wie bei einem Websiteprojekt durch einen Projektordner definiert, sondern durch eine Projektdatei. Die Projektdatei enthält die im Projekt verwendeten Dateien sowie die Assemblyverweise und andere Projektmetadateneinstellungen. Dateien im Projektordner, die nicht in der Projektdatei definiert sind, werden nicht als Teil des Webanwendungsprojekts kompiliert. Wenn Projekteinstellungen über Visual Studio oder Visual Web Developer Express Edition hinzugefügt und geändert werden, wird die zu jedem Projekt generierte Projektdatei (.*proj) entsprechend angepasst.

Zum Ausführen und Debuggen von Seiten müssen Sie das vollständige Webanwendungsprojekt kompilieren. Das Erstellen des vollständigen Webanwendungsprojekts kann schnell gehen, da Visual Studio und Visual Web Developer Express Edition ein inkrementelles Buildmodell verwenden, bei dem nur die geänderten Dateien erstellt werden.

Weitere Informationen finden Sie unter Übersicht über Webanwendungsprojekte.

Vorkompilieren von Klassendateien

Webanwendungsprojekte verwenden MSBuild, um Klassendateien vorzukompilieren. Diese Klassendateien werden in eine einzelne Assembly kompiliert. Standardmäßig werden sie im Ordner Bin abgelegt. Der Kompilierungsvorgang kann mithilfe standardmäßiger MSBuild-Erweiterbarkeitsregeln erweitert und angepasst werden. Weitere Informationen finden Sie unter Übersicht über MSBuild.

In der folgenden Tabelle werden die Klassendateitypen von Webanwendungsprojekten beschrieben, die in eine einzelne Assembly kompiliert werden.

Klassendateityp

Beschreibung

Eigenständig

Klassendateien, die Sie erstellen und zum Ordner Bin hinzufügen können.

Code-Behind

Benutzerdefinierter Code, der sich direkt auf Inhaltsdateien bezieht.

Designer

Code, der automatisch generiert wird. Die .designer-Datei sollte nicht geändert werden.

Anpassen von Kompilierungsoptionen

Auf der Eigenschaftenseite Anwendung des Fensters Projekt-Designer können Sie den Namen der Ausgabeassembly, die Version und andere Details angeben. Verwenden Sie die Seite Erstellen im Fenster Projekt-Designer, um die Buildkonfiguration des Projekts anzugeben. Sie können z. B. die Behandlungsweise von Fehlern festlegen sowie Details über die Assemblyausgabe angeben. Außerdem können Sie während der Kompilierung Präbuild- und Postbuildaktionen hinzufügen, indem Sie die entsprechenden Werte auf der Eigenschaftenseite Buildereignisse festlegen. Weitere Informationen zu Eigenschaftenseiten finden Sie unter Projekte, Elemente der Benutzeroberfläche.

Festlegen der Eigenschaft "Buildvorgang"

Standardmäßig werden nur Klassendateien von Webanwendungsprojekten von MSBuild kompiliert, wenn die Eigenschaft Buildvorgang auf Kompilieren festgelegt ist. Wenn in einem Webanwendungsprojekt jedoch Klassendateien im Ordner App_Code enthalten sind, werden diese Klassendateien ebenfalls vom ASP.NET-Compiler kompiliert. Dies gilt auch dann, wenn ihr Buildvorgang nicht explizit auf Kompilieren festgelegt ist.

Hinweis:

Der Ordner App_Code wird für Websiteprojekte in Visual Studio 2005 verwendet. In Webanwendungsprojekten ist dieser Ordner normalerweise nicht enthalten. Weitere Informationen über den Ordner App_Code finden Sie unter Ordner für freigegebenen Code in ASP.NET-Websites.

Dynamische Kompilierung

Codedateien im Projekt werden zwar mithilfe von MSBuild in eine einzelne Assembly vorkompiliert, ASP.NET-Webseiten (.aspx) und Benutzersteuerelemente (.ascx) eines Webanwendungsprojekts werden jedoch vom ASP.NET-Compiler dynamisch auf dem Server kompiliert. In einem Webanwendungsprojekt können Webseiten und Benutzersteuerelemente das CodeBehind-Attribut und das Inherits-Attribut in ihrer @ Page-Direktive oder @ Control-Direktive verwenden. Das CodeBehind-Attribut verweist auf die zu verwendende Code-Behind-Datei. Das Inherits-Attribut verweist auf einen Namespace und eine Klasse in der Code-Behind-Datei. 

In Webanwendungsprojekten können Sie mit bestimmten Einschränkungen Änderungen an den kompilierten und bereitgestellten ASP.NET-Webseiten in der Site vornehmen. Sie können z. B. die Anordnung der Steuerelemente, die Farben, Schriftsätze und sonstige Darstellungseigenschaften von Seiten ändern. Beim ersten Ausführen der Site führt ASP.NET weitere Kompilierungsschritte durch, um aus dem Markup eine Ausgabe zu erstellen.

Sie können ein Steuerelement statisch in der Code-Behind-Datei deklarieren, solange Sie es als öffentlich oder geschützt deklarieren. Da die ASPX-Seite von der Code-Behind-Datei erbt, verwendet sie diese Deklaration und deklariert kein neues Steuerelement. Das Verschieben der Steuerelementdeklaration in die Code-Behind-Datei empfiehlt sich in folgenden Situationen:

  • Wenn der Steuerelementtyp von einem Standardtyp abgeleitet werden muss.

  • Wenn Sie einen anderen Bereich als den Standardbereich für das Steuerelement wünschen. Der Bereich bezieht sich auf die Zugriffsebene, z. B. public, private, internalprotected und protected internal.

  • Wenn Sie Metadatenattribute zur Deklaration des Steuerelements hinzufügen möchten.

  • Wenn Sie XML-Codekommentare für die Deklaration des Steuerelements schreiben möchten.

Weitere Informationen zum Hinzufügen von Steuerelementen finden Sie unter Gewusst wie: Programmgesteuertes Hinzufügen von Steuerelementen zu einer ASP.NET-Webseite.

Bereitstellung

Da alle Klassendateien in eine einzelne Assembly kompiliert werden, muss nur diese Assembly zusammen mit den ASPX- und ASCX-Dateien und anderen statischen Inhaltsdateien bereitgestellt werden. In diesem Modell werden ASPX-Dateien erst kompiliert, wenn sie vom Browser angefordert werden.

Sie können jedoch auch ASPX-Dateien kompilieren und einer einzelnen Assembly zur Bereitstellung hinzufügen. Dieser Vorgang kann mithilfe von Webbereitstellungsprojekten durchgeführt werden, einem Add-In für Visual Studio. Sie können dieses Add-In auf der ASP.NET Developer Center-Website unter Visual Studio 2005 Web Deployment Projects herunterladen. Weitere Informationen über die Bereitstellung von Webanwendungsprojekten finden Sie unter Gewusst wie: Veröffentlichen von Webanwendungsprojekten.

Siehe auch

Konzepte

Übersicht über MSBuild

Übersicht über Webanwendungsprojekte

Ordner für freigegebenen Code in ASP.NET-Websites

Übersicht über ASP.NET-Webseiten

Referenz

Seite "Buildereignisse", Projekt-Designer (C#)

Seite "Erstellen", Projekt-Designer (C#)

@ Page

Weitere Ressourcen

MSBuild-Grundlagen