Czy istnieją implementacje ECMAScript .NET CLR / DLR?
Czy ktoś wiereal (i .. no vaporware) implementacje ECMAScript ukierunkowane na.NET CLR / DLR? Idealnie coś takiegoczym jest Rhino dla Javy. Solidny port Rhino działający na platformie .NET Framework / Mono Framework byłby idealny.
Widziałem tylko garstkę wspomnianych projektów, ale nigdy nie widziałem, żeby coś wyszło na jaw lub w rzeczywistości cokolwiek, co kiedykolwiek mogłem uruchomić na skrypcie. Oto, o czym już wiem:
Formant ActiveX MSScriptControl: AFAIK, to było ostatnie prawdziwe wdrożenie zgodne z ECMAScript firmy Microsoft (uruchamia JScript 5.7). Zintegrowałem z MSScriptControl, ale nie uważam interopu COM za odpowiedź na to pytanie. x64 jest zabójcą dla tej opcji.
JScript.NET: Nie liczę JScript.NET, ponieważ nigdy nie może z powodzeniem przeanalizować żadnego z moich prawdziwych skryptów. Wygląda na to, że ma problemy z zamknięciem.
Zarządzany JScript: Brzmi jak to, czego chcę, ale wydaje się być martwy w wodzie. Była to główna przykładowa implementacja DLR, ale potem została uwikłana w SilverLight i wydaje się, że od 2007 r. Stała się priorytetem. Przydatne byłyby źródła wiarygodne.
MyJScript: Zbudowany jako implementacja samouczka dla DLR. Ktoś wie, jak kompletna jest implementacja?
Jint: Interpreter JavaScript dla .NET.Nie obsługuje jeszcze Currying lubtry
-catch
-finally
.
RemObjects Script dla .NET: Ciekawy rywal nadal w pracach. Jestem zdezorientowany ich marketingiem co do tego, co tak naprawdę będzie, ale brzmi to tak, jakby mogło być w końcu dopasowanie. Jeśli ktoś wie więcej na ten temat, byłby również pomocny.
V8 dla .NET: Byłoby wspaniale, gdyby ktoś przeniósł V8 do .NET. O ile mi wiadomo, nie ma też dużego wysiłku. Łącze to pomysł na wywołanie go z zarządzanego opakowania C ++.
Dla tła chcę mieć możliwość wykonywania JavaScript z poziomu .NET; tj. załaduj zestaw skryptów do kontekstu i wywołaj w tym kontekście i pobierz wyniki wykonania. Obecnie przeskakuję przez obręcze, aby korzystać z MSScriptControl za pośrednictwem niewygodnego COM Interop. Niespójność modelu COM sprawia, że naprawdę trudno jest go wdrożyć i zapewnić spójne wykonanie.
Chciałbym być w stanie wykonywać rozsądnie złożone wiązki testowe JavaScript z poziomu .NET. Nie jest to tworzenie makr użytkownika lub prostych małych skryptów; Potrzebuję prawdziwego środowiska JavaScript, takiego jak Rhino. Gdyby implementacja działała nad CLR (a nie COM), to naprawdę pomogłoby w niektórych bieżących problemach.