[javascript] JavaScript 엔진을 .NET에 임베드 [닫기]

누군가 js 엔진을 .net 환경에 포함시키고 실제로 통합하려고 시도했는지 궁금합니다. Spidermonkey-dotnet 프로젝트를 찾아서 실제로 사용할 수 있습니다 ( 많은 고통과 노력을 겪은 후에도 꽤 오래되고 완성되지 않았기 때문에). 이 분야에 경험이있는 사람이 있습니까? SquirrelFish, V8과 같은 엔진

Mozilla의 Spidermonkey에 만족하지는 않지만 (핵심 ASP.NET 응용 프로그램 내부의 사용자 정의 구성 요소에 Rails와 같은 미니 프레임 워크에 사용), 여전히 옵션을 조금 더 탐색하고 싶습니다. 커맨드 라인 솔루션은 내가 필요한 것이 아니며 CLR 이외의 다른 것에 의존 할 수 없으며 JavaScript / C # 객체에서 메소드를 호출해야합니다.

// c# class
public class A
{
    public string Hello(string msg)
    {
        return msg + " whatewer";
    }
}

// js snippet
var a = new A();
console.log(a.Hello('Call me')); // i have a console.log implemented, don't worry, it's not a client-side code :)

명확히하기 위해-실제로 서버 측 자바 스크립트로 응용 프로그램 자체 를 프로그래밍하려고하지 않습니다 . 사용자 지정 사용자 하위 응용 프로그램을 작성하는 데만 사용됩니다 (일종의 DSL로 볼 수 있음). 일반 사람들이 C #보다 js로 프로그래밍하는 것이 훨씬 쉽고 안전합니다.



답변

Javascript .NET을 사용해보십시오 . 그것은 GitHub의 그것에서 호스팅되는 원래는 CodePlex에서 호스팅되었습니다 여기 )

프로젝트 토론 : http://javascriptdotnet.codeplex.com/discussions

Google V8을 구현합니다. .NET 코드에서 직접 JavaScript를 컴파일하고 실행하고 JavaScript 코드에서도 사용할 CLI 객체를 제공 할 수 있습니다. JavaScript에서 기본 코드를 생성합니다.


답변

오픈 소스 JavaScript 인터프리터 Jint ( http://jint.codeplex.com )는 원하는 것을 정확하게 수행합니다.

편집 :
프로젝트가 완전히 다시 작성되었으며 이제 https://github.com/sebastienros/jint의 Github에서 호스팅됩니다


답변

당신은 또한에 관심이있을 수 있습니다
GitHub에서 호스팅되고 Ms-Pl 라이센스로 게시 된 Microsoft ClearScript에 .

저는 Microsoft 팬 보이는 아니지만 V8 지원에는 Javascript.Net과 거의 동일한 기능이 있으며 더 중요한 것은 프로젝트가 계속 유지되고 있음을 인정해야합니다. 내가 아는 한, 대리자 지원은 Spidermonkey-dotnet보다 더 잘 작동합니다.

추신 : 그것은 또한 JScript와 VBScript를 지원하지만 우리는이 오래된 것들에 관심이 없었습니다.

추신 : 그것은 .NET 4.0 및 4.5 이상과 호환됩니다


답변

쥬라기를 확인하는 사람도 있습니다.

http://jurassic.codeplex.com/

편집 : 이것은 github으로 옮겨졌습니다 (그리고 언뜻보기에 활성화 된 것처럼 보입니다)

https://github.com/paulbartrum/jurassic


답변

당신은 ironJS를 시도 할 수 있습니다. https://github.com/fholm/IronJS


답변

관리하려는 JScript 가 귀하의 요구에 더 적합한 것처럼 보이지만 JScript.NET은 조사해 볼 가치가 있지만 JScript.NET은 조사해 볼 가치가 있습니다. .

개인적으로, 나는 어떻게 든 V8을 통합하는 것이 멋지다고 생각했지만, 소스 코드를 다운로드하는 것은 지나치지 않았다. 실제로 무언가를 할 시간이 있었으면 좋겠다.


답변

언어에 문제가없는 경우 (샌드 박스로 스크립팅 된 언어) .NET 용 LUA가 있습니다. .NET 프레임 워크의 Silverlight 버전도 샌드 박스로 제공됩니다.