powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Скрипты в .NET приложении
25 сообщений из 36, страница 1 из 2
Скрипты в .NET приложении
    #38378044
pemp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добра!

Появилась необходимость дать пользователям возможность писать скрипты в приложении, то есть нужно сделать API который будет высовывать наружу некоторые методы и структуры и скриптовый язык, который сможет использовать этот API, и умеет работать с файловой системой итп.
Идеальный вариант поддержка двух языков: С# чтобы разработка в рамках API не сильно отличалась от работы разработчика приложения. и код мог перетекать без особых изменений из приложения в скрипты и обратно.
И какой-нибудь простенький скриптовый язык, который учится за день и может только вызывать предоставленные ему методы API
Существуют ли готовые годные решения, и вообще в каком направлении копать?
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38378107
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IronPython
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38378311
pemp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Roslyn это что такое? студия 2010 посмотреть не получается.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38378361
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XSLT или Razor. Штатные языки, никаких дополнительных телодвижений.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38378371
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, а почему не рассматриваешь варианты работы с полноценными аддонами? Тут тебе C# со всеми вытекающими. Опять же, всё штатно.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38378396
pemp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
Я сейчас рассматриваю все варианты. Просто задача внезапно сегодня обрисовалась и пока даже еще не знаю с какой стороны удачнее зайти.
XSLT у меня уже собирает кастомный XAML, теперь нужно кастомизировать поведение. грубо говоря нужно чтобы пользователь мог дописывать в приложение свои обработчики событий ни в чем себе не отказывая.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38378405
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну так кури плагины. MEF или "MAF".
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38378447
pemp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
Спасибо за идею. покапаю в этом направлении, и возможно вопрос с полноценным языком возможно решен. осталось решить проблему с простым языком скриптов для непрограммистов.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38378597
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAF: http://codearticles.ru/articles/2350
MEF: http://codearticles.ru/articles/2349
Простой язык скриптов Razor: http://codearticles.ru/articles/2339
Простой язык скриптов XSLT: http://codearticles.ru/articles/1289
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38379364
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38379366
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38379376
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrow, так есть же родной JScriptCodeProvider...

Вот тут еще подборка скриптовых раннеров.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38379810
pemp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем добавилось требование: должно выглядеть как запуск текстовых скриптов в рантайме и иметь какой-нибудь отладчик для них с пошаговым выполнением и возможностью смотреть что в переменных. плагины не проходят по первому требованию.

Пробовал Roslyn полноценная поддержка скриптов на C# реализуется в 20 строчек кода. тынц
Нет дебагера из коробки, хотя есть доступ ко всем кишкам компилятора чтобы это сделать. и нужны .Net 4.5, VS 2012, SDK, собственно Roslyn. Ну и пока неясное будущее CTP.

Простой язык скриптов XSLT
Хорошая шутка
собственно скрипты в XSLT это уже расширение. и на практике оказалось выходит внезапными тормозами и подвисаниями, ну и МС XSLT 1.0 только поддерживают, который только для простого трансформа пригоден.

IronPython попробовал. как-то он неинформативно сообщает об ошибках. простую опечатку, если не знать где, можно искать достаточно долго, хотя может что-то делаю не так.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38379835
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pempсобственно скрипты в XSLT это уже расширение. и на практике оказалось выходит внезапными тормозами и подвисаниями
Всё зависит от конкретной реализации задачи.

pempну и МС XSLT 1.0 только поддерживают, который только для простого трансформа пригоден.
Первой версии хватает за глаза. Что есть "простой" трансформ для меня загадка. Он пригоден для любого трансформа.

pempRoslyn, IronPython, ...
Продолжай дальше заниматься садомазахизмом. А нормальные вменяемые люди будут юзать плагины на MEF и MAF. Там и студийный дебаг и всё остальное.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38379859
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А VSTA похоронен?
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380011
Фотография tAZAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как насчет компиляции временных сборок из "скриптов" на C# (CSharpCodeProvider)?
Отладчик - студия ( Debugger.Break() )
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380044
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tAZAR, уже предлагалось.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380067
Фотография tAZAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Хм, не увидел. Только JScript.

Вообще, MEF же неплохой вариант.
Юзеры должны будут писать скрипты... В чем? В текстовом поле с подсветкой синтаксиса?
В свое время стоял перед выбором. Лучше студии вряд ли что-то будет.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380085
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tAZARВообще, MEF же неплохой вариант.
Юзеры должны будут писать скрипты... В чем? В текстовом поле с подсветкой синтаксиса?
В свое время стоял перед выбором. Лучше студии вряд ли что-то будет.
+1, но я бы лучше на новомодном MAF сделал бы в виде отдельный сборок + реализован функционал для запуска trusted code, в отличие от MEF. Но можно и самому такое сделать на чистом CSharpCodeProvider: http://codearticles.ru/articles/1303
Вообщем, вариантов масса - бери да юзай. Но автор упорно давит лбом кирпичную стену и ищет какие-то экзотические способы.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380341
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.csscript.net
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380566
pemp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУpempсобственно скрипты в XSLT это уже расширение. и на практике оказалось выходит внезапными тормозами и подвисаниями
Всё зависит от конкретной реализации задачи.

