Совместное использование кода 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, но не все, что вы хотите, полностью поддерживается.