Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for .NET Core #9

Closed
cilerler opened this issue Aug 10, 2017 · 44 comments
Closed

Add support for .NET Core #9

cilerler opened this issue Aug 10, 2017 · 44 comments
Assignees

Comments

@cilerler
Copy link

When I try to add it from Nuget it says

Restoring packages for ...\ClassLibrary1.csproj...
Package ClearScript.V8 5.4.9 is not compatible with netstandard1.4 (.NETStandard,Version=v1.4). Package ClearScript.V8 5.4.9 supports: net40 (.NETFramework,Version=v4.0)
One or more packages are incompatible with .NETStandard,Version=v1.4.
Package restore failed. Rolling back package changes for 'ClassLibrary1'.
@ClearScriptLib
Copy link
Collaborator

ClearScriptLib commented Aug 11, 2017

Unfortunately ClearScript depends on reflection and dynamic runtime APIs that are not covered by the current .NET Standard. Furthermore, its V8 bridge is a mixed assembly and therefore requires .NET Framework.

@cilerler
Copy link
Author

cilerler commented Aug 11, 2017

Thank you, do you think it will be covered by .NET Standard 2?

@ClearScriptLib
Copy link
Collaborator

Possibly. We'll keep this issue open and check again soon. Looks like .NET Standard 2.0 was finalized just yesterday!

@bangclash
Copy link

Net Standard 2 support would be great.

@guillaumechervet
Copy link

I am agree. Vert great :)

@wboevink
Copy link

+1 .Net Core 2.0 support

@ipjohnson
Copy link

@ClearScriptLib any news on supporting .netstandard 2.0?

@ClearScriptLib
Copy link
Collaborator

ClearScriptLib commented Nov 24, 2017

Hi @ipjohnson,

We've analyzed the ClearScript assemblies, and it didn't look too bad. A couple dozen APIs, most of them related to COM interop, are not available on .NET Standard.

