Y at-il .NET CLR/DLR implémentations de ECMAScript?
Personne ne sait de réel (i.. pas qu'une simple rumeur) implémentations de ECMAScript le ciblage de la .NET CLR/DLR? Idéalement, quelque chose comme ce que Rhino est pour Java. Une solide port de Rhino en cours d'exécution sur .NET Framework /Cadre Mono, ce serait parfait.
J'ai seulement vu une poignée de projets mentionné, mais jamais vu tout venir à la lumière ou dans la réalité quelque chose que je n'ai jamais été en mesure d'exécuter le script sur. Voici ce que j'en sais déjà:
-
MSScriptControl Contrôle ActiveX: Autant que je sache, ce Microsoft était l'un des derniers véritables conforme ECMAScript implementaiton (fonctionne JScript 5.7). J'ai intégré avec MSScriptControl mais ne considèrent pas la COM interop être une réponse à cette question. x64 est un tueur à gages pour cette option.
-
JScript.NET: Je ne compte pas JScript.NET comme il n'a jamais pu réussir à analyser n'importe quel de mes véritables scripts. Il semble avoir du mal avec les fermetures.
-
Géré JScript: Cela ressemble à ce que je veux, mais il semble être mort dans l'eau. Il était un grand exemple de mise en œuvre de la DLR, mais ensuite obtenu empêtré avec SilverLight et semble avoir disparu comme une priorité depuis 2007. Honorables de sources sur le statut de ce qui serait utile.
-
MyJScript: Construit comme un tutoriel de mise en œuvre de la DLR. Quelqu'un sait comment complet de la mise en œuvre c'est?
-
Jint: Interpréteur JavaScript pour .NET.
N'a pas encore de support de Nourrissage outry
-catch
-finally
. -
RemObjects Script .NET: Une intéressante concurrent encore en travaux. Je suis confus par leur marketing de ce qu'il sera réellement, mais il sonne comme il pourrait éventuellement être un ajustement. Si quelqu'un en sait plus sur ce qui pourrait être utile en tant que bien.
-
V8 pour .NET: Ce serait génial si quelqu'un portage de la V8 .NET. Pour autant que je sache, il n'existe pas un grand effort autour de ce soit. Le lien est pour une idée de l'appel à partir d'un wrapper C++ managé.
Pour le fond, je veux être en mesure d'exécuter le code JavaScript de l'intérieur .NET; c'est à dire charger un ensemble de scripts dans leur contexte et de les appeler dans un tel contexte, et de récupérer les résultats de l'exécution. Actuellement je saute à travers des cerceaux pour utiliser MSScriptControl par la lourdeur COM Interop. L'incohérence de la COM, il est vraiment difficile pour le déploiement et assurer l'uniformité de l'exécution.
J'aimerais être en mesure d'exécuter raisonnablement complexe JavaScript harnais de test de l'intérieur .NET. Ce n'est pas pour la création de l'utilisateur des macros ou simple minuscule scripts, j'ai besoin d'un vrai environnement JavaScript comme Rhino. Si la mise en œuvre était en cours d'exécution sur le dessus de la CLR (plutôt que de COM) ce serait vraiment aider avec certains des enjeux actuels.
- Pouvez-vous exécuter rhino via kvm? ikvm.net
- JavaScript sur Mozilla Rhino, plus de IKVM.NET plus de .NET. Ce sandwich 🙂
- Ou Rhino sur VMKit (llvm.org).
- Jint ne poignée de nourrissage et d'exception maintenant
- Mon contrebande de mise en œuvre est en travaux...
- McMillan pouvez-vous s'il vous plaît ajouter cela comme une réponse afin que nous puissions commenter avec les résultats, etc.
Vous devez vous connecter pour publier un commentaire.
Actuellement, j'ai modifié une version de la EcmaScript.NET à l'intérieur de mon YUICompressor.NET port (projet).
Si vous prenez le le code source à partir d'ici, j'ai joint mon code modifié dans le projet, vous pouvez référencer. C'est la seule source de code que j'ai trouvé .NET qui permet de traiter l'analyse javascript côté serveur.
Malheureusement, je ne me souviens pas comment je l'ai finalement trouvé. Il a été un processus difficile, je dois l'admettre. Je crois que j'ai trouvé quelques références Mozilla dev pages, quelque part sur la Rhino (le code java) qui m'a conduit à trouver que le C# .NET implimentation.
J'ai eu à le modifier légèrement à la synchronisation avec quelques modifications de l'YUI Compressor gars ont fait de leur code de la branche. Donc de la modification de la direction générale, j'ai peut-être pas le meilleur .. mais il est le plus proche que j'ai vu à l'origine de Java branche.
L'original de code c# pour EcmaScript.NET n'a pas été touché depuis 2007 ... au moins pour la page de téléchargements.
Peut-être cela peut vous aider??
HTH.
Encore à peu près en vie:
D'Autres Projets, La Plupart Du Temps Mort:
Fou Méthode:
Personne n'a mentionné jurassique http://jurassic.codeplex.com/
Je ne sais pas comment il est bon en général (la performance, la facilité d'utilisation, etc), mais au moins il analyse assez complexe des scripts (autres applications le font pas) et il prend en charge ECMAScript 5 spec. Je viens d'ajouter le lien ici pour référence.
Personne n'est mentionné ClearScript, donc ClearScript.
Ce n'est pas une mise en œuvre; c'est un wrapper interop qui prend en charge la V8, JScript et VBScript, avec une très bonne API pour appeler de l' .NET code.
Exemple de code à partir de la CodePlex page:
Vous pouvez prendre un coup d'oeil à Jint (http://jint.codeplex.com) qui est un open-source ECMAScript interprète.
Mise à jour
Récemment réécrit version disponible sur Github à https://github.com/sebastienros/jint
Vous devriez essayer de Javascript .NET (http://javascriptdotnet.codeplex.com/) sur Codeplex. Ils ont enveloppé v8 avec le C++ et ensuite vous pouvez utiliser cette bibliothèque .NET, les applications, et il fonctionne comme un charme. L'open source offre un assez bon si vous me demandez.
Acclamations.
Vous pouvez utiliser Jscript.net et il sera effectivement travailler avec code javascript arbitraire; il Vous suffit de désactiver le "mode rapide" par compilation avec
jsc /fast- bar.js
Je n'ai pas testé; je l'ai juste remarqué lors de la lecture de ce post et pensé que ce serait une autre solution raisonnable. MSDN A la documentation pour cette option et quelles sont les limites sont si vous ne l'utilisez pas.
V8.NET
Celui-ci est probablement la meilleure que j'ai rencontré encore.
https://v8dotnet.codeplex.com/documentation
Plus son été construit depuis le début avec une Mono port à l'esprit.
Il vous donne le plein contrôle sur la puissance du moteur V8 de code managé.
Je préfère JINT plutôt que de la
les autres.
JINT peut-être lente, mais elle est facile à déboguer et à interagir votre propre .NET classes.
(Il est difficile de définir
[ComVisile]
les attributs de tous les temps pour jscript.dll etc).En termes de filetage, JINT et Jurassic travail comme je m'y attendais. Afin de travailler avec moteur JScript ou Google V8, vous devez faire attention à l'INTERFACE utilisateur-problème thread.
Cependant, JINT est dépassé dans certains aspects, parce que j'ai de la difficulté à compiler JQuery 1.5 ou ultérieure.
J'espère Jurassique peut retirer sa limite de bâton de sa propre classe pour travailler avec la création d'
'AllowBob'sCLRClass=true'
.J'ai ré-écrire l'ensemble de la classe. C'est dur...