LabVIEW Development Best Practices Blog

Community Browser
Showing results for 
Search instead for 
Did you mean: 

LabVIEW 2009 Features for Large Applications

Active Participant

Today, we're very excited to officially announce the release of LabVIEW 2009!  If you visit the whats new website, you'll see the full list of new features, but I wanted to use this opportunity to point out some of the improvements in this version that I think the large application community will find especially interesting.  I'll be very eager to hear what you think and to get your opinion on these features.

Subversion Compatibility Improvements - If you're a TortoiseSVN user, like myself, you'll really appreciate this new .ini key.  Put 'skipSVNFolders=true' into your LabVIEW.ini file to filter .svn and _svnfolders from autopopulating folders, find/replace operations and mass-compilation.  This has already made my life a lot easier in just the few short months that I've had it enabled.  If you use Tortoise, put this key in your .ini file now!

Command-Line Differencing- We've exposed the graphical differencing capabilities of LabVIEW to allow you to use them from the source code control tool of your preference.  This is also a feature that I've really grown to appreciate when using TortoiseSVN - when I want to find out why a file is marked as having changed, I can now 'diff' it from Tortoise and LabVIEW highlights all my changes between versions.  I wrote a white paper that explains this is greater detail, which can be found here.

App Builder Log File Generation - Generate documentation of the version of your VI that is being used in a built application.  This feature was driven entirely by feedback we heard from large applicaiton developers who needed to prove that the validated code was actually going into the application they were deploying.  All build specifications in LabVIEW 2009 now have a new check box in the Advanced category to 'Generate build log file.'  This file will contain the timestamp and VI revision number for all VIs in the build.

Data Value References - Eliminate data copies and reduce memory utilization by creating references to large datasets in LabVIEW.  Any datatype in LabVIEW can have a reference created to it, which basically acts like a pointer.  For those of you who want to use a classes by-reference implementation, you can do so using this feature. See more.

SSL for Web Services - This is now the most secure method of communication in LabVIEW.  You can use the default LabVIEW certificate, or create your own to secure communication with clients.  Visit the Tools >> Options >> Web Services Security dialog to turn on this feature and setup a secure web server.

Create Friend Classes - Friend classes have access to private methods and properties of other classes, even if they are not a child of the class.

Unit Test Framework - We've improved the support for classes and made it possible to define inputs for your setup VI from the test case dialog.

Desktop Execution Trace Toolkit - Your trace will now include errors from VIs that have error handling.  This is valuable for quickly identifying where and when the error is occurring.

Code Complexity Metrics - VI Analyzer has several new tests that will help you understand the complexity of your code, including cyclomatic complexity.  This is valuable for gaining insight into how much software testing will be required.  Learn more.

Parallel For Loop - Forget splitting your data and creating several new loops!  Now you can make a single for loop inherently parallel by right clicking on it and selecting 'configure iteration parallelism.'  It's a mouthful, but this powerful features makes it possible for LabVIEW to scale your algorithm across however many cores are available in your system programmatically.  Learn more.

Recursion -
See 'Recursion.'  Seriously though, you can now recursively call a re-entrant VI in LabVIEW.  For those of you who are at NI Week, check out the Sudoku solver that uses a recursive algorithm on a Real-Time target to solve puzzles from a camera in seconds!   Learn more.

I've been bursting at the seams for a while in anticipation of this release.  Again, these are just a few of many features you'll find in LabVIEW 2009, so check them out and share your thoughts!

Elijah Kerry
Chief Product Manager, Software Platform
Follow my Software Engineering for LabVIEW Blog

These are nice improvements. Mass compile has been useless for us for years since we use subversion, so I'm glad to hear about the .svn ignore option.

I am happy about the support for recursion. No more dirty tricks using the VI Server to make functions call themselves!

Active Participant

The subversion compatibility improvements will be a great improvement for users of the JKI TortoiseSVN Tool.  Thanks, NI!

Love all the other features, too

JKI Blog

Just in case you didn't know, you could create "recursion" in LabVIEW prior to this in one of two clever ways:

1) Use dynamically launched VI's to launch a VIT (VI template) to accomplish the next level of recursion.

2) Use a queue+a state machine to implement recursion in a "stack" with push and pop operations pushing additional recursive iterations onto the stack to be processed by the state machine.


The most important features to me would seem to be data value references - as a C/C++ programmer I really miss the power of pointers when working in LabVIEW - and friend classes.

What is STILL missing and what I know how to do in a third party way is to create applications with dynamically launched VI's that can be specified later after the initial install kit has been developed.