2008-11-07 5 views
4

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

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

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

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

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

ответ

1

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

+0

Проблема, с которой я столкнулась (с использованием JScript.NET), заключается в том, что, хотя можно вызвать функции и классы, определенные в JScript.NET, с других языков, похоже, нет способа получить доступ переменные и код запуска, определенный «на верхнем уровне». Кроме того, если функции или методы пытаются получить доступ к вещам, инициализированным в глобальном масштабе, эти значения не инициализируются. Если у вас есть другой опыт, я бы хотел услышать об этом! – 2009-06-01 22:55:28

0

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

  • хоста по Javascript приложения в настольном приложении с помощью управления WebBrowser WinForms?

Возможно ли это?

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

1

Казалось, что управляемый JavaScript (IronJScript) был убит. См. this answer: