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.
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