combit List & Label 26 - .NET Help
Programming Introduction / .NET System Architecture
In This Topic
    .NET System Architecture
    In This Topic

    General

    The .NET components provided in List & Label are based directly on the native modules of List & Label itself. These consist of several libraries/DLLs. An overview can be taken from the file Redist.txt, which is located in the documentation directory. Thus the .NET components are not independent modules with their own reporting core. They directly use the reporting functionality of the native List & Label modules and are therefore directly dependent on them.

     

    But what does this mean in detail and what special features must now be taken into account?

     

    Platform Target AnyCPU

    In .NET the platform target AnyCPU is hardly to be imagined without and is usually standard. The .NET Framework decides at runtime in which bitness the process should be executed. For example, the .NET process is automatically executed in 64-bit on Windows x64. And with a Windows x86 the process is executed in 32-bit.

    However, this automatism now also results in a special feature concerning the automatic loading of the native modules of List & Label, since the .NET components of List & Label are also delivered with the platform target AnyCPU. The result is that the native modules of List & Label are automatically loaded according to the set platform target of the application.

    Operating System

    .NET Framework Runtime (Platform target)

    AnyCPU

    x86

    x64

    Windows x86

    32-Bit Application/Process

    cm-Modules *)

    32-Bit Application/Process

    cm-Modules *)

    <not possible>
    Windows x64

    64-Bit Application/Process

    cx-Modules *)

    32-Bit Application/Process

    cm-Modules *)

    64-Bit Application/Process

    cx-Modules *)

    *) Native 32-bit modules from List & Label have the prefix cm[...] in the file name and are located at ..\Redistribution\x86\. The native 64-bit modules from List & Label have the prefix cx[...] in the file name and are located in directory ..\Redistribution\x64\.

    In a 32-bit Windows, where the .NET process is then automatically executed in 32-bit, the 32-bit modules of List & Label (cm-Modules) are also loaded. The same applies to a 64-bit Windows, where the .NET process is automatically executed in 64-bit and the 64-bit List & Label modules (cx-Modules) are loaded. If you want to have a specific influence on this, the platform target must be configured on x86 or x64 for your own .NET application. The article Exception When Starting a .NET Application describes exactly such a possible scenario.

     

    Special Feature of ASP.NET

    For ASP.NET Web applications, the IIS (Internet Information Server) is always used for execution. The article BadImageFormatException for .NET Web Applications shows the special features in detail.

     

    Deployment

    For this reason, it is important to know in which system architecture your own application is running, so that the appropriate native modules are delivered with List & Label. The comfortable NuGet package from List & Label automatically assembles the appropriate modules. Further general information about the deployment can be found in the chapter Deployment. And an overview of the native modules and their architecture can be viewed in the Redist.txt file in the documentation directory of the installation.

     

    System and Platform Independence

    The .NET Core Framework has the significant advantage that it aims at platform independence in order to be able to run applications not only on Microsoft Windows systems. Of course, List & Label also provides corresponding components for .NET Core 3.1 and .NET 5. First hints for the use of .NET Core 3.1/.NET 5 can be found in Notes for .NET Core 3.1/.NET 5, but since List & Label interacts strongly with the Microsoft Windows system and its resources (e.g. printer driver system etc.) List & Label cannot fulfil this platform independence despite the support of .NET Core 3.1/.NET 5 and still requires a Windows system.