|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
fkthat Roman Mejtes создаешь домен, грузишь сборку в домен, выгружаешь домен, профит. тема уже избитая. И имеешь весь гемморой с ремоутингом/маршаллингом и проч., как только тебе нужно что-то через границы домена вызвать. Кроме того в коре доменов уже нет и там все уже надо делать по-другому (через AssemblyLoadContext). Это можно поправить через WCF с помощью netnamedpipe . Чутка интерфейс вызова изменится. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 13:30 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK fkthat пропущено... И имеешь весь гемморой с ремоутингом/маршаллингом и проч., как только тебе нужно что-то через границы домена вызвать. Кроме того в коре доменов уже нет и там все уже надо делать по-другому (через AssemblyLoadContext). Это можно поправить через WCF с помощью netnamedpipe . Чутка интерфейс вызова изменится. Что-то мне всё это напоминает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 13:41 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Человек просто не понимает какую задачу решает, но уже решает. Плагины шмагины, WCF. Зачем это всё? -- Потому что могу ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 15:22 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
WCF для того, чтобы пользователь мог скрипт в полдюжины строк написать, это сила. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 16:13 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
fkthat WCF для того, чтобы пользователь мог скрипт в полдюжины строк написать, это сила. Да ладно? WCF, чтобы дергать плагины из другой сборки( которая конечно же в своем AppDomain сидит). Без всяких ухищрений с Marshal. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 16:45 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK fkthat пропущено... Вот тебе, например, аргумент: "скрипт" на шарпе однажды откомпилировавшись и загрузившись выгружен уже быть не может (CLR не может выборочно выгружать загруженную сборку). Еще, как и с любыми плагинами, возможные проблемы с версионностью зависимостей (Скрипт №1, например требует библиотеку версии 1.2.3.4, а скрипт №2 требует ту же библиотеку, но версии 2.3.4.5). Это не аргумент:) Это возмущение. Ну не может выгрузить и что? Если два плагина, должны работать в runtime то явно они будут уникальными. Просто подгружаешь два плагина и раскидываешь скрипт куда нужно. Чето вижу аргументов нету. 100%, совсем нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 16:46 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK fkthat WCF для того, чтобы пользователь мог скрипт в полдюжины строк написать, это сила. Да ладно? WCF, чтобы дергать плагины из другой сборки( которая конечно же в своем AppDomain сидит). Без всяких ухищрений с Marshal. Кстати, тут пробойчик, WCF - устаревшая фигня! надо что-то посовременнее ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 16:48 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK WCF, чтобы дергать плагины из другой сборки( которая конечно же в своем AppDomain сидит). Без всяких ухищрений с Marshal. WCF как бы подразумевает общение посредством жестко заданных интерфейсов. Произвольный скрипт (о котором речь шла изначально) подразумевает всё, что угодно. Или мы уже про откуда-то взявшиеся плагины? Ролг Хупин Кстати, тут пробойчик, WCF - устаревшая фигня! надо что-то посовременнее Ага, gRPC прикрутить. Будет вообще красота. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 17:48 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Произвольный скрипт (о котором речь шла изначально) подразумевает всё, что угодно. Или мы уже про откуда-то взявшиеся плагины? Что дальше мысль не развивается? Кидаем по WCF текст, скрипта, Там он компилится, и выполняется, результат в каком-то формате. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 18:14 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK Кидаем по WCF текст, скрипта, Да чо уж там - кидай сразу в какой-нибудь кастомный облачный сервис, а то у тебя как-то слишком просто получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 18:46 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK Что дальше мысль не развивается? Куда нам угнаться до мыслей Алёши ) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2020, 20:04 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK Сон Веры Павловны Произвольный скрипт (о котором речь шла изначально) подразумевает всё, что угодно. Или мы уже про откуда-то взявшиеся плагины? Что дальше мысль не развивается? Кидаем по WCF текст, скрипта, Там он компилится, и выполняется, результат в каком-то формате. концепция есть Теперь, главное, как говорят в немецких фильмах про сантехников - не останавливаться! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 08:27 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK Сон Веры Павловны Произвольный скрипт (о котором речь шла изначально) подразумевает всё, что угодно. Или мы уже про откуда-то взявшиеся плагины? Что дальше мысль не развивается? Кидаем по WCF текст, скрипта, Там он компилится, и выполняется, результат в каком-то формате. Все логично, клиент шлет скрипт в WCF сервис, тот выполняет его и , в зависимости от результата - шлет ответку - свой скрипт(!) клиенту. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 08:29 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
Читаю всё это и наводит на мысль, что автор хочет тоже самое, что я сейчас активно пишу. Сначала это было просто приложение WinForms, типо блокнотика для написания кода на VB/C#. Но в отличие от простого блокнота, здесь при вызове метода Main я передаю параметр SPA, в котором собрано большая куча объектов реализующие функций-прослоек для доступа к PostgreSQL, SQLite, Oracle, XML, Http, Soap, Ftp и т.д. Пользователь "не программист" может писать простые обработки (сразу бизнес-логику) с возможностью приостановки кода на паузу и остановку (об этом отдельный разговор). Конечно же всё работает с многопоточностью и доступна вся платформа .NET со всеми классами. Компиляция на лету работает на базе класса CodeDomProvider. . Спустя время понимаю, что есть неудобство, поэтому разделил приложение на ядро и визуальную часть. Сделал службу Windows, которая реализует простой REST интерфейс для приёма кода и выдачи статуса задачи пользователю. Пишу веб-страничку, где пользователь будет писать код/выбирать готовые обработки и отправлять через него. Да, это заработало. Теперь можно запускать задачи и вручную и планировать через службу (а серверов у нас не мало) Кто-то скажет велосипед, но так и есть, но он работает, его поддерживать легко, а главное люди пользуются и не надо особо им объяснять что и где менять в коде, чтобы решить их задачу. Конкретно про невыгрузку DLL из домена: действительно, жрёт память чуть-чуть, пока не критично. Служба будет рестартоваться довольно часто, поэтому совсем не критично. Читал статью, что можно создать отдельный домен и туда загружать сначала DLL, который будет реализовывать компиляцию. А оно уже будет загружать пользовательский скрипт (тоже DLL) в свой домен. Но пока класс компиляции не выносил в отдельную сборку, пока работает как есть. Итого: автору топика можно идти этим путём, потому как такие решения работают и на достаточно сложных задачах. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2020, 22:00 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
VSVLAD, не уверен, что подобный код с импортами, классами, можно назвать как инструмент для "не программистов" :) очевидно, что .NET в виде c#/vb выставляют наружу программисты только потому что им удобней, о пользователях никто особо не думает. понятно, что пользователи как-то приспосабливаются, и даже привыкают. но сложнейшие сценарии в играх, например, описываются не на Cи, на котором игры пишутся, а на Lua или другом подобном языке. сам с этим сталкивался, и да "непрограммисты" конечно могут приспособиться и писать на C# или VB.net с помощью тех же программистов, свою работу надо делать, хотя бы и с адовыми интерфейсами от программистов. а интерфейсы от программистов -- адовые. за примерами далеко ходить не нужно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 00:07 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
hVostt VSVLAD, не уверен, что подобный код с импортами, классами, можно назвать как инструмент для "не программистов" :) Короче, ребята, с вашей стороны только пыль в глаза) Маги и волшебники перфекционисткой эры. С нашей стороны, даже примеры есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:01 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK hVostt VSVLAD, не уверен, что подобный код с импортами, классами, можно назвать как инструмент для "не программистов" :) Короче, ребята, с вашей стороны только пыль в глаза) Маги и волшебники перфекционисткой эры. С нашей стороны, даже примеры есть. Кто-то скажет велосипед, но так и есть(ц) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:10 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK Короче, ребята, с вашей стороны только пыль в глаза) Маги и волшебники перфекционисткой эры. С нашей стороны, даже примеры есть. Демонстрируете как вы гвоздь забили микроскопом и надуваете грудь. Как будто мы это не проходили. Вопрос, а что вы читали по этой теме? Может какие-то исследования проводили? Или как обычно, положили хрен и сделали как получилось, из говна и палок. Огого?! C# можно компилить в рантайм, всё, будет сисярп и неи....т. Отэто достижение ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:11 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
Предлагаю почитать в образовательных целях. https://www.ibm.com/developerworks/ru/library/l-embed-lua/index.html https://www.coppeliarobotics.com/helpFiles/en/scripts.htm https://habr.com/ru/company/socialquantum/blog/428253/ https://ru.wikipedia.org/wiki/Сценарный_язык Одно из ключевых отличий встраиваемых языков -- они интерпретируемые. Чтобы пользователь мог отлаживать в рантайме, запуская бесчисленное количество раз. ЯП должен быть простым и заточен на прикладную область. Вот так примерно должна выглядеть минимальная программа типа Hello World Код: vbnet 1.
Никаких импортов, классов, методов. Это обычный императивный в доску сценарий. Такой, который легко транслируется на обычный русский язык из программы и обратно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:27 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
Твоя позиция с LUA ясна . Но это печаль. Максимум хукать код под события в движке. Дальше уже каша. print "hell" можно и на c# сделать. Придумать простой синтаксис и всё. А заниматься интеграцией LUA в любой движок, это ж кривости сплошные. Я то просто видел:) что это. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 15:02 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
hVostt, CSX на самом деле соответствует всем требования вышеперечисленным. там нет никаких пользовательских абстракций, классов и ненужного импорта, прочей фигни, точнее всё это можно не юзать. и будет не сильно от Lua отличаться. 2_AlexeiK, вы пришли за советом, вы его получили, развернуто, во всех отношениях, вместо того, чтоб прислушаться, вы пишите: "советы говно и я самый умный", тогда не понятно, зачем вы вообще эту тему создали, пилите как хотите, всем пофигу, на самом деле. хоть на Си скрипты пишите ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 15:10 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
Roman Mejtes hVostt, 2_AlexeiK, вы пришли за советом, вы его получили, развернуто, во всех отношениях, вместо того, чтоб прислушаться, вы пишите: "советы говно и я самый умный", тогда не понятно, зачем вы вообще эту тему создали, пилите как хотите, всем пофигу, на самом деле. хоть на Си скрипты пишите Я не создавал:) КОсяк братишечка) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 15:15 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AlexeiK Твоя позиция с LUA ясна . Lua как пример. На нём свет клином не сошёлся. AlexeiK Но это печаль. Максимум хукать код под события в движке. Дальше уже каша. Никаких проблем. AlexeiK print "hell" можно и на c# сделать. Придумать простой синтаксис и всё. Это уже будет не C#, а именно то, о чём я говорю. Придумаете синтаксис -- значит изобрели свой DSL, хороший DSL на вес золота. AlexeiK А заниматься интеграцией LUA в любой движок, это ж кривости сплошные. Я то просто видел:) что это. Ну речь идёт о конечной цели. Если ресурсов для внедрения скритов в ПО нехватает, лучше ограничиться обычным написанием кода. Не нужно лезть на рожон. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 20:38 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
Roman Mejtes CSX на самом деле соответствует всем требования вышеперечисленным. там нет никаких пользовательских абстракций, классов и ненужного импорта, прочей фигни, точнее всё это можно не юзать. и будет не сильно от Lua отличаться. Я ж не настаиваю на Lua, как может показаться, просто в этой сфере он самый распространённый. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 20:40 |
|
Приложение на C# и внутри скрипты на C# ?
|
|||
---|---|---|---|
#18+
AleksVoronezh, А вариант с Roslyn в качестве скриптового движка никто не рассматривал? Там, вроде, даже мудохаться с доменами не надо... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2020, 17:10 |
|
|
start [/forum/topic.php?fid=20&msg=39974830&tid=1398497]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
300ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 231ms |
total: | 649ms |
0 / 0 |