nightroman / FarNet

Far Manager framework for .NET modules and scripts in PowerShell, F#, JavaScript.
https://github.com/nightroman/FarNet/wiki
BSD 3-Clause "New" or "Revised" License
136 stars 19 forks source link

.Net Core 3+ Support #16

Closed fitdev closed 4 years ago

fitdev commented 4 years ago

Are there any plans to support .Net Core 3.0 or 3.1 instead of / in addition to .Net Framework?

nightroman commented 4 years ago

There are no such plans. FarNet is based on the C++/CLI layer, the actual Far Manager plugin. I am not sure that C++/CLI is well or fully supported by net core and I do not want to investigate at this moment.

Why are you asking?

fitdev commented 4 years ago

According to this blog post, C++/CLI is supported on .Net Core 3.1.

The reason I asked is because I have fully switched to .Net Core from .Net Framework after 3.0 release, and many of our internal libraries are targeting strictly .Net Core. As such we could not use them with .Net Framework-based libraries.

In addition, C# 8 and above is only available on .Net Core and in general .Net Framework is no longer updated, with all the new development happening on .Net Core. Thus especially going forward it will make more and more sense to develop using .Net Core.

Hopefully you can take a look at supporting .Net core as well.

nightroman commented 4 years ago

Like I said, I have no such plans. Sorry to disappoint you. I do not need this yet and I am involved in many other projects.

BTW, are you sure that you cannot use net core libraries in this or slightly upgraded setup? Have you tried, what's the error? What if we build FarNet with a particular net framework like 4.7.2+ (net core friendly, I heard), will it help?

fitdev commented 4 years ago

I understand. I have very little C++ experience, but perhaps will try compiling the whole thing for .Net Core then. Hopefully it will be straight forward.

Unfortunately using any version of .Net Framework won't help since the .Net runtime is ultimately different (.Net Core having certain runtime features not available in .Net Framework at all, like Default Interface implementations for example). So, as I understand it FarNetMan.dll must load and host a .Net Core runtime, not .Net Framework one.

Thank you for your fast replies in any case.

nightroman commented 4 years ago

I think FarNet will move to net core when it becomes the mainstream and C++/CLI support becomes mature. For the moment I cannot even create C++/CLI project for net core as described in the link. Is it still in preview, now in VS 16.5?

For now I am closing the issue. If you decide to play with C++/CLI and net core and have something to share or questions or need help, feel free to open new issues or reopen this.

jinek commented 4 years ago

@nightroman May be it makes sense to keep this issue open, because there is bigger chance someone could implement it and it will be visible to newcomers.

nightroman commented 4 years ago

@jinek Yes it makes sense to keep it open, some sense, in some projects.

In my projects, I usually do not keep open issues that I am not going to work on in the nearest future. This also makes some sense, helps to stay organized. Closed issues are also issues and source of information. As for bugs and true issues, they stay open until fixed (unless won't fix for some reasons).

nightroman commented 4 years ago

@fitdev A bit late question. It looks like using some netstandard only libraries in FarNet is not an issue. I am playing with Microsoft.ML, for example. My FarNet module uses net472 and all works fine. Do you (we) really have to use netcore in FarNet?

fitdev commented 4 years ago

I have been developing my own libraries and projects on .Net Core for a number of years by now, and so cannot use NetStandard approach, since all my libs explicitly target .Net Core and use its functionality. Besides, .Net Core is the future, and .Net Framework is on maintenance mode. I believe with the upcoming .Net 5 especially the interop story will be very good, thus making .Net Core support easier to implement.

nightroman commented 4 years ago

OK, I see, you explicitly target netcore.

I agree, netcore is the future. It just has not come to FarNet yet :)

fitdev commented 4 years ago

Hopefully over the next year or two, it will :)

nightroman commented 2 years ago

Hi @fitdev Here is some hopefully good news - #24

nightroman commented 2 years ago

FarNet 6 announcement -- https://github.com/nightroman/FarNet/pull/25