Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Tutorial
NI Supported: Yes
Publish Date: Sep 6, 2006


Feedback


Yes No

Related Categories

Related Links - Developer Zone

Related Links - Products and Services

.NET Support in LabVIEW 7 Express

24 ratings | 3.17 out of 5
Print

Overview

With the release of LabVIEW 7 Express, you easily can connect to this new .NET technology as a .NET client. You can create instances of .NET classes and invoke methods to set and obtain properties on them. The usage paradigm is similar in LabVIEW 7 Express to that of ActiveX automation VIs.


Basics of .NET

The .NET framework is a new Microsoft computing platform designed to simplify application development in the highly-distributed environment of the Internet. The .NET framework has two main components – the common language runtime (CLR) and the .NET framework class library.

The CLR provides a type system that spans programming languages and operating system boundaries. The CLR introduces a level of abstraction that encourages developers to see the system as a world of type and objects rather than memory and threads. Developing applications for the CLR requires compilers and linkers to generate information in the new metadata format. The compilers generate CLR intermediate language (IL) code rather than the assembly code under the Win32 system. CLR executes the IL in an execution mode called the “managed” mode. Code generated in the traditional way, by nonCLR compilers, executes in a separate execution mode called the “unmanaged” mode. The .NET framework is a set of classes that perform the same functions, as did the Win32 functions under the Win32/COM system. With .NET, you can create classes in one .NET language and use them in another .NET language.

Comparison with ActiveX/COM


ActiveX/COM technology presented two kinds of applications. ActiveX servers exported functionality through classes and methods, as well as automation clients that used this functionality in their code. With .NET technology, similar roles exist, but the integration is much deeper. Classes that mark themselves as public export automatically along with their public functions. To use these classes, client classes would include them just as they would any other class from the .NET framework.

.NET Assemblies have an extension of .dll or .exe and contain meta data of .NET classes. Meta data contains required for debugging and garbage collection, as well as security attributes, marshaling data, extended class and member definitions, version binding, and other information required by the .NET runtime. However, assemblies are not true Win32 executables – rather they are .NET metadata libraries. These libraries also contain information about the exported classes, methods, properties, and events.

.NET Support in LabVIEW 7 Express


With the release of LabVIEW 7 Express, you easily can connect to this new .NET technology as a .NET client. You can create instances of .NET classes and invoke methods to set and obtain properties on them. The usage paradigm is similar in LabVIEW 7 Express to that of ActiveX automation VIs.

This section explores a simple VI that uses classes installed by the .NET framework to obtain processor usage statistics. This example uses PerformanceCounter class exported by the system .NET assembly.

Step 1: Create an instance of the class.

The system assembly exports the PerformanceCounter class.

i. Select Library and Class.
a. Go to the .NET palette in the communications palette and drop down the Constructor node.


This brings up a dialog that you can use to browse all the Assemblies registered globally in the system. The System.Diagnostics namespace in the system assembly exports the performance counter.

b. Select the system assembly from the list of assemblies.


c. Select the System.Diagnostics namespace

d. Select the PerformanceCounter class and the desired constructor.


e. Wire in the parameter values to the constructor node to finish its configuration


Step 2: Selection of a method

Now select the method NextValue, which returns the value of the selected counter. Drop an invoke node, wire the refnum output from the constructor node into the invoke node refnum input, and right click on the invoke node to select the method.


Step 3: Closing the Reference

Finally drop down a Close Reference function and close the .NET refnum that you had created an instance of.


The diagram below presents and the front panel of the VI.

Other .NET LabVIEW Functions


In addition to the constructor, invoke and property nodes and the Close Reference functions, the following functions are available from the LabVIEW 7 Express .NET palette.

To More Specific Class


This function downcasts a reference from a class to a more specific class in its inheritance hierarchy. For example, if Class A inherits from B, then you could have a variable of type B hold a value of type A. You then can use the above function to downcast from B to A. If the function fails, there is an error.

To More Generic Class


This function upcasts a reference from a class to a more generic class. For example, if Class A inherits from B, you can use the above function to downcast a variable of type A into one of type B. This function should always succeed.
Related Links:
Visit Microsoft's .NET home page.
Information on .NET Component Developers
Know the Basics of Microsoft.NET
24 ratings | 3.17 out of 5
Print

Reader Comments | Submit a comment »

Out of date references
The System Assembly has appears to have been superseded by a later version, hence it appears that this example cannot be replicated by a new user.
- Oct 2, 2008

 

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).