LabVIEW G# Framework

What is LabVIEW G#?
The LabVIEW G# Framework is a free, award winning add-on toolkit for LabVIEW that enables reference based object-oriented programming. It has excellent performance and supports native labVIEW classes. The framework seamlessly integrates into the LabVIEW project environment. This next generation of Object-Oriented support makes LabVIEW as powerful as any object-oriented language. It also comes with a UML plugin for the G# Framework.
The G# Framework is a National Instrument Compatible with LabVIEW Gold product and has been awarded "LabVIEW Add-On of the Year for Community at NI Week 2011".
*G# is a registered trademark of ADDQ Consulting.
"As engineering challenges are becoming increasingly complex, software engineering tools are very, very important to help scale LabVIEW to these larger and larger applications. So I am very proud to announce the community award this year to QESTIT for the G# Product.”
Jeff Meisel, LabVIEW Product Manager, Partner Program, National Instruments at NI Week 2011




What can G# do?
Any object-oriented language must fulfill the following fundamental requirements: abstraction, encapsulation, inheritance and polymorphism. The G# framework has taken inspiration from C# and Java and can do many of the same functions, including:
​
-
A common root object for all classes, called G#Object.
-
Garbage Collector, objects don’t need to be destroyed explicitly.
-
Interface support, instead of supporting multiple inheritance.
-
Abstract methods and abstract classes.
-
Use native LabVIEW objects in combination with the new data value reference in LV2009.
-
Includes support to keep objects alive and avoid LabVIEW Garbage collection.
-
Support for static classes and class attributes.
-
Named objects with user counter.
-
Serialization of objects.
-
G# events that can be traced.
-
Desktop Trace Execution Toolkit events support.
-
Powerful debugger option with possibility to probe attributes, log events and also offer an active debug possibility.
-
Support for Dependency Injection – dynamic plug-in of sub classes
What comes with the G# Toolkit?
G# – The actual LabVIEW code that implements the reference based Object-Oriented support to LabVIEW. This is open source code per the terms of BSD-license. It includes:
​
-
G#Object – the root object that all classes inherits from.
-
G#Interface – the root interface that all interfaces inherit from.
-
G#Templates – class templates that are copied to create new classes.
​
G# Debugger – a powerful object debugger tool, used for tracing and debugging objects when executing the code. This code is open source code per the terms of BSD-license.
​
G# IDE (Integrated Development Environment) – a plug-in to the LabVIEW Project Environment and makes it easy to create and maintain the G# code. The IDE is not open source and copyright by ADDQ Consulting. The G# IDE is not necessary when executing the code.
​
For more information, please visit the G# Online Manual.
Download G# for LabVIEW
The G# Framework is free and requires no license. You may install the G# IDE with as many users and computers as you like.
​
Supported LabVIEW Versions
-
Version 1: LabVIEW 2017 Full Development or higher.
-
Version 2: LabVIEW 2020 Full Development or higher (with interfaces support).
​
Supported Operating Systems
-
Windows XP/Vista/7/Server 2003 R2 (32bit)/Server 2008 R2(64 bit).
-
Red Hat Enterprise Linux WS 4 or later openSUSE 10.3 or later.
​
Note: G# Framework will probably work on all LabVIEW supported platforms, but is not tested.
As a good UML design tool we recommend the free, open source tool StarUML together with the free G# StarUML Plug-in extension.
​
Version 1: Download for 2017 or higher for free here
Version 2: Download for 2020 or higher for free here
​
​
G# UML Plugin
QESTIT’s award-winning and free plugin to G# will take your code design process to the next level. Use professional design tools to automatically generate LabVIEW-code or reverse the process to generate UML code from LabVIEW-code.
​
UML is a widely used language that provides a standard way to visualize the design of a system. Visit uml.org for more information.
Main Features:
-
Generate code – Automatically generate LabVIEW code from UML class diagrams.
-
Reverse-engineer – Automatically generate UML class diagrams from LabVIEW code.
​
The plugin supports many commonly used UML and LabVIEW/G# features to make your UML represent your code as close as possible. Both G# and LabVIEW native classes are supported. This includes UML classes relations, attributes, methods and method parameters.
​
The plugin supports WhiteStarUML for creating UMLs. WhiteStarUML is an open source tool and is a continuation of StarUML, which has been the ruling open-source UML tool for many years. It integrates into WhiteStarUML, which makes it easy to design and maintain the LabVIEW G# code in a professional UML design tool.
​
The G# UML plugin is a National Instrument Compatible with LabVIEW Silver product and awarded "LabVIEW Add-On of the Year for Community at NI Week 2011".
​
For more information, please visit the G# UML Plugin Online Manual.
​
Download G# UML Plugin
The G# UML Plugin is free and requires no license. You may install the G# IDE with as many users and computers as you like.
​
Supported LabVIEW Versions
-
LabVIEW 2012 Full Development or higher with G# Framework toolkit 1.6.1 or higher installed.
​
Supported StarUML Versions
-
WhiteStarUML 5.5 or higher. Download from: whitestaruml.sourceforge.net/
For StarUML-support, an older version of the plugin is available upon request.
​
Download for free here