2 Stimmen

Kompiliert App_Code in ASP.Net neuen Code in einer sekundären temporären AppDomain?

Ich versuche, besser zu verstehen, wie der App-Code-Ordner funktioniert, und insbesondere bin ich neugierig, wie neue Objekte, die eine neue Klasse im App-Code-Ordner sind in der aktuellen AppDomain enthalten. Wird eine zweite, temporäre AppDomain auf die gleiche Weise erstellt, wie wenn ich neue Objekte mit dem CodeDom kompiliere?

In vielerlei Hinsicht ist die Möglichkeit, neue Klassen/Objekte in eine Webanwendung zu verschieben, sehr überzeugend. Rob Connery's MVC Schaufenster ist eine gute Illustration. Wenn Sie den App-Code-Ordner für die Bereitstellung neuer Funktionen verwendet haben, gab es dabei irgendwelche Kompromisse oder Probleme, die Sie beachten sollten?

UPDATE:

Ich habe eine Artikel in der Zeitschrift CoDe mit dieser interessanten Passage:

Ihr anwendungsspezifischer Code kann der ASPX-Seite oder des ASPX-Steuerelements, er kann in eine partielle CodeBeside Klasse, oder Sie können komplett eigenständige Klassen im Ordner APP_CODE Ordner erstellen. Der APP_CODE-Ordner ist ein spezieller Ordner in einem ASP.NET 2.0 Projekt und jeder nicht seiten- oder steuerungsbezogener Quellcode in Ihrem Webprojekt muss in diesem Ordner abgelegt werden. ASP.NET behandelt den Inhalt von APP_CODE wie ein Bibliotheksprojekt und kompiliert den Inhalt in eine separate Assembly. Diese Assembly wird dann referenziert von alle Assemblies auf Seiten- oder Verzeichnisebene Assemblies, die ASP.NET aus Ihren ASPX/ASCX-Seiten erstellt, die eine der die in APP_CODE definierten Klassen verwenden.

Meine Frage steht noch - wird eine zweite AppDomain erstellt, die diese Bibliothek unterstützt, und wenn ja, sind die Auswirkungen auf die Leistung minimal?

2voto

chris166 Punkte 4781

Ich kenne die Einzelheiten nicht, aber es wird sicherlich in verschiedenen dynamischen Baugruppen sein. Eine Klasse kann sich nicht in einer anderen AppDomain befinden. Nur eine Instanz einer Klasse kann sich in einer anderen AppDomain befinden, und dann ist es wirklich schwierig, von einer anderen AppDomain aus darauf zuzugreifen (nur durch Remoting)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X