powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Приложение на C# и внутри скрипты на C# ?
25 сообщений из 52, страница 2 из 3
Приложение на C# и внутри скрипты на C# ?
    #39974551
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Roman Mejtes
создаешь домен, грузишь сборку в домен, выгружаешь домен, профит. тема уже избитая.

И имеешь весь гемморой с ремоутингом/маршаллингом и проч., как только тебе нужно что-то через границы домена вызвать. Кроме того в коре доменов уже нет и там все уже надо делать по-другому (через AssemblyLoadContext).


Это можно поправить через WCF с помощью netnamedpipe .
Чутка интерфейс вызова изменится.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974556
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
fkthat
пропущено...

И имеешь весь гемморой с ремоутингом/маршаллингом и проч., как только тебе нужно что-то через границы домена вызвать. Кроме того в коре доменов уже нет и там все уже надо делать по-другому (через AssemblyLoadContext).


Это можно поправить через WCF с помощью netnamedpipe .
Чутка интерфейс вызова изменится.

Что-то мне всё это напоминает.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974624
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Человек просто не понимает какую задачу решает, но уже решает. Плагины шмагины, WCF. Зачем это всё?

-- Потому что могу
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974666
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WCF для того, чтобы пользователь мог скрипт в полдюжины строк написать, это сила.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974682
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
WCF для того, чтобы пользователь мог скрипт в полдюжины строк написать, это сила.

Да ладно?

WCF, чтобы дергать плагины из другой сборки( которая конечно же в своем AppDomain сидит). Без всяких ухищрений с Marshal.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974685
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
fkthat
пропущено...

Вот тебе, например, аргумент: "скрипт" на шарпе однажды откомпилировавшись и загрузившись выгружен уже быть не может (CLR не может выборочно выгружать загруженную сборку). Еще, как и с любыми плагинами, возможные проблемы с версионностью зависимостей (Скрипт №1, например требует библиотеку версии 1.2.3.4, а скрипт №2 требует ту же библиотеку, но версии 2.3.4.5).


Это не аргумент:) Это возмущение.
Ну не может выгрузить и что?

Если два плагина, должны работать в runtime то явно они будут уникальными.
Просто подгружаешь два плагина и раскидываешь скрипт куда нужно.

Чето вижу аргументов нету.


100%, совсем нету.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974688
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
fkthat
WCF для того, чтобы пользователь мог скрипт в полдюжины строк написать, это сила.

Да ладно?

WCF, чтобы дергать плагины из другой сборки( которая конечно же в своем AppDomain сидит). Без всяких ухищрений с Marshal.


Кстати, тут пробойчик, WCF - устаревшая фигня! надо что-то посовременнее
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974716
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
WCF, чтобы дергать плагины из другой сборки( которая конечно же в своем AppDomain сидит). Без всяких ухищрений с Marshal.

WCF как бы подразумевает общение посредством жестко заданных интерфейсов. Произвольный скрипт (о котором речь шла изначально) подразумевает всё, что угодно. Или мы уже про откуда-то взявшиеся плагины?
Ролг Хупин
Кстати, тут пробойчик, WCF - устаревшая фигня! надо что-то посовременнее

Ага, gRPC прикрутить. Будет вообще красота.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974734
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
Произвольный скрипт (о котором речь шла изначально) подразумевает всё, что угодно. Или мы уже про откуда-то взявшиеся плагины?


Что дальше мысль не развивается?

Кидаем по WCF текст, скрипта,
Там он компилится, и выполняется, результат в каком-то формате.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974747
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
Кидаем по WCF текст, скрипта,

Да чо уж там - кидай сразу в какой-нибудь кастомный облачный сервис, а то у тебя как-то слишком просто получается.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974773
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
Что дальше мысль не развивается?


Куда нам угнаться до мыслей Алёши )
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974828
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
Сон Веры Павловны
Произвольный скрипт (о котором речь шла изначально) подразумевает всё, что угодно. Или мы уже про откуда-то взявшиеся плагины?


Что дальше мысль не развивается?

Кидаем по WCF текст, скрипта,
Там он компилится, и выполняется, результат в каком-то формате.


концепция есть
Теперь, главное, как говорят в немецких фильмах про сантехников - не останавливаться!
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39974830
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
Сон Веры Павловны
Произвольный скрипт (о котором речь шла изначально) подразумевает всё, что угодно. Или мы уже про откуда-то взявшиеся плагины?


Что дальше мысль не развивается?

Кидаем по WCF текст, скрипта,
Там он компилится, и выполняется, результат в каком-то формате.


Все логично, клиент шлет скрипт в WCF сервис, тот выполняет его и , в зависимости от результата - шлет ответку - свой скрипт(!) клиенту.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975075
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю всё это и наводит на мысль, что автор хочет тоже самое, что я сейчас активно пишу.

Сначала это было просто приложение WinForms, типо блокнотика для написания кода на VB/C#. Но в отличие от простого блокнота, здесь при вызове метода Main я передаю параметр SPA, в котором собрано большая куча объектов реализующие функций-прослоек для доступа к PostgreSQL, SQLite, Oracle, XML, Http, Soap, Ftp и т.д.

Пользователь "не программист" может писать простые обработки (сразу бизнес-логику) с возможностью приостановки кода на паузу и остановку (об этом отдельный разговор). Конечно же всё работает с многопоточностью и доступна вся платформа .NET со всеми классами.
Компиляция на лету работает на базе класса CodeDomProvider.

.

Спустя время понимаю, что есть неудобство, поэтому разделил приложение на ядро и визуальную часть. Сделал службу Windows, которая реализует простой REST интерфейс для приёма кода и выдачи статуса задачи пользователю. Пишу веб-страничку, где пользователь будет писать код/выбирать готовые обработки и отправлять через него. Да, это заработало. Теперь можно запускать задачи и вручную и планировать через службу (а серверов у нас не мало)



Кто-то скажет велосипед, но так и есть, но он работает, его поддерживать легко, а главное люди пользуются и не надо особо им объяснять что и где менять в коде, чтобы решить их задачу. Конкретно про невыгрузку DLL из домена: действительно, жрёт память чуть-чуть, пока не критично. Служба будет рестартоваться довольно часто, поэтому совсем не критично.
Читал статью, что можно создать отдельный домен и туда загружать сначала DLL, который будет реализовывать компиляцию. А оно уже будет загружать пользовательский скрипт (тоже DLL) в свой домен. Но пока класс компиляции не выносил в отдельную сборку, пока работает как есть. Итого: автору топика можно идти этим путём, потому как такие решения работают и на достаточно сложных задачах.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975100
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD,

не уверен, что подобный код с импортами, классами, можно назвать как инструмент для "не программистов" :)

очевидно, что .NET в виде c#/vb выставляют наружу программисты только потому что им удобней, о пользователях никто особо не думает. понятно, что пользователи как-то приспосабливаются, и даже привыкают.

но сложнейшие сценарии в играх, например, описываются не на Cи, на котором игры пишутся, а на Lua или другом подобном языке.

сам с этим сталкивался, и да "непрограммисты" конечно могут приспособиться и писать на C# или VB.net с помощью тех же программистов, свою работу надо делать, хотя бы и с адовыми интерфейсами от программистов.

а интерфейсы от программистов -- адовые. за примерами далеко ходить не нужно :)
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975205
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
VSVLAD,

не уверен, что подобный код с импортами, классами, можно назвать как инструмент для "не программистов" :)



Короче, ребята, с вашей стороны только пыль в глаза) Маги и волшебники перфекционисткой эры.

С нашей стороны, даже примеры есть.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975440
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
hVostt
VSVLAD,

не уверен, что подобный код с импортами, классами, можно назвать как инструмент для "не программистов" :)



Короче, ребята, с вашей стороны только пыль в глаза) Маги и волшебники перфекционисткой эры.

С нашей стороны, даже примеры есть.


Кто-то скажет велосипед, но так и есть(ц)
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975442
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
Короче, ребята, с вашей стороны только пыль в глаза) Маги и волшебники перфекционисткой эры.

С нашей стороны, даже примеры есть.


Демонстрируете как вы гвоздь забили микроскопом и надуваете грудь.
Как будто мы это не проходили.

Вопрос, а что вы читали по этой теме? Может какие-то исследования проводили?
Или как обычно, положили хрен и сделали как получилось, из говна и палок.
Огого?! C# можно компилить в рантайм, всё, будет сисярп и неи....т.

Отэто достижение
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975455
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю почитать в образовательных целях.

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.
print "привет мир!"



Никаких импортов, классов, методов. Это обычный императивный в доску сценарий. Такой, который легко транслируется на обычный русский язык из программы и обратно.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975477
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Твоя позиция с LUA ясна .
Но это печаль. Максимум хукать код под события в движке. Дальше уже каша.


print "hell"
можно и на c# сделать. Придумать простой синтаксис и всё.

А заниматься интеграцией LUA в любой движок, это ж кривости сплошные.
Я то просто видел:) что это.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975482
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

CSX на самом деле соответствует всем требования вышеперечисленным. там нет никаких пользовательских абстракций, классов и ненужного импорта, прочей фигни, точнее всё это можно не юзать. и будет не сильно от Lua отличаться.

2_AlexeiK, вы пришли за советом, вы его получили, развернуто, во всех отношениях, вместо того, чтоб прислушаться, вы пишите: "советы говно и я самый умный", тогда не понятно, зачем вы вообще эту тему создали, пилите как хотите, всем пофигу, на самом деле. хоть на Си скрипты пишите
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975486
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
hVostt,
2_AlexeiK, вы пришли за советом, вы его получили, развернуто, во всех отношениях, вместо того, чтоб прислушаться, вы пишите: "советы говно и я самый умный", тогда не понятно, зачем вы вообще эту тему создали, пилите как хотите, всем пофигу, на самом деле. хоть на Си скрипты пишите


Я не создавал:) КОсяк братишечка)
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975651
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
Твоя позиция с LUA ясна .


Lua как пример. На нём свет клином не сошёлся.

AlexeiK
Но это печаль. Максимум хукать код под события в движке. Дальше уже каша.


Никаких проблем.

AlexeiK
print "hell"
можно и на c# сделать. Придумать простой синтаксис и всё.


Это уже будет не C#, а именно то, о чём я говорю. Придумаете синтаксис -- значит изобрели свой DSL, хороший DSL на вес золота.

AlexeiK
А заниматься интеграцией LUA в любой движок, это ж кривости сплошные.
Я то просто видел:) что это.


Ну речь идёт о конечной цели. Если ресурсов для внедрения скритов в ПО нехватает, лучше ограничиться обычным написанием кода. Не нужно лезть на рожон.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39975653
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
CSX на самом деле соответствует всем требования вышеперечисленным. там нет никаких пользовательских абстракций, классов и ненужного импорта, прочей фигни, точнее всё это можно не юзать. и будет не сильно от Lua отличаться.


Я ж не настаиваю на Lua, как может показаться, просто в этой сфере он самый распространённый.
...
Рейтинг: 0 / 0
Приложение на C# и внутри скрипты на C# ?
    #39987202
stomsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksVoronezh,

А вариант с Roslyn в качестве скриптового движка никто не рассматривал? Там, вроде, даже мудохаться с доменами не надо...
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 2 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Приложение на C# и внутри скрипты на C# ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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