combit List & Label 30 - .NET Help
Programming Introduction / .NET System Architecture
.NET System Architecture

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 6/.NET 8/.NET 9. First hints for the use of .NET 6/.NET 8/.NET 9 can be found in Notes for .NET 6/.NET 7/.NET 8, 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 6/.NET 8/.NET 9 and still requires a Windows system.