powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Pascal Script(или другой) на Asp.Net C#
59 сообщений из 59, показаны все 3 страниц
Pascal Script(или другой) на Asp.Net C#
    #39701477
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Кто нибудь сталкивался с использованием скриптов ?
Есть ли компоненты, которые могут сделать примерно такое ?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
var scripter=new Scripter();
scripter.Syntax="Pascal"; //или Basic/Java
scripter.ScriptText = 
"
var X:Integer;
begin
 X:=0;
 If (X=0) then
  ShowMessage('Hello world');
end;
"
sripter.ExecuteScript;


Смысл - исполнить скрипт на любом из языков в RunTime.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701486
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На клиенте надо исполнить?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701608
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

В консольном приложении
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701650
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Консольное приложение ASP.NET?
Эээээ...
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701656
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Да, наверно надо было ASP убрать....
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701657
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя в я как раз хочу в дальнейшем использовать это в серверной части.
Так что особой разницы нет - консольное оно или нет.
Заработает в консоли - заработает и на сервере.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701684
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,
JS будет современнее.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701721
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Да JS тоже можно.
Есть какие нибудь компоненты и пример Hello World ?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701749
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,
Ну а задача где для подбора языка?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701885
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Задача любая. Вывести в консоль "Hello world".
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701897
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BPetro123,

Задача любая. Вывести в консоль "Hello world".нет.
Невозможно выбрать продукт по критерию Любой.
Или выбирать машину по критерию - ездит.
По задаче сгодиться любой ЯП.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701913
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,
А вообще, Lua hVostt мембер ипользует.
Питон, админы очень часто используют.
Если тебе действительно нужно, а не первое что подумалось утром за завтраком).
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701967
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

прямо с ОС идут
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39701981
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)Valery_B,

прямо с ОС идут
Точно!
Аффтар, а тебя батники устроят? )
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702011
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так коллеге наверное надо заскриптовать свое приложение. то есть встроить скриптовый движок.
Типа https://metanit.com/sharp/tutorial/9.3.php
Мне так показалось. Может не прав.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702018
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakov,
Не говорит цель. Говорит вывести в консоли Привет мир!
Код: c#
1.
@pause Hello world!


Всё.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702037
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovтак коллеге наверное надо заскриптовать свое приложение. то есть встроить скриптовый движок.
Типа https://metanit.com/sharp/tutorial/9.3.php
Мне так показалось. Может не прав.

Нет, не показалось - всё правильно, спасибо. И пример отличный.
Единственное только, я не знаком с Питоном.
Может есть аналог на JavaScript или PascalScript ?

Если нет, то буду использовать IronPyton.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702069
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B , поиском по форуму

http://www.sql.ru/forum/1043404/skripty-v-net-prilozhenii
может найдете что.

а может просто сишарп на лету компилировать? или VB.NET
смотря что нужно.

но Iron-Ruby-Python - разработки от MS. А не изделия неизвестного качества от неизвестно кого. К тому же нормальные мэйнстримовые языки по которым учебник на каждой лавке.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702111
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovа может просто сишарп на лету компилировать? или VB.NET
смотря что нужно.

Не совсем понял, про что это ? Конечно, если скрипт можно сделать на самом C# будет лучше.
Скрипт по замыслу должен будет менять/добавлять/удалять поля в DataTable.
Никакого HTTP(S), MVC и т.п.
Сейчас написано примерно такое в сотнях разных вариаций, что я бы хотел отдать скриптам:
Код: c#
1.
2.
3.
4.
5.
foreach(DataRow Row in DataSet.Rows)
{
 if (Row["VisibleToUser"]==0)
  Row.Delete;
}


Ок. Спасибо за ссылки. Посмотрю и на другие скрипты.
Может и остановлюсь на Питоне - раз он от MS. Это точно лучше любого самопала.
Думаю, что получиться.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702128
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BСейчас написано примерно такое в сотнях разных вариаций, что я бы хотел отдать скриптам:
Код: c#
1.
2.
3.
4.
5.
foreach(DataRow Row in DataSet.Rows)
{
 if (Row["VisibleToUser"]==0)
  Row.Delete;
}


Это костыль или унаследованная ИС?
Почему не на уровне запроса фильтровать строки?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702199
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Это костыль или унаследованная ИС?
Это пример. Есть и такое
Код: c#
1.
2.
3.
4.
5.
6.
7.
 var PeriodList = new SplitPeriod(APeriod);
 foreach Period period in PeriodList 
 {
   var dataSet = Execute('spui_Remains',period);
   this.CombineDataTables(dt, dataSet);
 }
