170 похожих чатов

Ребят, а возможно ли на дотнете сделать программу, которую юзер

сможет дополнять своими скриптами на языках дотнета же? Например как это работает с lua в neovim (и скорее всего так же в awesomeWM и wezterm), насколько я это понимаю: юзерские скрипты на луа автоматически подключаются к проекту и исполняются, и в этих скриптах можно вызывать какие-то функции из апи самого приложения. Вроде и луа и дотнет на JIT работают, но луа либо в разы быстрее компилируется, либо кэшируется как-то, плюс он скриптовый, а C# не особо. Возможно ли подобное провернуть с C#, например, или я бред несу? Если можно, то куда копать? Можно ли как-то кэшировать CIL из юзерских скриптов, чтобы такая программа быстрее запускалась?

17 ответов

21 просмотр

да, береца Roslyn и делается изи

Сделать - можно. Сделать безопасно, чтобы этот скрипт потом не устроил форматирование диска C - уже сложнее.

Pavel-Melnik Автор вопроса
Denisio 🇬🇪
да, береца Roslyn и делается изи

а есть примеры проектов, где это реализовано?

Denisio 🇬🇪
да, береца Roslyn и делается изи

можно проще просев в производительности https://habr.com/en/articles/553310/

Fallen Paradise
Это невозможно

Уносим на линукс, там никакого диска C, профит Ну как минимум это дело реально зашить в контейнеры или ограниченные процессы, чтобы эти скрипты имели урезанные права. Просто это всё сложно сделать грамотно, и всегда есть риск какого-нибудь 0 day.

Fallen Paradise
контейнеры хороший но сложный вариант

А кто-то говорил, что будет легко?

лучше бы научили инженеров писать на сисяльп

Larymar GC
лучше бы научили инженеров писать на сисяльп

есть много кейсов когда одно/двустрочный скрипт решает проблему кастомизации софта без переписывания софта

Denisio 🇬🇪
есть много кейсов когда одно/двустрочный скрипт ре...

если что то можно написать на сишарп оно должно быть написано на сишарп

Larymar GC
если что то можно написать на сишарп оно должно бы...

вопрос в безопасности. Доверенность скриптов

Larymar GC
если что то можно написать на сишарп оно должно бы...

На самом деле надо вообще ни на чём не писать. Нет кода, не проблем. Я кстати без сарказма.

Это слишком тонко. Но наверное с ним может согласиться.

Можешь, тебе даже скинули мою статью, но надо про безопасность думать, особенно, если это будет запускатся на каком то сервере. По части безопсности, можешь покопатся в сурсах sharplab.io и поднимать контейнеры

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта