Совместное использование кода JavaScript между рабочим столом.NET и браузером

У меня есть набор основных, сложных структур / классов данных JavaScript, которые я хотел бы использовать как в браузере в качестве JavaScript, так и на настольном компьютере с.NET 3.5. Можно ли скомпилировать дружественный к вебу JavaScript в сборки, к которым может получить доступ мой код C#?

  • Управляемый JScript - есть ли для этого доступный компилятор, который будет производить что-то, что может работать на CLR рабочего стола? Я видел только выпущенные примеры для среды выполнения Silverlight. Не похоже, что он официально доступен на рабочем столе, но я хочу попробовать что-то менее удачное, например, могу ли я скомпилировать инструменты Silverlight, а затем запустить на настольном компьютере CLR?
  • JScript .NET - Звучит так, как будто у него достаточно пользовательских языковых расширений, когда запуск одного и того же кода в браузере был бы действительно сложным, но, может быть, есть способ...?

Если ни одна из этих работ не работает, я думаю, мои варианты:

  • У меня есть версия C# и версия JavaScript, которую я должен синхронизировать.
  • Напишите своего рода препроцессор, который запускается во время компиляции, чтобы превратить мой JavaScript в JScript .NET или что-то, что я могу скомпилировать в сборки.NET.
  • Скрипт #: похоже, это превращает код C# в код JavaScript. Не удивительно, так как я предпочел бы иметь возможность напрямую настраивать код JavaScript, но он мог бы работать.

У кого-нибудь есть успех с любым из этих вариантов?

3 ответа

Решение

JScript.Net на самом деле в основном соответствует EMCAScript3. До тех пор, пока вы рассматриваете свой код как библиотеку обработки (выполняйте только обработку и т. Д. - используйте обратные вызовы для взаимодействия с программой), все будет в порядке. Я делаю что-то похожее, использую javascript в качестве основной библиотеки синтаксического анализа, а затем использую это в python, dotnet и php.

Управляемый JavaScript (IronJScript), похоже, был убит. Смотрите этот ответ:

Как насчет другого варианта:

  • Размещаете приложение javascript внутри своего настольного приложения через элемент управления winforms' WebBrowser?

Это возможно?

Вы также можете получить доступ к DOM из элемента управления WebBrowser, но не все, что вы хотите, полностью поддерживается.

Другие вопросы по тегам