return dt;


Petro123Почему не на уровне запроса фильтровать строки?
Нельзя. А то что льзя - уже отфильтровано.


Petro123,
так у тебя есть пример скриптера Hello World в консоль ?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702211
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BНельзя. А то что льзя - уже отфильтровано.
Я и спросил, почему нельзя.....нельзя спроектировать бизнес логику в модель и в ИС.
Второй пример не намного сложнее первого.
У hVostt на Lua там аналитики знают Lua и на нем пишут.
Что у вас мы не знаем.
Но вопрос риторический. Не хотите не отвечайте.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702215
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_Bтак у тебя есть пример скриптера Hello World в консоль ?
Дык выше глянь. Там батник *.bat )))
На Lua сложнее:
print "hello world"
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702217
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

ОК.
Я просто молча сделал как ты сказал, с вполне ожидаемым результатом - Не работает.
Можешь написать конкретный текст ?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702230
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

Странный ты.
1. Создай файл с расширением .bat
2. Напиши там.
3. Сохрани и потом 2 клика на нем.
Ждем скрин).
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702266
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Я правильно понял, что всё таки примера "Hello World" на JS у тебя нет?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702280
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BPetro123,

Я правильно понял, что всё таки примера "Hello World" на JS у тебя нет?
Ты сегодня агрессивный.
Вставил батник в студию, Lua пропустил и занялся JS который на другой ветке форума.
Тебе дело делать или подкалывать?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702281
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, не надо вставлять в студию js или другой скриптовый язык.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702376
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BКонечно, если скрипт можно сделать на самом C# будет лучше.
упрощенный пример вызова скрипта на C#
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
using Microsoft.CSharp;
using System;
using System.CodeDom.Compiler;

namespace MinCsScript
{
    class Program
    {
        static void Main(string[] args)
        {
            // текст нашего скрипта:
            string codeText = "System.Console.WriteLine(\"Hello, World!\");";

            // в этом примере будет тупо вызываться 1-й метод 1-го найденного в коде класса
            // т.к. наш скрипт содержит "чистый" код, нужен префикс с классом и методом
            // метод может иметь параметры и возвращать значение, для простоты - их нет
            // также в префикс имеет смысл добавить uses и т.д. и т.п
            string codePrefix = "public class MyClass { public void MyMethod() {"; // можно сменить возвращаемый тип на object, string и т.п.
            string codeSuffix = "} }";
            codeText = codePrefix + Environment.NewLine + codeText + Environment.NewLine + codeSuffix;

            var provider = new CSharpCodeProvider();
            // для использования классов из опр. сборки нужно её подключить 
            //var parameters = new CompilerParameters(new string[] { "MinCsScript.exe", "System.dll", "System.Windows.Forms.dll" });
            var parameters = new CompilerParameters(new string[] { "System.dll" })
            {
                GenerateInMemory = true,
                IncludeDebugInformation = true,
                //GenerateExecutable = true,
                //OutputAssembly = "",
            };
            // компилируем код
            // (несколько членов массива string[] рассматриваются как несколько разных файлов с исходниками)
            var results = provider.CompileAssemblyFromSource(parameters, new string[] { codeText });
            if (results.Errors.HasErrors)
            {
                foreach (CompilerError err in results.Errors)
                {
                    System.Console.WriteLine("Error at line {0} column {1}: {2}", err.Line, err.Column, err.ErrorText);
                }
                Console.ReadKey();
                return;
            }
            var dll = results.CompiledAssembly;
            var types = dll.GetTypes();
            if (types.Length != 0)
            {
                // создаём объект первого попавшегося типа из скрипта
                var mytype = types[0];
                var myobj = Activator.CreateInstance(mytype);

                // смотрим все имеющиеся методы
                var methods = mytype.GetMethods();
                if (methods.Length != 0)
                {
                    // выполняем первый попавшийся метод
                    var entry = methods[0];
                    object result = null;
                    // создадим массив со значениями входных параметров по списку имеющихся параметров
                    //var mparams = entry.GetParameters();
                    //object[] oparams = new object[mparams.Length];
                    // заполним массив входных параметров
                    // ...
                    object[] oparams = null;
                    try
                    {
                        result = entry.Invoke(myobj, oparams);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Exception: {0}", ex.Message);
                        Console.ReadKey();
                        return;
                    }
                    // показываем результат вызова метода
                    //Console.WriteLine(result == null ? "Result is null" : result.ToString());
                    Console.ReadKey();
                }
            }
        }
    }
}

