In an effort to bring even more flexibility to my code I've started to create HALs (Hardware Abstraction Layers) using NI Shared Network Variables. This has helped me a lot because it enables me to create applications that just consume Shared Network Variables that are being broadcasted from a "HAL" vi that talks directly to the hardware.
I was wondering what people's thoughts were on this approach. I find for anything less than 100S/s it seems to work great. Most of the time I just point my consumer app at "localhost". This approach seems to make more sense than to integrate the device driver VIs in my code and change them out per-machine. It also means that an application that consumes shared network variables can run on any node in my network.