powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# параллелизм в EntityFramework
25 сообщений из 103, страница 3 из 5
c# параллелизм в EntityFramework
    #39355481
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosах вот оно что :)
те галочки относятся к конкретным элементам (кнопкам и т.д.) - надо создавать данный функционал и кнопку или нет (например кнопку "групповое удаление записей")
или к режимам - вообще можно ли редактировать челу что нить
а вот все остальное в скрипте

Всё равно жестянство какое-то. Я бы постеснялся такое отдать на продакшен, и мне было бы страшно писать мануал к этому. ABAC полностью решает проблему перегруженности интерфейса управления доступом, в том числе к рисованию бесчисленного количества кнопок. Если на каждый чих добавлять разрешение, галочку, это можно рехнуться однажды.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355518
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosах вот оно что :)
те галочки относятся к конкретным элементам (кнопкам и т.д.) - надо создавать данный функционал и кнопку или нет (например кнопку "групповое удаление записей")
или к режимам - вообще можно ли редактировать челу что нить
а вот все остальное в скрипте

Всё равно жестянство какое-то. Я бы постеснялся такое отдать на продакшен, и мне было бы страшно писать мануал к этому. ABAC полностью решает проблему перегруженности интерфейса управления доступом, в том числе к рисованию бесчисленного количества кнопок. Если на каждый чих добавлять разрешение, галочку, это можно рехнуться однажды.
Неужели ты думаешь что написать nnое количество правил легче чем ткнуть на галочку - Да, Нет?
Правила надо писать тогда, когда невозможно обойтись - Да, Нет.

А что бы не ткать каждый раз - есть дефолты, есть клонирование и т.д.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355519
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты вооще то покажи - как у тебя такие вещи сделаны и сравним.
Лучшее познается в сравнении.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355520
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или не у тебя, а у кого то, ну там в ROR там YII
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355554
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosНеужели ты думаешь что написать nnое количество правил легче чем ткнуть на галочку - Да, Нет?
Правила надо писать тогда, когда невозможно обойтись - Да, Нет.

А что бы не ткать каждый раз - есть дефолты, есть клонирование и т.д.

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

Про дефолты и клонирование «чтобы не тыкать каждый раз», это не более чем костыли, на мой взгляд.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355560
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosА ты вооще то покажи - как у тебя такие вещи сделаны и сравним.
Лучшее познается в сравнении.

Описывается обычным DSL, который переводится на русский вполне прозрачно:

Политика: Правила для менеджеров

1. Пользователями группы «Менеджеры»:
1.1. для группы объектов «Объекты доступные менеджерам»:
1.1.1. доступны операции «Все»
1.1.2. не доступна операция «Просмотр истории»

и т.д.

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

В текущем проекте у нас ещё в реализации, и даже в недоработанном виде он устраивает всех более чем.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355604
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosА ты вооще то покажи - как у тебя такие вещи сделаны и сравним.
Лучшее познается в сравнении.

Описывается обычным DSL, который переводится на русский вполне прозрачно:

Политика: Правила для менеджеров

1. Пользователями группы «Менеджеры»:
1.1. для группы объектов «Объекты доступные менеджерам»:
1.1.1. доступны операции «Все»
1.1.2. не доступна операция «Просмотр истории»

и т.д.

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

В текущем проекте у нас ещё в реализации, и даже в недоработанном виде он устраивает всех более чем.
Хвост, ты кажись даже не думаешь что вообще то критикуешь?

"Группа объектов", "операция" , "все", "доступно".... - все это семантические единицы как то ведь должны быть доступны :) контексту менеджера правил? Ты представляешь что это за монстр?

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

А если учитывать, что в ВИПРОС нет ничего, кроме метаданных и интерпретатора и данных, то я должен был бы написать целый язык для такого ABAC. Я поступил иначе - встроил C#.

А ты не стесняйся - покажи недоработанную. Посмеемся вместе.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355620
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosХвост, ты кажись даже не думаешь что вообще то критикуешь?

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

ViPRos"Группа объектов", "операция" , "все", "доступно".... - все это семантические единицы как то ведь должны быть доступны :) контексту менеджера правил? Ты представляешь что это за монстр?

