combit List & Label 26 - .NET Hilfe
Einführung in die Programmierung / .NET Systemarchitektur
In diesem Thema
    .NET Systemarchitektur
    In diesem Thema

    Allgemein

    Die in List & Label zur Verfügung gestellten .NET Komponenten basieren im Kern direkt auf den nativen Modulen von List & Label selbst. Diese setzen sich aus einigen Bibliotheken/DLLs zusammen. Eine Übersicht kann der Datei Redist.txt entnommen werden, die sich im Dokumentations-Verzeichnis befindet. Somit sind die .NET Komponenten keine unabhängigen Module mit einem eigenen Reporting-Kern. Sie verwenden direkt die Reporting-Funktionalität der nativen List & Label Module und sind somit direkt abhängig davon.

     

    Doch was bedeutet das nun im Detail und welche Besonderheiten gilt es dabei nun zu beachten?

     

    Zielplattform AnyCPU

    In .NET ist die Zielplattform AnyCPU kaum noch wegzudenken und meist Standard. Dabei entscheidet dann das .NET Framework zur Laufzeit, in welcher Bitness der Prozess ausgeführt werden soll. So wird bspw. passend zu einem Windows x64 automatisch auch der .NET Prozess in 64-Bit ausgeführt. Und bei einem Windows x86 wird der Prozess entsprechend in 32-Bit ausgeführt.

    Durch diesen Automatismus ergibt sich nun aber auch eine Besonderheit, die das automatische Laden der nativen Module von List & Label betrifft, da die .NET Komponenten von List & Label ebenfalls mit der Zielplattform AnyCPU ausgeliefert werden. Dabei ergibt sich, dass gemäß der eingestellten Zielplattform der Applikation auch automatisch die nativen Module von List & Label passend geladen werden.

    Betriebssystem

    .NET Framework Runtime (Zielplattform)

    AnyCPU

    x86

    x64

    Windows x86

    32-Bit Applikation/Prozess

    cm-Module *)

    32-Bit Applikation/Prozess

    cm-Module *)

    <nicht möglich>
    Windows x64

    64-Bit Applikation/Prozess

    cx-Module *)

    32-Bit Applikation/Prozess

    cm-Module *)

    64-Bit Applikation/Prozess

    cx-Module *)

    *) Native 32-Bit Module von List & Label haben den Präfix cm[...] im Dateinamen und befinden sich unter ..\Redistribution\x86\. Die nativen 64-Bit Module von List & Label haben den Präfix cx[...] im Dateinamen und befinden sich unter ..\Redistribution\x64\.

    Bei einem 32-Bit Windows, bei dem dann der .NET Prozess automatisch auch in 32-Bit ausgeführt wird, werden auch die 32-Bit Module von List & Label (cm-Module) geladen. Entsprechend verhält es sich bei einem 64-Bit Windows, bei dem dann der .NET Prozess automatisch auch in 64-Bit ausgeführt wird und somit auch die 64-Bit Module von List & Label (cx-Module) geladen werden. Will man gezielt darauf Einfluss ausüben, so muss für die eigene .NET Applikation gezielt die Zielplattform auf x86 oder x64 konfiguriert werden. Der Artikel Exception beim Start einer .NET-Applikation beschreibt genau ein solches mögliches Szenario.

     

    Besonderheit bei ASP.NET

    Für ASP.NET Web Applikationen wird zur Ausführung immer der IIS (Internet Information Server) verwendet, den es natürlich auch speziell für die unterschiedlichen Architekturen gibt. Die Besonderheit hierbei zeigt der Artikel BadImageFormatException bei .NET Web Applikationen detailliert auf.

     

    Weitergabe

    Aus diesem Grund ist es wichtig zu wissen, in welcher Architektur die eigene Applikation ausgeführt wird, sodass die passenden nativen Module von List & Label ausgeliefert werden. Das komfortable NuGet Package von List & Label stellt dabei die passenden Module automatisch zusammen. Weitere allgemeine Informationen zum Deplyoment finden sich im Kapitel Weitergabe. Und eine Übersicht der nativen Module und deren Architektur kann in der Datei Redist.txt aus dem Dokumentations-Verzeichnis der Installation eingesehen werden.

     

    System- bzw. Plattformunabhängigkeit

    Das .NET Core Framework hat als maßgeblichen Vorteil, dass es auf eine Plattformunabhängigkeit zielt, um Applikationen nicht nur auf Microsoft Windows Systemen ausführen zu können. Natürlich stehen mit List & Label auch für .NET Core 3.1 und .NET 5 entsprechende Komponenten zur Verfügung. Erste Hinweise zur Verwendung von .NET Core 3.1/.NET 5 finden sich unter Hinweise zu .NET Core 3.1/.NET 5. Aber da List & Label jedoch stark mit dem Microsoft Windows System und dessen Ressourcen interagiert (bspw. Druckertreibersystem etc.) kann List & Label trotz der Unterstützung von .NET Core 3.1/.NET 5 diese Plattformunabhängigkeit nicht erfüllen und setzt weiterhin ein Windows System voraus.