...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702377
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с такими простыми скриптами на C# главная проблема - обеспечить безопасность, т.к. скриптописателю может предоставиться слишком много разных возможностей...
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702384
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1Gс такими простыми скриптами на C# главная проблема - обеспечить безопасность, т.к. скриптописателю может предоставиться слишком много разных возможностей...
+1
Это считай программирование, только сложнее в квадрате. Хакерство.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702425
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G, спасибо!
Весьма интересно
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702626
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovL1G, спасибо!
Весьма интересно
+1
Думаю, так и буду делать.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702640
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1Gс такими простыми скриптами на C# главная проблема - обеспечить безопасность, т.к. скриптописателю может предоставиться слишком много разных возможностей...
1. По поводу безопасности - человек, имеющий доступ к серверу и БД(тем более - административный) обладает всеми необходимыми правами, что бы обойти любую безопасность.

2. Если я правильно понял, то я должен там подключать сборки через строку.
Соответственно, на входе только текст, а сборки уже подключаются только те которые захочу я.
Код: c#
1.
var parameters = new CompilerParameters(new string[] { "System.dll" })


3. п.2 делается не сколько для безопасности, а что бы говнокода была меньше.
По моему замыслу скрипт это текст, ограниченный операторами. Чем меньше - тем лучше(до разумного минимума).
Код: c#
1.
 if (Amount<0) Color=Red else Color=Green //это должен быть предел сложности для скрипта.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702772
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,
да, сборки подключаются только те, которые прописаны в параметрах

но вам скорее всего придется прописать туда что-то из ваших сборок
(если скрипт должен иметь доступ не только к стандартным типам фреймворка)
тогда скрипт будет иметь доступ ко всему публичному в них
(и даже к protected, если в нем описать наследника вашего класса:
если добавить в скрипт постфикс (в примере - "} }") то можно "сбежать из песочницы" описанных в префиксе класса и метода)

один из простейших вариантов "защиты" - черный список запрещенных в скрипте слов и предварительный парсинг скрипта с его проверкой. вплоть до запрета символа "}" ))

для упрощения языка скрипта можно завести список пар слов что и на что заменять и прогонять по нему (лучше работать с тегами, то есть последовательностями символов, допустимых для ключевиков и идентификаторов C# и ограниченными символами-разделителями, игнорируя строковые константы и комментарии)

(так можно дойти и до своего DSL-языка, транслируемого в C#)

есть набросок такого тег-реплейсера с построением карты соответствий позиций в исходном и "оттранслированном" тексте
это нужно для "подсветки" ошибок в тексте именно вашего скрипта (не "оттранслированного") исходя из позиций ошибок, выдаваемых компилятором
интересно?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702781
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G,
Ужос. Но он вроде говорил что все пользователи у него с админскими правами. Тогда пофигу.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702838
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G,

Сперва спасибо за ответ)
L1Gно вам скорее всего придется прописать туда что-то из ваших сборок

Да, именно так я и хотел. Ты догадался о всём без слов)
L1Gодин из простейших вариантов "защиты" - черный список запрещенных в скрипте слов и предварительный парсинг скрипта с его проверкой. вплоть до запрета символа "}" ))

Я не уверен, что сейчас буду заниматься проблемой защиты от самого себя) Потом может нужно подумать, а сейчас пока надо заставить это всё заработать) Пока главное, что бы этим было быстро и удобно пользоваться.
L1Gесть набросок такого тег-реплейсера...интересно?
Видимо у тебя уже есть аналогичный опыт) Если ты считаешь, что они наброски могут быть полезны, выкладывай можно посмотреть.
Я так понял,что в результате это всё равно сводиться к String.Replace перед обработкой скрипта.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702840
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял, что именно Pascal-script отсутствует на платформе .NET.
Но зато есть много альтернатив вроде приведённых:
IronPyton
IronJS
C# Script - Как оказалось встроенного в сам C#
И некий LUA - В котором Hello world в консоль я так и не понял как вывести.