Почему монстр? Всё описывается в едином месте. Ты заходишь и описываешь правило доступа. Не надо никуда лазить. Хочешь посмотреть, что может конкретный пользователь, нажимаешь кнопульку и тебе согласно текущим политикам вычисляются абсолютно ВСЕ доступные возможности для пользователя: что он может, что не может, какая кнопка ему показывается, а какая нет в рамках всей системы в целом, без исключений.

Ты в своей системе можешь ответить на такой вопрос? Или надо собрать и агрегировать безопасность, раскиданную в виде ошмётков и галочек по всей системе? А это точно всё работает? А ты уверен? Всё-всё? С точки зрения доказательной базы, тебе тут поможет разве что 100% покрытие тестами, да и то не обязательно, что этого хватит.

Я же не критиковал, как всё плохо у тебя. Просто спросил, не рассматривал ли ты другую возможность, и определённо сказал какую.


ViPRosТы, блин, хоть немного подумай.
Прежде чем реализовать это (как не странно ABAC) я забраковал много фигни типа Drool и т.д.

А почему забраковал ABAC?


ViPRosА если учитывать, что в ВИПРОС нет ничего, кроме метаданных и интерпретатора и данных, то я должен был бы написать целый язык для такого ABAC. Я поступил иначе - встроил C#.

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

Можно было, кстати, и C# использовать, сегодня это вообще не проблема. Но Lua проще для интеграторов, не хотим ещё обучать их сишарпам.


ViPRosА ты не стесняйся - покажи недоработанную. Посмеемся вместе.

Ничего показывать не буду, политика компании, ни кусков кода, ни скриншотов, мы не делаем публичных приложений, по крайне мере пока. Но я планирую запилить модуль ABAC в open source, по результатам текущих исследований. Это разрешено.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355623
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosА если учитывать, что в ВИПРОС нет ничего, кроме метаданных и интерпретатора и данных

Собственно текущая разработка у нас именно такая :)

Все бизнес-сущности описываются мета-данными, в SQL хранится только история (операции UPDATE/DELETE отсутствуют напрочь, только SELECT/INSERT). Агрегированные данные в чистом виде в MongoDB, в виде документов (предметка). Бизнес описывается на уровне конечного приложения в виде сервисов, модулей и Lua-скриптов, для которых предусмотрена версионность.

В целом не было задачи сделать универсальную вундервафлю, в которой через интерфейс можно состряпать полностью готовое бизнес-приложение, история таких гипер-универсальных вундервафлей всегда и однозначно кончается полным провалом. Другое дело, через специальный интерфейс полностью описать бизнес-модель, а UI написать отдельно на расово любимом стеке технологий в виде конечного приложения на прикладном уровне, сделав необходимые оптимизации там, где это нужно.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355627
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosА если учитывать, что в ВИПРОС нет ничего, кроме метаданных и интерпретатора и данных

Собственно текущая разработка у нас именно такая :)

Все бизнес-сущности описываются мета-данными, в SQL хранится только история (операции UPDATE/DELETE отсутствуют напрочь, только SELECT/INSERT). Агрегированные данные в чистом виде в MongoDB, в виде документов (предметка). Бизнес описывается на уровне конечного приложения в виде сервисов, модулей и Lua-скриптов, для которых предусмотрена версионность.

В целом не было задачи сделать универсальную вундервафлю, в которой через интерфейс можно состряпать полностью готовое бизнес-приложение, история таких гипер-универсальных вундервафлей всегда и однозначно кончается полным провалом. Другое дело, через специальный интерфейс полностью описать бизнес-модель, а UI написать отдельно на расово любимом стеке технологий в виде конечного приложения на прикладном уровне, сделав необходимые оптимизации там, где это нужно.
Ты опять не понимаешь.
Вот есть какая та коллекция (ну например тот же список недвижимости).
Иванов (в роли какого то козла) может видеть все объекты, в редактировать может только объекты находящиеся в Владимирской области (а то и только те, у которого площадь меньше 40 кв. м.)

Что бы это в Lua описать, надо что бы Lua знала все коллекции, все типы ссылок в этой коллекции (так как там нет слов "Владимирская обл" - стоит GUID), самого Иванова, и т.д.
Или все это фуфло кому то надо было все время передавать в контекст Lua (так как она нифига не знает), ты представляешь тормоза?
Ты понимаешь что указанный мной механизм не только на жамкание кнопочек рассчитан, а и на любой код в любом прикладном методе?
Прогер НЕ вычисляет права, не просит разрешения для Иванова - ВИПРОС без него все это делает.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355628
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttСобственно текущая разработка у нас именно такая :)

