|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Все привет. Начальство поставило задачу внедрить в наш проект скриптовой язык или язык формул для бизнес логики. Чтобы админ сам мог дотачивать вычисления без разработчиков. Поскажите или ткните пожалуйста, как это можно сделать. Начальник просит сделать типа как "язык формул" в базе данных Cronos. У нас база у нас MSSQL2008, а клиент, админ на C# (.net). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2013, 16:49 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Влад Т.Все привет. Начальство поставило задачу внедрить в наш проект скриптовой язык или язык формул для бизнес логики. Чтобы админ сам мог дотачивать вычисления без разработчиков. Поскажите или ткните пожалуйста, как это можно сделать. Начальник просит сделать типа как "язык формул" в базе данных Cronos. У нас база у нас MSSQL2008, а клиент, админ на C# (.net).А где делаются вычисления, в базе или на клиенте? Можно использовать тот язык, где делаются вычислания, например, если в базе, то t-SQL. ИМХО это проще, чем придумывать свой язык, писать компмляторы, отладчик и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2013, 17:01 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Влад Т. Поскажите или ткните пожалуйста, как это можно сделать. C# вроде как поддерживает компиляцию на лету. Соответственно нехай админ пишет "формулу", а вам остаётся компильнуть класс с ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2013, 17:10 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Я не понимаю пока, как я могу писать на C# формулы или логику обработки если я не вижу предметной области. У нас с помощью админа можно рихтовать структуру баз и таблиц где хранятся объекты (те наши данные) и тд. Идея нужна как сделать, чтобы админ мог обращаться к конкретному полю или полям таблицы, затем писал скрипт используя определенные формулы или функции в неком отладчике, потом компилил это все в dll, которая выкладывалась в определенную директорию и использовалась движком при работе. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2013, 17:25 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Вычисления у нас идут на сервисе. Сервис писан на C#. Админ может не знать TSQL, тем более предметная область раскидана по базам и таблицам. Все это необходимо знать. Хотелось что нибудь проще. Админ открыл структуру базы в админке. Наваял скрипт, используя графический редактор, отладил и сохранил (скомпилил), взял в определенной папке dll и выложил на сервис. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2013, 17:31 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
http://www.cronos.ru/kb-1411.html КРОНОСФормулой в "CronosPRO" называется выражение (или совокупность нескольких выражений), написанное на специальном языке и выполняющее некоторую последовательность вычислений. недобэйсик наверное несложно написать? наверное - куча готовых примеров? можно ли задействовать компилятор vb .net ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2013, 21:02 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Делали такое. Как раз в C#. Формулы хранились в базе, при потребности генерился C# класс, компилился, грузился в отдельный AppDоmain и выполнялся. Сделали еще красивый редаткор с деревом внутренних объектов приложения, чтобы при выборе элемента из дерева вставлялся код для его использования В текущем проекте (C/C++/Linux HiLoad) используем LUA. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2013, 21:18 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Если это действительно бизнес логика, то в 90% случаев достаточно табличных функций и простейшего мат процессора вроде того, что сделано в JRules, ILOG и т.п. Например, в хорошо спроектированных страховых core системах и АБС для настройки тарифов страховых и кредитных продуктов в 90% случаев функционала табличных функций достаточно. Кроме самого функционала бизнес правил, который можно написать или взять готовый, вам еще потребуется решить один вопрос. Как обеспечить контекст выполнения - единство подхода к передаче аргументов в бизнес правило. Успехов! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2013, 23:05 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
А можно кинуть несколько ссылок где описывается теория как начинающих, т.к. я сам такое еще не делал. Мне подходит, если скрипт будет на C#. Просто не могу определиться с сложностью : типа работа с полями одной записи или всей таблицей или всей базой. Что будет достаточно в 90% случаев для работы пользователя, имеется ввиду функционал. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2013, 00:37 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Влад Т., в гугле по поиску "c# выполнить текст" масса примеров и еще наверняка должен быть прямой способ впилить visualbasic (VBA), тогда будет как в excel ps:я не спец .net просто когда-то выбирал язык, и такая возможность была ключевой но использую python - там любой текст можно выполнить, QT - там есть QtScript ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2013, 11:04 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Влад Т., Делали давно. Ссылок я уже не помню. Гуглится по ключевым словам просто. AppDomain надо использовтаь потому, что в C# однажны загруженную DLL уже не выгрузить. А если их грузить в отдельный AppDomain, то можно просто уничтожать его. Заняла разработка две недели командой из 7 челоек (4 девелопера+3 тестера). Большую часть делали визуальную составляющую. Производительность была около 30 секунд на генерацию отчета из 30000 разных формул. Включая генерацию кода, компиляцию, и исполнение. Год был 2006-й вроде. Проект - программа для расчета стоимости строительства и себестоимости продукции для интела. Посмотриет все-таки и в сторону LUA. Это сейчас фактически стандарт для встриваения в приложения. В текущем проекте мы им успешно пользуемся. Достаточно сложный скрипт может выполняться несколько тысяч раз в секунду. Язык более простой с точки зрения пользователя. В том смысле, что дока по C# включает описание кучи системных классов, которые не нужны в скриптах, у LUA дока более компактная. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2013, 11:12 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Большое спасибо за советы. Почитал и попробывал примеры для динамической компиляции и тд. Да все работает, могу подгружать dll и выполнять методы. Для меня остался открытым вопрос - как правильно (вернее проще) мне нужно обращаться к структуре объекта, который раскидан по полям в таблице. По структуре сгенерю класс, который затем можно использовать в скрипте или как? Те как я понял, мне нужно связать реляционную модель со скриптом (как обращаться к полям, их значениям). PS. Разработка велась до меня, поэтому там ничего не было предусмотрено, а разбираться и доделывать мне. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2013, 16:44 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Влад Т.Для меня остался открытым вопрос - как правильно (вернее проще) мне нужно обращаться к структуре объекта, который раскидан по полям в таблице.Абсолютно так же, как это делается из приложения. То есть это и есть разработка приложения, ваш "админ" будет программистом, который это ваше приложение модифицирует, расширяет, правит. Разница только в том, что у него будет меньше возможностей испортить приложение. Для того, что бы сделать совсем простой вариант программирования для пользователей, нужно как то ограничить функционал, установить рамки. Например, ограничивают изменение формул только одной строкой таблицы (можно писать формулы из полей этой строки), или набором таблиц с заранее определённой связкой (в рамках одной группы таблиц мастер-детали + справочники). Тогда можно сделать свой редактор формул, а итоговый код плагинов генерить самому. Редактор может быть при этом как графический, так и текстовый, в котором задаётся входной шаблон с передаваемыми параметрами или используется специальный язык для обращения к данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2013, 18:39 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
alexeyvg спасибо. Идея уже стала более менее понятна. Но все равно хотелось бы узнать: 1. по опыту, функционала формул или небольного скрипта хватало для покрытия нужд пользователей или нужно было изобретать что-то более серьезное? и 2. входной шаблон с передаваемыми параметрами - понятно, а вот "специальный язык для обращения к данным" - смущает как обратиться к конкретному полю? Предусмотреть в структуре для поля уникальную метку и ее использовать в скрипте или как-то по другому? Прости за вопрсы мне даже не с кем посоветоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2013, 20:22 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Влад Т.alexeyvg спасибо. Идея уже стала более менее понятна. Но все равно хотелось бы узнать: 1. по опыту, функционала формул или небольного скрипта хватало для покрытия нужд пользователей или нужно было изобретать что-то более серьезное?У нас хватило. Но это естественно завизит от ваших задач. Влад Т.2. входной шаблон с передаваемыми параметрами - понятно, а вот "специальный язык для обращения к данным" - смущает как обратиться к конкретному полю? Предусмотреть в структуре для поля уникальную метку и ее использовать в скрипте или как-то по другому?Допустим, у нас формула выглядит например так: SUM([ccc])/AVG([bbb]). В квадратных скобках указываются некие названия (коды). По этим кодам берём имена таблиц и полей из справочника, потом строим динамический запрос, выполняем. Но для вас это может и не подойти. Зависит, повторю, от бизнес-требований. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 09:49 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
alexeyvg большое спасибо за советы. Буду пробывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 11:56 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Мы писали простой напрасно на ANTLR и выдержку к нему, на java правда... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 11:59 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Влад Т.Все привет. Начальство поставило задачу внедрить в наш проект скриптовой язык или язык формул для бизнес логики. Чтобы админ сам мог дотачивать вычисления без разработчиков. Поскажите или ткните пожалуйста, как это можно сделать. Начальник просит сделать типа как "язык формул" в базе данных Cronos. У нас база у нас MSSQL2008, а клиент, админ на C# (.net). А можно пример "бизнес формул" в разрез: простая, средняя, сложная. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 12:25 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Озверин, ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 12:44 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
ViPRos, 21 век на дворе... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 14:07 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Лагманi.e., пора уходить от текстовых закорючекАхренеть. Неужели этим кто-то пользуется и не матерится? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 18:16 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Bogdanov AndreyЛагманi.e., пора уходить от текстовых закорючекАхренеть. Неужели этим кто-то пользуется и не матерится? сейчас время консьмеризации ИТ. Чем тупее - тем лучше. Главное чтобы это было как можно больше похоже на игрушку. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 18:29 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
консьЮмеризации ИТ. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 18:31 |
|
Язык формул для бизнес логики
|
|||
---|---|---|---|
#18+
Лагманi.e., пора уходить от текстовых закорючекСкажите честно, вы сами при программировании на Java отказались от текстовых закорючек, используете свой редактор? То есть все версии, кроме первой, написаны на нём? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2013, 18:32 |
|
|
start [/forum/topic.php?fid=33&fpage=17&tid=1547681]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 329ms |
total: | 489ms |
0 / 0 |