News combit Dev Blog

Eigene Objekte und Funktionen für den Web Designer

Veröffentlicht: Freitag, 19. Oktober 2018 | 0 Kommentar(e)
 
Erweiterbarkeit ist eine wichtige Größe im List & Label-Universum. Sie können dem Designer eigene Funktionen und Objekte hinzufügen, um komplexe Berechnungen innerhalb Ihres Codes oder benutzerdefinierter Objekte zu ermöglichen. Allerdings fehlte bisher ein wichtiger Aspekt - all dieser Code läuft nur auf dem Desktop. Wenn Ihre Anwendung auf einem Server läuft und Sie den Web Designer verwenden, haben Sie ein Problem - bis Version 24.

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.




Autor: Jochen Bartlau
Entwicklungsleiter List & Label

Jochen Bartlau leitet als Geschäftsführer die Softwareentwicklung bei combit. Microsoft .NET und Agiles Projektmanagement sind zwei seiner Steckenpferde. Der technikbegeisterte Physiker verbringt seine Freizeit am liebsten mit seiner Familie.


  


Kommentare


Aktuell gibt es noch keine Kommentare zu diesem Blogbeitrag.

Ergänzen Sie hier Ihren Kommentar
 
 
 
 
 

Lassen Sie sich über neue Kommentare zu diesem Blogbeitrag informieren


 
RSS
combit Dev BlogRSS
combit Entwicklerblog
Hier teilen wir Informationen über die Entwicklung unserer Softwareprodukte. Außerdem: Allgemeines über die Softwareindustrie.
Archiv
November 2018 (2)
Oktober 2018 (4)
September 2018 (4)
August 2018 (2)
Juli 2018 (2)
Juni 2018 (2)
Mai 2018 (1)
April 2018 (1)
März 2018 (1)
Februar 2018 (2)
Januar 2018 (1)
Dezember 2017 (1)
November 2017 (2)
Oktober 2017 (3)
September 2017 (3)
August 2017 (2)
Juli 2017 (2)
Juni 2017 (1)
Mai 2017 (2)
April 2017 (1)
März 2017 (1)
Ältere Blogposts
Einträge aus dem Zeitraum von März 2014 bis Februar 2017 finden Sie in unserem englischsprachigen Blog.
+49 (0) 7531 90 60 10