Купите ВИПРОС. Там все уже сделано.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355636
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

почем опиум для народа?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355637
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttв SQL хранится только история (операции UPDATE/DELETE отсутствуют напрочь, только SELECT/INSERT).

Как тогда выглядет удаление строки в " приходной накладной "?
Допустим можно сделать INSERT " приходной накладной " и получать приходную накладную которая перекроет старую если запросить типа такого
Код: sql
1.
select top 1 * where number = 


Но как быть с табличной частью, есть 100 строк, надо удалить одну, для этого вставляюем новые 99 строк?
Это еффективно? Или если какой то другой способ без update и delete жить? Можно ссылки на почитать об этом?
Я так понимаю это как правильно готовить event sourcing and cqrs ?
Самое не понятное для меня, это если хочется в одной транзакции изменить что-то и прочитать, это что нужно иметь распределенную транзакцию между БД и "агрегирующем хранилищем" в MongoDB?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355638
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosТы опять не понимаешь.
Вот есть какая та коллекция (ну например тот же список недвижимости).
Иванов (в роли какого то козла) может видеть все объекты, в редактировать может только объекты находящиеся в Владимирской области (а то и только те, у которого площадь меньше 40 кв. м.)

И это отлично описывается политикой. Роли здесь вообще не нужны, если только это не нужно чисто для бизнеса. При чём правило может быть ещё более сложным. Например, Иваном может редактировать объекты в определённой области с определённой площадью и только на период, когда он замещает начальника, но только в високосный год, и только если он сам в своей должности не менее месяца.

Любое правило.


ViPRosЧто бы это в Lua описать, надо что бы Lua знала все коллекции, все типы ссылок в этой коллекции (так как там нет слов "Владимирская обл" - стоит GUID), самого Иванова, и т.д.
Или все это фуфло кому то надо было все время передавать в контекст Lua (так как она нифига не знает), ты представляешь тормоза?

Никаких тормозов. Lua ничего не знает, она знает термины. В контекст Lua передаются специальные проски-объекты, которые на лету достают данные из БД или кеша, или транслируют в эффективный запрос.

ViPRosТы понимаешь что указанный мной механизм не только на жамкание кнопочек рассчитан, а и на любой код в любом прикладном методе?
Прогер НЕ вычисляет права, не просит разрешения для Иванова - ВИПРОС без него все это делает.

Управлять этим -- ад. Доступ на объекты, через его тип отстой. Есть например, 100 справочников, доступ на которые нужно управлять группой. Предлагаешь заходить, отфильтровывать эти 100 штук и прожмакивать галочки по 100 раз на каждое разрешение? Или какой-то кривой костыль, типа скопировать права и вставить на выбранные объекты?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355639
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

какие блин прокси объекты? кто их писать будет? админ по безопасности?
а тормоза у вас будут просто ужасными, если конечно ты не просто ляля на эту тему
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355640
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVosttСобственно текущая разработка у нас именно такая :)

Купите ВИПРОС. Там все уже сделано.

То, что там сделано, никому не нужно. В 60% случаев нужна система с полноценным веб-клиентом, в 40% случаев нужно веб + мобильные приложения. В 0% процентов случаев нужен десктоп-клиент.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355642
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosкакие блин прокси объекты? кто их писать будет? админ по безопасности?
а тормоза у вас будут просто ужасными, если конечно ты не просто ляля на эту тему

Прокси-объекты пишутся один раз. У нас также есть мета-типы, получаешь объекты мета-тип по его имени, интерфейс одинаков. У него есть характеристики. Пожалуйста, у каждого типа свой набор характеристик. В чём проблема-то? С чего быть тормозам?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355643
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В одной организации В ВИПРОС 70 ролей, для которых расписаны права на 750 макротипов (это больше 1000 форм, около 500 таблиц, больше 300 методов и т.д.)

Т.е. задача раздачи слонов сложнее чем ваши бизнес задачи, но при отключении этих правил (есть такая возможность в дебаге) в скорость работы не прибавляется, так как все эти правила сразу становятся частью интерпретатора, т.е. нет лишних внешних контекстов
Ладно, вот покажешь что нить и тогда обсудим, а так ляля
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355645
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosкакие блин прокси объекты? кто их писать будет? админ по безопасности?
а тормоза у вас будут просто ужасными, если конечно ты не просто ляля на эту тему