Так тоже неплохо - есть куда копать)
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702841
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,
вот проектик с окном "редактора скрипта"
заменялка - в классе TokenReplacer
внизу - таблица для списка ошибок, выдаваемых компилятором, можно даже подсветить место каждой ошибки (двойным кликом по строке)
всё осталось на игрушечном уровне (в работу не пошло, почему-то решили использовать Lua)

для передачи скрипту контекста навскидку можно использовать параметры метода (жестко прописать их в префиксе), хотя могут найтись и другие способы
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702848
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, спс)
Оказывается, не только мою голову посещают такие мысли)
Напрашивается вывод, что после месяца танца с бубном я тоже переду на LUA)
L1Gвнизу - таблица для списка ошибок, выдаваемых компилятором

Я так это себе и представлял +-
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702849
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,
на Lua придется повозиться с интеграцией (доступом из скрипта к куче разных полей/свойств/методов ваших объектов), а c C# вообще ничего и делать-то не нужно (ну, почти)
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702897
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1GLua придется повозиться с интеграциейкак раз это правильно чтобы не было лапшекода по архитектуре.
Скрипты - плагины не перемешивают с БЛ основного приложения.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702899
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BLua, В котором Hello world в консоль я так и не понял как вывести.не видно что ты пробовал в этом треде.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39702900
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BЯ так понял, что именно Pascal-script отсутствует на платформе .NET.в дельфях тоже это используют на мизерном количестве проектов.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703004
Фотография Монитор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

Попробуй Microsoft ClearScript (поддерживает JavaScript и VBScript). Если собирать вручную не хочется, то можно установить неофициальный NuGet-пакет .
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703256
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай: если нужен JScript, VB или даже С++ - мой простой способ тоже работает.
просто заменить в примерах CSharpCodeProvider на другой *CodeProvider
(еще соответствующие using и референс на сборку
и, конечно, префикс с суффиксом)
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703257
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G,

"мой способ" :)
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703381
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BОк, спс)
Оказывается, не только мою голову посещают такие мысли)
Напрашивается вывод, что после месяца танца с бубном я тоже переду на LUA)
L1Gвнизу - таблица для списка ошибок, выдаваемых компилятором

Я так это себе и представлял +-

вопрос в другом - во всю бизнес-логику распихать места, в которых могут вызываться функции, нарисованные пользователем; это сначала - а потом когда эти юзерские расширения начнут драться между собой и приводить к неустойчивой работе всей системы в целом - как это отлаживать.....
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703648
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovкак это отлаживать.....не вижу особых трудностей реализовать формирование из скриптов файлов (лучше - 1 файла) *.cs, которые можно добавлять к остальным исходникам проекта. и в режиме отладки заменять компиляцию скриптов на загрузку готовой сборки.
тогда можно отлаживать как обычно

