G# Framework
The G# Framework is an add-on toolkit for LabVIEW that adds reference based object-oriented support. It takes advantage of the new data value reference structure in LabVIEW 2009 together with the native classes and will add a full object-oriented support with excellent performance. This is the new generation of object-oriented support that makes LabVIEW as powerful as any object-oriented language. There also exists a StarUML plug-in to the G# Framework.
The G# Framework is a National Instrument Compatible with LabVIEW Gold product.
G# Framework is a registered trademark of AddQ Consulting.
What is Unique About G#?
An object-oriented language must fulfill the fundamental requirements: abstraction, encapsulation, inheritance and polymorphism. The G# framework has taken a lot of inspiration from C# and Java and therefore has the following additional requirements:
- 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.
- Include 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

Toolkit Contents
- G# - This is the actual LabVIEW code that implements the reference based object-oriented support to LabVIEW. This code is open source code per the terms of BSD-license.
Including:- 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
The G# Framework is free and requires no license. You may install the G# IDE with as many users and computers as you like.
G# Brochure (pdf)
Supported LabVIEW Versions
LabVIEW 2009 Full Development or higher
Supported Operating Systems
Windows XP/Vista/7
Red Hat Enterprise Linux WS 4 or later
openSUSE 10.3 or later
Note: Mac OS X may work, but is not tested
Current version: 1.1.0.0 (view G# Framework ReadMe.txt)
As a good UML design tool we recommend the free, open source tool StarUML together with the free G# StarUML Plug-in extension.
Support
For support issues, please contact: support@addq.se. Our policy is to respond within one working day. We will not support issues regarding object-oriented design, but we can of course offer this as consultant services. Please contact: sales@addq.se
Please join the G# community group for more information, discussions and ideas at:
http://decibel.ni.com/content/groups/gsharp
The Compatible with LabVIEW logo is a trademark of National Instruments Corporation and is used under a license from National Instruments Corporation.