Прокси-объекты пишутся один раз. У нас также есть мета-типы, получаешь объекты мета-тип по его имени, интерфейс одинаков. У него есть характеристики. Пожалуйста, у каждого типа свой набор характеристик. В чём проблема-то? С чего быть тормозам?
Проблема у того, кто минуя свою ж систему безопасности имеет доступ ко всему что бы передать все это какому то Lua :)
и заметь, надо что бы этот сраный луа все эти вещи понимал - то бишь работал так же как и основной язык (между прочим есть там лямбды? что нить похожее на Linq?)
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355647
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Ты можешь вывести все правила для одного юзера человеческим русским языком? Нажал кнопку и увидел, что пользователь вообще может? И почему он может? Провести полную трассировку безопасности? Выполнить набор тестов по доступу, без лазания и тыкания мышкой, чтобы удостовериться, что так оно и есть? Если в обслуживаемой вами организации отсутствует как класс аудит безопасности, то вам очень и очень крупно повезло получается.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355648
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

могу все это вывести на русском (правда это не сделано), но это будет книга, если включить дефолтные настройки :)
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355649
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosПроблема у того, кто минуя свою ж систему безопасности имеет доступ ко всему что бы передать все это какому то Lua :)

Ты очень странно рассуждаешь. На кой что-то там передавать? Передаётся интерфейс, который разыменовывает ссылки, никакие объекты реально не передаются. Формируются проверки и условия, никакие данные и никуда вытащить нельзя при этом.


ViPRosи заметь, надо что бы этот сраный луа все эти вещи понимал - то бишь работал так же как и основной язык (между прочим есть там лямбды? что нить похожее на Linq?)

Лямбд нету, и много чего нету, поэтому Lua и выбран. Сложные запросы формируются через паттерн-матчинг. Ну и другие есть приёмы, чтобы состряпать запрос. На деле запросы делаются к монге, так как там лежат агрегированные данные. Поэтому лепить SQL запросы из Lua ни к чему вообще.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355650
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosмогу все это вывести на русском (правда это не сделано), но это будет книга, если включить дефолтные настройки :)

А ответить, почему сможешь? На основе чего пользователю можно то или другое?

Мы отвечаем, вот такая-то конкретная политика, сделанная Васей Пупкиным 18 ноября, разрешает Иванову вот это и вот это. Некоторые политики в комментарии содержат информацию на основе чего это разрешение было выдано, а также срок и условия действия политики. И так как по умолчанию ничего нельзя, т.е. всё запрещено кроме того, что явно не разрешено, книги не будет.

Ну и ролей нет как класса. Вообще. Никаких ролей. Пользователи, группы пользователей и политики.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355651
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosмогу все это вывести на русском (правда это не сделано), но это будет книга, если включить дефолтные настройки :)

А ответить, почему сможешь? На основе чего пользователю можно то или другое?

Мы отвечаем, вот такая-то конкретная политика, сделанная Васей Пупкиным 18 ноября, разрешает Иванову вот это и вот это. Некоторые политики в комментарии содержат информацию на основе чего это разрешение было выдано, а также срок и условия действия политики. И так как по умолчанию ничего нельзя, т.е. всё запрещено кроме того, что явно не разрешено, книги не будет.

Ну и ролей нет как класса. Вообще. Никаких ролей. Пользователи, группы пользователей и политики.
Кто выдал, когда выдал, с какого по какое и т.д. ты и так блин видел на скрине, а вот почему он это сделал - вопрос к Пушкину
Ладно Хвост, ты просто лялякаешь, нет у вас никакой системы

Какие то интерфейсы передаем :) о чем ты? зачем Lua интерфесы?
иди спи
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355652
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosчто нить похожее на Linq?)

LINQ классный, но лямбды, LINQ, замыкания... лучше оградить их от интеграторов, которые будут писать бизнес-логику. Нафик-нафик. Чем проще язык, тем лучше. Мы рассматривали VB.NET, но надо было ещё проще.
...
Рейтинг: 0 / 0
25 сообщений из 103, страница 3 из 5
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# параллелизм в EntityFramework
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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