it-swarm.com.de

CodeFile vs CodeBehind

Worin besteht der Unterschied zwischen CodeFile= "file.ascx.cs" und CodeBehind= "file.ascx.cs" in der Deklaration eines ASP.Net-Benutzersteuerelements?

Ist eine neuere oder empfohlen? Oder haben sie eine spezifische Verwendung?

133
Soldarnal

CodeBehind: Muss kompiliert werden (ASP.NET 1.1-Modell). Die kompilierte Binärdatei wird im bin-Ordner der Website abgelegt. Sie müssen vor der Bereitstellung eine Kompilierung in Visual Studio durchführen. Es ist ein gutes Modell, wenn der Quellcode nicht als einfacher Text angezeigt werden soll. Zum Beispiel, wenn Sie an einen Kunden liefern, für den Sie keinen Code angeben müssen.

CodeFile: Sie stellen der Quelldatei die Lösung für die Bereitstellung zur Verfügung. Die ASP.NET 2.0-Laufzeit kompiliert den Code bei Bedarf. Die kompilierten Dateien befinden sich unter Microsoft.NET [.NET-Version]\Temporäre ASP.NET-Dateien.

160
Shafqat Ahmed

Ich arbeite mit einem Anwendungsprojekt in Visual Studio Express 2012 für Web und benutze .NET 4.0. Im Code hinter den Dateien für meine Anmelde- und Kennwortänderungsseiten fand ich eine Situation, in der ich sowohl CodeBehind als auch CodeFile in der Deklaration benötigte.

Wenn ich keine Codedatei hinzufüge, verweise ich auf

CodeFile=login.aspx.cs

Die Webseite wird nicht analysiert und der Browser zeigt einen Parser-Fehler an. Es ist egal, ob ich das Projekt kompiliere oder nicht.

Wenn ich keinen Code hinter Verweis wie hinzufügen

CodeBehind=login.aspx.cs

Verweise auf Sicherheitsklassen wie MembershipUser schlagen sowohl beim Kompilieren als auch beim Versuch, Intellisense zu verwenden, mit einem Fehler wie "Der Typ oder Namespace MembershipUser kann nicht gefunden werden" fehl. Ich habe einen Verweis auf System.Web.ApplicationServices hinzugefügt, der vom .Net 4.0-Framework benötigt wird.

Ich sollte hinzufügen, dass diese problematischen Dateien in einer Anwendung auf der Website ausgeführt werden, die mit dem Anwendungstool IIS) erstellt wurde. Wenn ich die Website in Visual Studio öffne, habe ich keine Probleme mit Parser- oder Referenzfehlern. Diese Verwirrung tritt nur auf, wenn ich die Anwendung als Projekt in Visual Studio öffne.

5
DavidHyogo

Codebehind-Datei muss vor dem Ausführen kompiliert werden, aber in src müssen wir nicht kompilieren und dann ausführen. Speichern Sie einfach die Datei.

5
Ranjeet Prasad