btw, насчет С++ я погорячился. не компилит его СppCodeProvider (
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703824
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1GVladimir Baskakovкак это отлаживать.....не вижу особых трудностей реализовать формирование из скриптов файлов (лучше - 1 файла) *.cs, которые можно добавлять к остальным исходникам проекта. и в режиме отладки заменять компиляцию скриптов на загрузку готовой сборки.
тогда можно отлаживать как обычно

btw, насчет С++ я погорячился. не компилит его СppCodeProvider (

Если включать код юзера в проект - размывается зона ответственности и соответственно - кто покрывает убытки в случае проблем. То есть, при применении технологии вылезают организационные проблемы. а так да можно дать юзеру заменять dll в которой ф-ции по перечню которые основной код дергает в триггерных точках..... и пусть хоть на чем хотят на том и кастомизируют.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703836
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakov,
ТС'а вопросы устойчивости и целостности архитектуры не интересуют.
Захотелось хачить систему внешними скриптами, он и хачит.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703852
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir BaskakovЕсли включать код юзера в проект - размывается зона ответственности и соответственно - кто покрывает убытки в случае проблем.ТС говорил "Я не уверен, что сейчас буду заниматься проблемой защиты от самого себя"

для случая, когда и скрипты, и основной код пишет 1 программист (или 1 контора) - вариант, думаю, годный

другой возможный случай - дешевая и сердитая система/внедрение, рассчет на простоту и краткость пользовательских скриптов, но сторонний программист наворотил сложностей и не справляется с отладкой - тогда за отдельно оплачиваемую работу берется разработчик системы и только тогда скрипт (временно, для отладки) становится частью проекта

в простых случаях скрипты можно править изнутри программы, по нажатию спец. кнопочки они попадут в папку с исходниками проекта (далее - перекомпиляция и продолжение отладки)

в сложных случаях можно править скриптовый *.cs в проекте, по окончанию придется переносить правки в "исходные" скрипты внутри программы

Vladimir Baskakovможно дать юзеру заменять dll в которой ф-ции по перечню которые основной код дергает в триггерных точках..... и пусть хоть на чем хотят на том и кастомизируют.не проверял, но и такая возможность кажется реальной - то есть юзер в своей студии спокойно отлаживает код своих сборок, загружаемых основной программой
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703854
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G,
Все выше причины не пройдут ТЭО.
Технико-экономическое обоснование.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703857
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, а Microsoft ClearScript пройдет?
IronPython? MoonSharp(Lua)?
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39703923
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1G,
Lua мне нравится. Но вопрос, кто на нем будет писать?
Если программист, то он не нужен imho.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39704069
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L1Gдля случая, когда и скрипты, и основной код пишет 1 программист (или 1 контора) - вариант, думаю, годный


для этого случая не особенно понятно, зачем нужны именно скрипты. Если для того чтобы отбранчевать линии разных заказчиков?
Ну в целом же версионники умеют сливать код.
Я когда то увлекался этими идеями, со скриптами, да и сейчас интересуюсь. Но, без фанатичного уже восторга. У этой силы есть своя темная сторона, которую тоже придется обуздывать.
Скриптики слишком удобны для того, чтобы прямо на проде руками поправить

ну и - качественно и удобно для конечного пользователя открыть внутренности своей программки - не всегда тривиальная задача. То есть, внедрение скриптовой технологии не факт что сделает жизнь беззаботнее со всех сторон....

С уважением ............
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39704162
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovдля этого случая не особенно понятно, зачем нужны именно скрипты.я в основном про случай "одна контора, но люди разные".
иногда внедрением у заказчика занимаются отдельные от программистов внедренцы, иногда они это делают географически далеко от программистов и без доступа к коду и среде разработки.

вторым пунктом: свой DSL может оказаться проще и удобнее основного языка для специфических участков кода. и понятнее для менее квалифицированного. но это конечно, отдельная серьезная задача - его таким сделать.

случай с одним программистом тоже не особенно понимаю, но и тут могут действовать те же соображения, что и с внедренцами.

в общем и целом, случаи с частыми и долго длящимися изменениями бизнес-логики более тяготеют к вводу возможностей скриптования, чем "один раз написали - 10 лет используют" и чем более изменчивая БЛ - тем сильнее.

Petro123,
как я понял, вы тоже против скриптования как такового. То есть ТЭО не пройдет ни один вариант?

"целостность архитектуры" - серьезная вещь. но если некий кусочек исходников существующей системы вынести вовне и компилировать отдельно - архитектура при этом ничуть не изменится. даже бинарный код итоговой системы может совпасть побайтно - до того, как в отделенные скрипты кто-то внес изменения.

дополнительные "головняки" основным программистам или конторе в целом, которые может принести такое решение - опять же проблема другой области - организационная.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39704175
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovвнедрение скриптовой технологии не факт что сделает жизнь беззаботнее со всех сторон....действительно, бывают такие проблемы

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

ввести скрипты можно из желания снять часть проблем с программистов или конторы в целом и перенести на другие отделы или на заказчика. к проблемам они отнесутся явно без восторга и будут стремиться вернуть их обратно программистам/конторе. но в итоге проблемы все равно появляются и кто-то все равно должен их решать.

Petro123вопросы устойчивостичем монолитнее - тем проще. да, тут явный минус у скриптов.

Вопросы единства ответственности - тоже минус скриптов.

Так что подумайте хорошенько, прежде чем отдавать скрипты на сторону.
Единственный беспроигрышный вариант - это если лично вы или контора в целом прекращает заниматься ядром системы и на сторону отдается всё.
...
Рейтинг: 0 / 0
Pascal Script(или другой) на Asp.Net C#
    #39704187
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в принципе, всё верно выше написано.
Информ системы есть с DSL, но их 0,5 процента от всех обсуждаемых тут проектов.
Вот и весь сказ.
Если ТСу не для игрушки а целенаправленно - пусть делает.
Удачи аффтару!
...
Рейтинг: 0 / 0
59 сообщений из 59, показаны все 3 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Pascal Script(или другой) на Asp.Net C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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