Products
Technology
 

Technological basis: Microsoft's .NET Framework

Microsoft's .NET platform builds the general basis for the execution of .NET programs. An important component of this concept is the runtime environment Common Language Runtime (CLR) that executes the intermediate code Common Intermediate Language (CIL) which is standardized according to ISO/IEC 23271:2006.

   
 

CLI and CIL

With the Common Language Infrastructure (CLI), the Microsoft .NET platform provides a general basis for the execution of .NET programs which is used by the different programming languages. An important component of this concept is the runtime environment Common Language Runtime (CLR) that executes the intermediate code Common Intermediate Language (CIL) which is standardized according to ISO/IEC 23271:2006.
  During runtime, a just-in-time (JIT) compiler converts the intermediate code to managed code and executes the code. The Common Intermediate Language (CIL) is the standardized intermediate code which allows to mix different programming languages.
 
   
 

CIL code: Independent intermediate language

The components of an application can be programmed in different languages so that several programming languages can be used in one application at the same time. The basis for this is a specially defined language-embracing system of object-based data types that guarantee the trouble-free interaction between components programmed in different languages. Today, about 40 different programming languages are available which can generate CIL.

 
 

 
 

Real-time with the Microsoft CLR?

 The Microsoft CLR with the just-in-time (JIT) compiler strikes the balance between interpretation and compilation of the program code. The JIT compiler compiles the required part of the code during runtime and the garbage collection ensures automatic memory management.

 
 

However, there is a price to be paid for this concept of programming: More resources are required, the total time of execution is a bit longer than for compiled code and, due to the garbage collection, the response times to events can be affected. This is especially disadvantageous for embedded devices.

Result: If resource-saving or runtime-critical embedded applications are required, it is not recommended to use the Microsoft CLR in particular for real-time tasks.

 
 

The solution: Real-time with ProConOS embedded CLR!

The real-time capability of the ProConOS embedded CLR is achieved by the use of an ahead-of-time (AOT) compiler: Compared to the Microsoft CLR, the intermediate code CIL is not only compiled upon request (just in time), but this already occurs in advance (ahead of time).

This way, real-time and a safe memory management are ensured!

 
 

 [Further information on real-time capability of ProConOS embedded CLR]

 
 

The ProConOS embedded CLR architecture

The "Native Library Interface" enables calls of device-specific C code from C#, for example the call of a C# function block for driving a 7 segment display shown in the figure on the left.
 
   
 

C# - the robust programming language

C# is the most important .NET programming language. Used as system language for the .NET Common Language Runtime, it can be seamlessly integrated into the .NET runtime environment. C# has been designed for the development of robust and durable object-oriented components. Developers can easily change from C++ to C# as in both programming languages nearly the same syntax is used.

The component-based concepts such as properties, methods and events are the core elements of the language and the basic runtime environment. Declarative information (attributes) can be applied to components in order to provide other parts of the system information about the design-time and runtime information for one component. The documentation can be written within one component and exported to an XML format.

C#, the type-safe programming language, provides a simple, safe and intuitive environment and prevents the programmer from using uninitialized variables, unsafe type conversions and from making general programming errors such as implicit conversion of Bool to Integer or falling through switch statements. Many programming errors are already detected when editing and compiling in Visual Studio. Additionally, C# provides a great number of features that simplify programming such as an extensive Intellisense function also for interfaces and event handlers.

Thanks to the spread of .NET and C#, other C# tools exist already today that can be used for test automation, generation of API helps, performance measurement or checking design guidelines.

 
 

 
 
[Print version] [Send to friend] [Top]
Address
KW-Software GmbH
Lagesche Straße 32
32657 Lemgo (Germany)
+49 (0) 52 61 / 93 73-0
info@kw-software.com
You are here
Homepage
Products
Embedded CLR
Quick Links
Contact Person
Company Profile
Information Enquiry