Как интегрировать ECMA Script в программу на C #, какой метод самый быстрый? - PullRequest
0 голосов
/ 19 августа 2011

Я пытаюсь выполнить JavaScript в программе на C # и пытаюсь определить:

Было бы лучше создать конечный автомат для JavaScript или он должен быть скомпилирован в MSIL перед выполнениемэто?

Я действительно ищу методы, а не решения.Некоторые пытаются скомпилировать JavaScript, рассматривая его как язык программирования, другие используют конечный автомат и рассматривают его так, как он должен был быть: язык сценариев.

Любая документация по методам, используемым для выполнения, также приветствуется.

Ответы [ 2 ]

0 голосов
/ 19 августа 2011

Вы не объяснили свой сценарий - сколько javascript, как часто он выполняется, как часто он меняется, насколько тесно он должен быть связан с логикой C # и так далее.

Если он редко изменяется, то может быть разумно скомпилировать его в MSIL с помощью одной из альтернатив.Если он изменяется «постоянно», то, возможно, имеет смысл установить JS-компилятор и при необходимости отправить его JS.Это что-то вроде REPL для Javascript, которое вы использовали бы программно.Node.js предлагает сервер, который может выполнять операции REPL;он может прослушивать порт, вы отправляете его JS для оценки и отправляет обратно результат. бесплатный компонент w3sockets , который можно использовать из cscript.exe для выполнения чего-то подобного: например, вы можете создать оболочку Javascript "host", которая прослушивает сокет, выполняет js-файл, который получает, а затем отправляетрезультат.

Если он должен быть тесно интегрирован с кодом C #, то вам нужно быть умнее с этим.Одним из способов сделать это может быть размещение JS в Компоненте скрипта Windows и использование кода C # для вызова логики JS через COM.Вы также можете сделать обратное - заставить JS-хост вызывать слой C # через COM для сбора ввода и доставки результатов.


РЕДАКТИРОВАТЬ
Лучшим способом является использование материала IActiveScript - это официальный способ, которым Microsoft позволяет размещать сценарии в приложении.Здесь опубликован пример winforms здесь .

ИЛИ лучше, см. анализ и выполнение JS с помощью C #

Используя этот код, я собрал демонстрациюкак анализировать и вызывать Javascript из приложения .NET, используя IActiveScript.

enter image description here

Вы можете скачать проект VS2010 для этого приложения здесь .

0 голосов
/ 19 августа 2011

Самый простой способ запустить JS в программе на C # - это использовать одну из существующих сред выполнения .Net JS: IronJS, Jurassic и Jint.Если вы заинтересованы в добавлении другого интерпретатора на основе .Net к миксу, изучите их код, с чего бы я начал;Если вы встраиваете JS в свою программу, то, возможно, стоит использовать уже существующую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...