Может быть, тогда как ускорить компиляцию скриптов в рантайме? штатными средствами что-то более-менее крупное при первом вызове занимало 0.5-1.5 секунды на клиентском компьютере, с учетом того, что это происходит не на старте приложения, а во время работы пользователя это оказалось не приемлемо.
МСУpempну и МС XSLT 1.0 только поддерживают, который только для простого трансформа пригоден.
Первой версии хватает за глаза. Что есть "простой" трансформ для меня загадка. Он пригоден для любого трансформа.

Значит просто не приходилось сталкиваться. У меня половина проекта на XSLT, отлично решает поставленные задачи, но раньше периодически наступали на грабли, связанные с тем что XSLT 1.0 чего-то не умеет, а XSLT 2.0 не поддерживается. потом написали свой претрансформер, который приводит сырые данные в более удобную для XSLT форму и теперь на паримся.

МСУПродолжай дальше заниматься садомазахизмом. А нормальные вменяемые люди будут юзать плагины на MEF и MAF. Там и студийный дебаг и всё остальное.
Все это отлично. вот только нанимать и обучать нормальных вменяемых людей по всему миру, открыть еще один отдел сапорта который будет учить людей пользоваться студией. итп. выйдет на порядок дороже, чем написать свой скриптовый движок для простой логики, в которой большинство клиентов будут просто свои цифры и буквы подставлять. Когда-то даже простой переход с .net 3.5 на 4 неожиданно создал кучу геморроя при обновлении и развертывании у новых клиентов. хотя казалось бы у всех есть сисадмины, интернет, автообновление... но мир внезапно оказался неидеальным, а на большом количестве это становится фактором с которым приходится считаться и закладывать в бюджет.

К слову Roslyn весьма интересная штука, как оказалось. Простой редактор текста с проверкой синтаксиса пишется в пару десятков строк. смущает пока еще неясное будущее.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380583
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pempМожет быть, тогда как ускорить компиляцию скриптов в рантайме?
Никак. Только оптимизировать алгоритм. Разговор о сферическом коне в вакууме.

pempЗначит просто не приходилось сталкиваться. У меня половина проекта на XSLT, отлично решает поставленные задачи, но раньше периодически наступали на грабли, связанные с тем что XSLT 1.0 чего-то не умеет
Ну не без этого. Но это же не полноценный объектно-ориентированный язык, а простой язык преобразования XML-документов.

pempВсе это отлично. вот только нанимать и обучать нормальных вменяемых людей по всему миру, открыть еще один отдел сапорта который будет учить людей пользоваться студией. итп. выйдет на порядок дороже, чем написать свой скриптовый движок для простой логики
Сомневаюсь на счет дороже. На разработку своего движка уйдут годы, его так же нужно поддерживать, развивать, ловить баги и прочее. Не всё так прозрачно, как тебе кажется. Проще взять готовые движки, чем изобратеть велосипеды.
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380734
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подкину экзотики на вентилятор: rhino dsl boo
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38380911
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SerP1983Подкину экзотики на вентилятор: rhino dsl boo

Если об экзотике: Lua + LuaInterface

Сам не пробовал, но говорят очень шустрый язык, на порядок быстрее JavaScript
...
Рейтинг: 0 / 0
Скрипты в .NET приложении
    #38381085
pemp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУpempМожет быть, тогда как ускорить компиляцию скриптов в рантайме?
Никак. Только оптимизировать алгоритм. Разговор о сферическом коне в вакууме.

А как влияет оптимизация алгоритма на скорость компиляции? скорее наоборот менее эффективный но более прямолинейный алгоритм скомпилируется быстрее. К слову, затык произошел на просто однопроходном парсинге строки 10-300 символов, в котором сложно что-то соптимизировать.

МСУ Сомневаюсь на счет дороже. На разработку своего движка уйдут годы, его так же нужно поддерживать, развивать, ловить баги и прочее. Не всё так прозрачно, как тебе кажется. Проще взять готовые движки, чем изобратеть велосипеды.
Собственно потому я сейчас и рассматриваю все предложенные и не предложенные варианты. хотя на рослине, между делом, рабочий движок сделал, полностью удовлетворяющий требованиям, за исключением отладчика. Но что-то подсказывает, что есть подводные камни.
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Скрипты в .NET приложении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]