Nun gibt es die Möglichkeit, Ihre benutzerdefinierten Designer-Objekte und -Funktionen zu List & Label auf dem Server hinzuzufügen und anschließend im Web Designer oder Report Server Designer auf einem Client zu verwenden.
Web Designer
Um Ihre DesignerObjects- und DesignerFunctions-Instanzen dem Web Designer hinzuzufügen, müssen Sie Informationen über die Erweiterungsbibliotheken und deren Klassen zur Konfiguration der Webanwendung auf dem Server hinzufügen. Die Klasse WebDesignerOptions hat hierfür eine neue Eigenschaft ExtensionAssemblies. Ein einfaches Beispiel würde wie folgt aussehen. Das Beispiel geht von einem Ordner namens „extensions“ im Hauptverzeichnis der Webanwendung aus, der die zu ladenden Assemblys enthält.
string dllPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "extensions"); options.ExtensionAssemblies.Add(new combit.ListLabel24.Web.WebDesigner.WebDesignerExtension() { AssemblyName = "[YourExtensionAssemblyName].dll", ExtensionDirectory = dllPath, Dependencies = new List<string> { "[YourFirstExtensionAssemblyDependencyName].dll", "[YourSecondExtensionAssemblyDependencyName].dll", [...] }, ExtensionClasses = new System.Collections.Generic.List<combit.ListLabel24.Web.WebDesigner.WebDesignerExtensionClass>(){ new combit.ListLabel24.Web.WebDesigner.WebDesignerExtensionClass(){ ClassName = "YourExtensionClassName", // this class should be derived from the DesignerObject class ExtensionType = combit.ListLabel24.Web.WebDesigner.WebDesignerExtensionType.DesignerObject } } });
Report Server Designer
Um Ihre DesignerObjects- und DesignerFunctions-Instanzen dem Report Server Designer hinzuzufügen, müssen Sie Informationen über die Erweiterungsbibliotheken und deren Klassen der Datei privateSettings.config im WebUI-Ordner der Report Server-Anwendung auf dem Server hinzufügen. Ein einfaches Beispiel würde wie folgt aussehen. Das Beispiel geht von einem Ordner „C:Temp“ aus, der die zu ladenden Assemblys enthält. Der IIS-Anwendungspool-Benutzer muss Lesezugriff auf diesen Ordner haben.
<setting key="DesignerExtensions"> <DesignerExtensions> <DesignerExtension Name="[YourExtensionAssemblyName].dll" Path="C:Temp"> <Dependency Name="[YourFirstExtensionAssemblyDependencyName].dll" /> <Dependency Name="[YourSecondExtensionAssemblyDependencyName].dll" /> [...] <ExtensionClass ClassName="[YourExtensionClassName]" ExtensionType="DesignerObject"></ExtensionClass> </DesignerExtension> </DesignerExtensions> </setting>
Laden der Erweiterungen
Wenn Sie diesen Code zur Konfiguration der Webanwendung oder der Report Server privateSettings.config Datei auf dem Server hinzufügen, versucht der Web Designer bzw. der Report Server Designer auf dem Client automatisch, die Assembly herunterzuladen und als neue Erweiterung zu laden. Jedes Mal, wenn eine neue Version der Assembly auf dem Server im gleichen Ordner verfügbar ist, erfährt der Kunde durch Neustart eines beliebigen Clients von der Änderung und lädt die neue Assembly automatisch erneut herunter. Wenn die Assembly auf dem Server unverändert bleibt und bereits heruntergeladen wurde, entsteht fast kein Netzwerkverkehr, da nur die Prüfsumme der Datei übertragen wird