A bigger problem for ClearScript is its dependence on Windows. JScript and VBScript are Windows-specific, and ClearScriptV8 is mixed-mode (an assembly type that's only supported on Windows).

So even if it used 100% .NET Standard APIs, ClearScript would still be Windows-only. Unfortunately, at this point, the fastest route to a portable ClearScript would probably be a fork based on ChakraCore.

Thanks!

@ipjohnson
Copy link

@ClearScriptLib Thanks for the update.

@imsmart-tech
Copy link

+1
That would be great, even if it's Windows-only. I develop on Windows so go for it. :-)

Do you have any timeline?

@Grauenwolf
Copy link

Grauenwolf commented Jan 7, 2018

Most of us could live without JScript and VBScript. What we're looking for is the ability to load modern JavaScript so we can do pre-rendering like they do in Node. So an #if version that only exposed JavaScript in .NET Standard would still be really useful.

@ClearScriptLib
Copy link
Collaborator

Thanks, @Grauenwolf. Just wondering, why are you looking for .NET Standard support? Do you wish to host your application in .NET Core or another runtime? Or are you interested in non-Windows platforms?

@cilerler
Copy link
Author

cilerler commented Jan 8, 2018

@ClearScriptLib it is crucial to move applications to Docker environment (could be Linux, could be Windows, isn't that the era we are in now) 😄 Please help us and implement a workaround. 🤗

@Grauenwolf
Copy link

Mostly I am interested in ridding myself of dependences on Node.

Node is used a lot by UI devs for build steps and pre-rendering pages. ASP.NET Core could easily do the same thing if it could run the parsers written in JavaScript.

@Grauenwolf
Copy link

Yes, running on non-Windows is a must. Nobody is going to consider replacing Node with ASP.NET if Linux support isn't an option.

@hiyelbaz
Copy link

hiyelbaz commented Jan 8, 2018

V8 & .Net Core on Linux +1

1 similar comment
@guillaumechervet
Copy link

V8 & .Net Core on Linux +1

@ClearScriptLib
Copy link
Collaborator

Folks,

Thanks for clarifying your requirements.

Unfortunately ClearScript's V8 connector is implemented in C++/CLI and would have to be redeveloped from scratch to gain cross-platform capability.

Have you considered purely managed JavaScript solutions such as Jint? There's also a portable solution based on V8 here.

Cheers!

@cilerler cilerler changed the title Please support .NET Standard Add support for .NET Standard May 23, 2018
@charlesprakash
Copy link

I would love to use ClearScript within my .NET Core web application. Today I can't because the module won't initialize. Support for .NET Standard is much appreciated.

@ashutosh-kiddev
Copy link

Hi, this is a great library and great work done by Clearscript team.We at Ubimax are trying to reuse some of our features from an existing windows application into a Unity/Hololens project. We used Clearscript for JS/C# bridging and it was great. But Clearscript seems not to be compatible with Unity. Is there any progress on making a .net standard/.net core supported version which is cross platform or if someone has tried making it usable with Unity/Hololens projects? Thanks in advance :)

@ClearScriptLib
Copy link
Collaborator

Hi @ashutosh-kiddev,

Thanks for your kind words. Unfortunately redeveloping ClearScriptV8 for compatibility with the current .NET Core would be a large project.

Instead we're hoping that .NET Core will eventually gain the platform features that ClearScriptV8 requires. To that end we're observing CoreCLR issues #18013 and #659.

Cheers!

@ashutosh-kiddev
Copy link

ashutosh-kiddev commented Oct 11, 2018

@ClearScriptLib Thanks a lot for the quick response. We will keep looking for the progress and hope this gets done sooner than later. :)

@smokeelow
Copy link

@ClearScriptLib Looks like that a lot of progress has been made on these two #18013 , #659

Does it mean that we can expect ClearScriptV8 support for .Net Core in the near future?

@ClearScriptLib
Copy link
Collaborator

@smokeelow Our interest in bringing ClearScript to .NET Core remains very high. If and when .NET Core officially gains support for mixed-mode assemblies, supporting it will become our top priority.

@cilerler
Copy link
Author

@ClearScriptLib https://github.com/dotnet/coreclr/issues/18013 has been closed 😉

@WhitWaldo
Copy link

@ClearScriptLib dotnet/coreclr#18013 has been closed 😉

It has, but with the caveat that only the .NET side is completed and that remaining work on the C++/CLI side is being internally tracked.

@cilerler
Copy link
Author

cilerler commented Jul 6, 2019

Any chance to make this happen in .NetCore3?

@daniel-schroeder-zeiss
Copy link

I'd like to add that even a windows only .Net Standard or Core support would be appreciated. Microsoft is quite clearly communicating that this will be the future. So we would like to move our project to .Net Core even though it is windows only.

@LeaFrock
Copy link

LeaFrock commented Aug 28, 2019

As i see above, many developers like me are very eager for your support on .Net Core. Maybe my expectation is a little bit higher. I hope ClearScript can be used on .Net Core and cross platforms(not windows-only). It should be totally available on .Net Core(/Standard).

Unfortunately redeveloping ClearScriptV8 for compatibility with the current .NET Core would be a large project.

.Net itself has been redeveloped and keeps going on. ClearScript is also an official project which represents trust and advance in our minds. So if .NET Core 3.0 doesn't gain support for mixed-mode assemblies, redeveloping a project as 'ClearScript.Core', rather than waiting for something, should be more meaningful to us. The .Net Framework will be a history, and don't let it be a stumbling block——unless you would abandon this project in the future.

@cilerler
Copy link
Author

cilerler commented Sep 23, 2019

@ClearScriptLib FYI

https://github.com/dotnet/coreclr/issues/18013#issuecomment-534289704

I want to share a quick update on this. The latest on the C++/CLI roadmap can be found on our C++ blog here: https://devblogs.microsoft.com/cppblog/the-future-of-cpp-cli-and-dotnet-core-3/

.NET Core support for C++/CLI is coming in .NET Core 3.1 which is shipping with Visual Studio 2019 16.4.

@cilerler
Copy link
Author

@ClearScriptLib any update on this? Would you please provide a status update. Thanks in advance

@adamplonka
Copy link

adamplonka commented Oct 23, 2019

as .NET Core vNext will be called .NET 5.0 and .NET Framework 4.8 is the last version which suggests an upgrade from .NET Framework 4.8 to .NET 5.0 will be the only and inevitable upgrade path for legacy windows applications - are there real chances of support for .NET 5.0 (at least windows only)?

@cilerler
Copy link
Author

@plonkaadam No need to blur the water, read the entire issue, please. We have a great chance to receive .NET 3 upgrade, based on what @ClearScriptLib said above. There were two blocking issues, which both resolved as far as I know. However, the only downside will be running it on the Windows environment, but it will be still feasible to use .NET Core 3.

@ClearScriptLib
Copy link
Collaborator

Hi @cilerler,

An update:

  • The main ClearScript library is almost entirely compatible with .NET Core 3.0. We're ironing out a few remaining issues.
  • We're awaiting the final release of .NET Core 3.1 to begin porting the V8 interface.
  • The rest (test libraries, NuGet package, etc.) will follow the V8 work.

Assuming that .NET Core 3.1 fully supports mixed-mode assemblies, we should have a release targeting that platform at some point. Unfortunately, as ClearScript is a side project, we can't commit to any definite timelines.

Thanks!

@cilerler
Copy link
Author

That is fantastic news @ClearScriptLib. Thank you very much!

@LeaFrock
Copy link

@ClearScriptLib Waiting for good news! Thanks!

@ClearScriptLib ClearScriptLib changed the title Add support for .NET Standard Add support for .NET Core Nov 25, 2019
@tombatron
Copy link

WOO HOO!

https://devblogs.microsoft.com/dotnet/announcing-net-core-3-1/

@colonelchlorine
Copy link

When the post says "C++/CLI is only enabled on Windows", what does that mean in terms of the V8 interface port & ClearScript working on other platforms (e.g Linux)?

@ClearScriptLib
Copy link
Collaborator

Hi @colonelchlorine,

.NET Core 3.1 supports mixed assemblies, but only on Windows. ClearScript won't be portable to other operating systems until that changes.

Cheers!

ClearScriptLib added a commit that referenced this issue Dec 18, 2019
…ws (GitHub Issue #9); added support for system documents (GitHub Issue #143); added IList implementation to V8 arrays; added ExtendedHostFunctions.typeLibEnums (GitHub Issue #147); added WindowsScriptEngineFlags.MarshalDateTimeAsDate (GitHub Issue #141); fixed generic type inference for COM interfaces; fixed enumeration of COM collections that don't provide class information (GitHub Issue #146); fixed memory leak impacting Windows Script object property assignment (GitHub Issue #135); updated build and API documentation. Tested with V8 7.9.317.32.
@ClearScriptLib
Copy link
Collaborator

ClearScriptLib commented Dec 18, 2019

ClearScript 6.0 added support for .NET Core 3.1 on Windows.

@cilerler
Copy link
Author

bitmoji

@crowder
Copy link

crowder commented Dec 18, 2019

What remains to be done to enable this support for Linux?

@tombatron
Copy link

They would have to rewrite the library to not by a C++/CLI library.

@ClearScriptLib
Copy link
Collaborator

@crowder @tombatron Strictly speaking, the issue is not with C++/CLI but the fact that ClearScriptV8 is a mixed assembly - one that packs managed and native code into a single file. Such assemblies are supported only on Windows, and our understanding is that Linux support would require kernel and toolchain modifications.

Anyway, because ClearScript now supports .NET Core, we're closing this issue. Please feel free to open new ones to report any problems you encounter with ClearScript on any supported platform.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests