LabVIEW G# Framework
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 QESTIT Systems.
The Advantages of G#
G# introduces a game-changing approach to object-oriented programming with its reference-based methodology. This innovation streamlines object interactions, enhancing code readability and development. The language also boasts a robust debugger that offers unparalleled insight into running code, accelerating issue identification. Furthermore, G# simplifies code maintenance and creation through built-in tools like function cloning between classes. Embracing G# means embracing efficient, intuitive, and maintainable programming
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
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 QESTIT Systems. 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.
Download for 2017 or higher for free here
Download for 2020 or higher for free here
G# UML Plugin
ADDQ’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
COURSES & EDUCATION
G# in LabVIEW
The G# System Development Course is designed for LabVIEW developers looking to master object-oriented programming. This two-day course equips you with the tools to become a professional LabVIEW software developer by combining theory, design exercises, and hands-on implementation. You'll gain a deep understanding of G#, its benefits, and the application of polymorphism in object-oriented languages, following a format similar to NI courses.
In this role, you'll primarily focus on LabVIEW application development, enhancing our product QMAX, and integrating QMAX into customer applications. You'll also be responsible for designing hardware solutions for testing, measurement, and logging. You will work closely with your colleagues and engage with a diverse range of industries, taking charge of the entire development process. You'll play a pivotal role in projects of all scales and provide vital support to companies spanning diverse sectors, with a strong focus on the development phase.