Поскольку MS , похоже, убила управляемый JavaScript в последняя версия DLR как для серверной (ASP.NET Futures), так и для клиентской (Silverlight), может ли кто-нибудь успешно использовать не устаревшие API-интерфейсы для создания сценариев своих объектов приложения с помощью JScript.NET и / или может объяснить, как сделать так? Решение Mono / JScript также может быть приемлемым, если оно стабильно и соответствует нижеприведенным требованиям.
Мы заинтересованы в обновлении хоста сценариев, который использует движок Microsoft JScript и API ActiveScript, до чего-то более производительного и более простого. У нас есть более 16 000 сценариев на стороне сервера, имеющих более 42 МБ исходного кода, поэтому о переписывании на другой язык сценариев не может быть и речи.
Наши особые требования:
- Noteably better performance than the Microsoft JScript (ActiveScript) engine
- Better runtime performance and/or
- Сохранение предварительно проанализированных или скомпилированных скриптов (не выполняйте повторный анализ при каждом запуске)
- Более низкое или равное потребление памяти
- Full ECMA-262 ECMAScript compatibility
- a little porting can be tolerated
- Injection of custom objects into the script namespace
- .NET objects (not a hard requirement)
- COM-объекты или COM-объекты, завернутые в .NET
- Instantiation of COM objects from Script
- à la "new ActiveXObject(progid)"
- Низкий приоритет с учетом предыдущего
- Include files
- Pre-loading of "helper scripts" into a script execution context
- Функция или оператор "include" (легко создать, учитывая вышеизложенное)
- Support for code at global-scope
- Execution of code the global scope
- Сохранение значений, инициализированных в глобальной области
- Извлечение значений из глобальной области видимости
- Внедрение и замена значений в глобальном масштабе
- Calling of script-defined functions
- with parameters
- и с доступом к ранее инициализированной глобальной области видимости
- Отладка на уровне исходного кода
- Коммерческая поддержка или поддержка с открытым исходным кодом
- Не устаревшие API