As I reported earlier, NI has set up a webpage for Vista information. A recent addition is a good summary overview of many of the various changes in security that Microsoft put into Vista - including the whole "virtualization" support for legacy apps. Rather than repeat the information, I recommend that you check out the article here.
I've been living these issues for the last six months as I work with others here at NI to ensure our software is ready to go when Vista becomes widely available. If you have any questions about Vista, or the article, please feel free to drop a comment here or shoot me an email.
As you know, if you do any .NET programming in LabVIEW, you can turn a LabVIEW VI into a callback handler for a .NET event. But what if you need to supply a VI to a C function that needs a function pointer? That isn't a .NET event - it's got nothing to do with .NET...how do you create such a function pointer? Well, you could build the VI into a DLL, write some C code to convert the exported VI's C function into a pointer, call that from LabVIEW, pass that into...I'll stop there. You get the idea - it isn't trivial.
Well, vanDooren, an MVP for Visual C++, has come up with a very clever solution to the problem. Best of all (from my opinion, of course), is that it uses .NET to do it. See, .NET even can solve an interop issue between LabVIEW and C! Let's see Java to that one *laugh*.
Rather than explain the solution myself, I'll let you read it here on vanDooren's blog - after all, he's gone through the trouble of writing it up and providing screenshots, downloads and everything. As he says, writing the post is often longer than the coding. Linking to a post is an even faster solution.
It's time! Now we wait to get it in our grubby little hands...MSDN subscribers should get it in the next 7 days, Volume License subscribers should get it by the end of the month and everyone else is looking at Jan 30, 2007.
In an earlier post, I described how to convert an ArrayList into a LabVIEW array via the ToArray() method. However, many of the collection types in .NET do not support this method - instead you must use the IEnumerator interface.
After receiving some questions on how best to do this, I created this example to demonstrate the way to loop through the values in the collection.
Things to remember...
This can be expensive for large collections. Converting the collection to a LabVIEW array can make later code easier to write, but make sure the performance is acceptable.
As I show in the example, watch for loose refnums. This is an easy place to forget to close your refnums and end up with a memory leak.
This same example works for searching or any other algorithm where you need to look through the collection monotonically...it isn't just for converting to a LabVIEW array.
The Microsoft .NET 3.0 framework has been released and is available for download. As I've discussed earlier, the .NET 3.0 framework is really the .NET 2.0 release with additional libraries. The core .NET runtime engine has not changed in 3.0, nor has any of the basic libraries. Instead, this is a bundling of the .NET 2.0 engine with the new feature set that was once known as WinFX -
Windows Presentation Foundation (aka Avalon)
Windows Communication Foundation (aka Indigo)
Windows Worflow Foundation
Windows CardSpace (aka InfoCard)
The key one here for LabVIEW users is going to be the WCF, which is a very rich API for distributed communication between different platforms and languages - mainly through web services and the WS-* standards.
With all the excitement around Vista, it's amazing to hear that Microsoft has finally released a new theme for Windows XP. They've talked about doing this for a number of years, but never managed to get one out (not counting the Media Edition theme, which was more like a new OS since you couldn't get it w/o buying a M.E. computer).
Anyway, the new theme is, surprise, surprise, based around the new Zune launch. The installer can be found here.