From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW Linux and .NET Core

Does the latest version of LabVIEW for Linux allow use of .NET Core?

0 Kudos
Message 1 of 15
(4,790 Views)

No and it likely never will. .Net Core is a limited subset of .Net on Windows, not a full replacement for it. Microsoft has no plans to fully open source the entire .Net system and likely couldn't even do it easily as it contains many parts that interface to proprietary parts of the Windows system that Microsoft won't just open like that.

The LabVIEW .Net interface was developed to the full .Net interface even if that was at that time .Net 2.0, and makes use of features that are not part of .Net Core. Porting this to .Net Core likely is not an option without loosing some functionality in the existing .Net functionality on Windows (such as the .Net container in the front panel).

Combine that with the fact that .Net Core is an even more moving target to shoot at in comparison to the Windows .Net API, and that LabVIEW for Linux is a margin product in comparison to the Windows installation base and even more so in comparison to sales (lots of LabVIEW for Linux sites use an educational license that brings in only a fraction of the sales per license than commercial licenses) and you get a situation where a manager in a company that has to report to its shareholders, has to have suicidal tendencies to suggest such a change.

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 15
(4,760 Views)

I agree, small change it will ever happen.

 

If it helps, I could live without the .NET FP container. If that is the showstopper, dropping it would be acceptable for me.

0 Kudos
Message 3 of 15
(4,739 Views)

What about .Net Core for NI Linux RT? This would bring a lot of extra functionality to the Linux RT ecosystem. And since .Net core is based on the ‘base’ functionality of .NET framework, would it not make since to make it modular so that they can support both?

I am not talking about replacing .NET framework but adding support for .NET Core. If they did that then, from LabVIEW .NET Core dlls could be called from Mac/Windows/Linux and even Linux RT. LV can be deployed to any of those target is would be nice to call those .NET Core dlls as well.

Maybe I am just the minority 😊

0 Kudos
Message 4 of 15
(4,615 Views)

@Matthew.L wrote:

Maybe I am just the minority 😊


I'd say almost every user would like that.

 

Still, I don't see it happening soon...

0 Kudos
Message 5 of 15
(4,598 Views)

Actually .Net Core for NI Linux RT has a verey small change to be done. It would be non-trivial to implement for sure, but NI "owns" the platform and can dictate which exact .Net Core package should be installed with each version (NI Linux RT is basically versioned around LabVIEW releases with the public package version number the same as the according LabVIEW version you want to run on). This makes the whole manageable in terms of version compatibility.

 

They would have to add a compiled package of .Net Core to the opkg feed they use for each NI Linux RT version and of course port the .Net interface they use in LabVIEW for Windows to work properly with .Net Core. All of this is anything but trivial to do, means a lot of engineering hours and many more hours for testing, for something that some people believe would be beneficial but which I still have to see  widespread adoption of. Use of .Net Core libraries may sound cool as it avoids the hassle of having to configure a few Call Library Nodes properly, but under Linux you can call shared libraries directly too with the Call Library Node, which results in a much more direct and efficient execution than having to invoke an entire .Net Core monster in your process to call a few external functions. And if all else fails you still can use SystemExec to call just about any system command directly. Many people feel that SystemExec is slow and connvoluted but this is how almost everything in Linux/Unix is done anyways. And invocation of command line programs under just about all Unix flavors are in fact lightweight and very fast in comparison to Windows. The Windows process model is pretty heavy weight and creation of a new process, even if it does not involve a GUI, is expensive and this is another reason that DLLs got so popular under Windows since it allowed to add functionality to a program without having to invoke child processes over and over again. Then there came OLE, later ActiveX and finally .Net which were all supposed to make invocation of external components easier and I'm waiting already for the next technology that obsoletes .Net. Smiley LOL

 

Trying to support .Net Core on normal Linux is simply never gonna happen. The binaray compatibility between versions is in proper Linux tradition repeatedly broken, so that you would be hunting down the right version that works with a particular LabVIEW version, that might or might not work with the particular glibc version and other libraries that the Linux distribution comes with. And then that .Net Core version you installed for LabVIEW might break with super duper app xyz that you also want to run on the same system.

 

 

Rolf Kalbermatter
My Blog
0 Kudos
Message 6 of 15
(4,595 Views)

Rolfk,

While it would be great for NI to create and maintain the opkg for .NET Core this is not a deal breaker. In fact, I have already installed and used .NET Core on NI Linux RT 😊.  (Only Intel processor though).

Assuming NI it not completely rewriting the structure of the NI Linux distro. It should not matter what version of .NET Core is being used, NI would only have to be concerned about supporting the .NET Core CLR(similar for them supporting CLR 4.0 for .NET Framework)… right? I’m fairly new to the .Net Core world but I have not seen or heard of different versions of .NET Core breaking on Linux.

 While I suppose you could call the dll thought SystemExec I feel that this is not a great solution for frequent or “complex” calls.

I just hope they do what is best for the ‘users’ and not the ‘ecosystem’

At the end of the day, I understand it boils down to ROI.

0 Kudos
Message 7 of 15
(4,583 Views)

Has anybody heard of any ‘formal’ announcement by NI and where they stand on this?

0 Kudos
Message 8 of 15
(4,581 Views)

No, and NI's stance on such things is:

 

No comment on future product features, neither about if they are at all in the works nor about any expected release date. Sometimes if you know someone in the knows and are willing to sign an NDA and offer your first born as well as both your hands for violations of that NDA, you may get some more off the record comments, but not more. Smiley Very Happy

Rolf Kalbermatter
My Blog
0 Kudos
Message 9 of 15
(4,575 Views)

Rolfk,

Thanks for the information!

I was kind of hoping they had adopted the philosophy of communicating their roadmap. I guess I will just have to offer my first born 😊

0 Kudos
Message 10 of 15
(4,570 Views)