With NChrunch V5 and JetBrains Rider Support, a part has apparently already been ported to .Net Core
(
"Because of the need to host our engine under .NET6 to work with the Rider backend"
and
"It's expected that the next version of Visual Studio (2024?) will be running on .NET 8 or .NET 9, so we'll need to similarly host our engine in a way that includes the above constraints. This means that our Rider support has feature parity with the next version of VS."
Source: https://blog.ncrunch. net/2024/02/default.aspx
)
Would it now be possible to run the grid nodes with (e.g. .NET 8) on Linux?
Maybe in a (Docker) container?
Of course, only “.NET-core” and later versions run under Linux.
Since it is a "new" environment I think this limitation is not a problem.
Ultimately, the entire .Net world is on the way to becoming more platform independent.
And this change would also be compatible with Windows servers.
As a developer using NChrunch, you of course have to make sure that Pratform-specific code runs on appropriate nodes.
Thanks for posting. Although the tech has certainly moved and the porting of the engine to .NET6 has made it easier to move things towards linux, this unfortunately still does not look to be achievable given the present state of affairs.
Even though most of NCrunch is in theory cross platform, there is still a ton of integration with Win32, particularly around areas such as process management and IPC. The maintenance burden has also become much higher now that we support two IDEs, both of which receive regular updates.
It's not always easy to put the maintenance cost of NCrunch in perspective, but I'll try. Imagine you have over half a million lines of code (significant parts of which are highly complex and performance critical), and you need to cross compile it to .NET Framework 3.5, .NET Framework 4.0, .NET Core 1.1 and above, and .NET 6.0. Then imagine that code needs to run under 7 versions of Visual Studio and a grid node service and console tool, plus integrate with a JVM based set of components to allow hosting under the latest version of Rider, and be tested on every MS operating system released in the last 18 years.
It gets a bit silly to be honest. Supporting linux would extend all of that to not just targeting the linux platform but also doing QA on the most common versions of linux being used (along with adapting to any kernel updates on the way). For a billion dollar software company this wouldn't be a problem, but it's just me on the project right now. As much as I might want it myself, linux support would be a bridge too far.
Remco wrote:It's not always easy to put the maintenance cost of NCrunch in perspective, but I'll try. Imagine you have over half a million lines of code (significant parts of which are highly complex and performance critical), and you need to cross compile it to .NET Framework 3.5, .NET Framework 4.0, .NET Core 1.1 and above, and .NET 6.0. Then imagine that code needs to run under 7 versions of Visual Studio and a grid node service and console tool, plus integrate with a JVM based set of components to allow hosting under the latest version of Rider, and be tested on every MS operating system released in the last 18 years.
Just my Two Cents ... cut the range supported legacy products.
If someone is still rocking Windows 7, and Visual Studio 2010 or any other unsupported Version of something, they will likely also be fine with an old Version of NCrunch.
Remco wrote:It's not always easy to put the maintenance cost of NCrunch in perspective, but I'll try. Imagine you have over half a million lines of code (significant parts of which are highly complex and performance critical), and you need to cross compile it to .NET Framework 3.5, .NET Framework 4.0, .NET Core 1.1 and above, and .NET 6.0. Then imagine that code needs to run under 7 versions of Visual Studio and a grid node service and console tool, plus integrate with a JVM based set of components to allow hosting under the latest version of Rider, and be tested on every MS operating system released in the last 18 years.
Just my Two Cents ... cut the range supported legacy products.
If someone is still rocking Windows 7, and Visual Studio 2010 or any other unsupported Version of something, they will likely also be fine with an old Version of NCrunch.
I think along the same lines ;-P
And to reduce maintenance costs, at least for the grid nodes.
A (Linux) container image for those who don't need Windows and only the latest versions of Windows :-P
I think if you reduce the possible environments (for grid nodes), maintenance costs can be reduced.
Thanks for the feedback.
I hope I can convince my employer to use NCrunch even without Linux.
I don't know the details, but I wonder how many "older" versions of VS need to be supported.
Working on mac right now using Rider, and I was excited to see that Rider is supported! But then reality struck again, since Rider is supported only on Windows. I understand the technical difficulties. Would appreciate the update though!