powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# параллелизм в EntityFramework
103 сообщений из 103, показаны все 5 страниц
c# параллелизм в EntityFramework
    #39351602
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

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

Что я нашел для решения этого вопроса:
1. Аннотация [ConcurrencyCheck] на определенное поле
2. Аннотация
[Timestamp]
public byte[] RowVersion { get; set; } это на строку в целом.


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

Как реализовать так, чтобы второй пользователь изначально видел, что строка уже редактируется первым пользователем до её сохранения в базу данных первым пользователем?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39351616
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд, решение нужно не на уровне EF, а выше - на уровне программной логики. То есть вести пул, кто какие записи открывает на редактирование (необязательно в конкретной таблице, возможно общий подход на всё приложение). Тогда никто не помешает другим пользователям просматривать эту запись в режиме "только для чтения", что часто важно в многопользовательском приложении. Проверка и блокировка происходит только тогда, когда пользователь пытается перейти в режим редактирования.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39351623
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProНа мой взгляд, решение нужно не на уровне EF, а выше - на уровне программной логики. То есть вести пул, кто какие записи открывает на редактирование (необязательно в конкретной таблице, возможно общий подход на всё приложение). Тогда никто не помешает другим пользователям просматривать эту запись в режиме "только для чтения", что часто важно в многопользовательском приложении. Проверка и блокировка происходит только тогда, когда пользователь пытается перейти в режим редактирования.

На уровне логики приложения, это велосипед придется лепить причем с кучей исключений. Так как у меня wpf с реализацией постраничной. Пользователь может гулять по взаимосвязанным формам редактирования.
Я то думал что можно использовать какой-то стандартный набор инструментов для реализации этой задачи.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39351630
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай про оптимистическую блокировку .
Может найдешь подход разрешения конфликтов, который тебя устроит.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39351797
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартного набора нет, т.к. сама задача нестандартна. Как выше писали, это бизнесовый кейс и отрабатывать его придётся велосипедом.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39351815
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TПочитай про оптимистическую блокировку .
Может найдешь подход разрешения конфликтов, который тебя устроит.

http://professorweb.ru/my/LINQ/linq_sql/level13/13_1.php
Читаю пока это, возможно это тоже подойдет.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39351988
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиСтандартного набора нет, т.к. сама задача нестандартна. Как выше писали, это бизнесовый кейс и отрабатывать его придётся велосипедом.
хехе
это всегда была стандартно задачей
то что кто то сделал стандартом оптимистическую блокировку не означает что пессимизм уже никому не нужен
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352022
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoКак реализовать так, чтобы второй пользователь изначально видел, что строка уже редактируется первым пользователем до её сохранения в базу данных первым пользователем?

Каким-то образом определять, что запись была изменена на моменте сохранения и решать что с этим делать: перезаписать, предупредить пользователя о перезаписи или что-то ещё. Смотря что тебе нужно.

Определять изменение можно по времени изменения, или по штампу изменений, или по истории изменений. Миллион вариантов. Процесс обновления локать, но аккуратно.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352052
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosэто всегда была стандартно задачей
Так там кейсов море "что делать, если"... В стандарты никак не лезет.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352074
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смузи,

До
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352075
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

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

Никакая эта не бизнес фича, а архитектурный паттерн - Разделяй и властвуй!
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352231
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MSSQL есть блокировки уровня приложения sp_getapplock , но они привязаны к соединению, а оно постоянно меняется.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352244
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosНикакая эта не бизнес фича, а архитектурный паттерн - Разделяй и властвуй!
Не понимаю, какой еще паттерн. БД не может эскалировать column level блокировки, в движке ADO.NET тоже нет такого, ORM тоже такое не поддерживают (есть некоторые вещи, но этого мало).
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352246
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиViPRosНикакая эта не бизнес фича, а архитектурный паттерн - Разделяй и властвуй!
Не понимаю, какой еще паттерн. БД не может эскалировать column level блокировки, в движке ADO.NET тоже нет такого, ORM тоже такое не поддерживают (есть некоторые вещи, но этого мало).
Ну я то в этом не виноват :)
Блокировать можно и нужно (это очень частое требование, особенно у тех, у кого (по их мнению) много секретов (которые интересны только им самим воще то))
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352251
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБлокировать можно и нужно
Так я ж не против. Вопрос в том, как это делать.
1. Пользователь начал редактировать конкретное поле записи, взвели таймстэмп в связке с identity.
2. Save => таймстэмп обнулили.
3. Пока таймстэмп не обнулен, другим пользователям не доступно поле для редактирования.
4. Плюс заложили дельту времени на простой с автообнулением таймстэмпа.
Вот тебе и вся архитектура :)
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352255
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиViPRosБлокировать можно и нужно
Так я ж не против. Вопрос в том, как это делать.
1. Пользователь начал редактировать конкретное поле записи, взвели таймстэмп в связке с identity.
2. Save => таймстэмп обнулили.
3. Пока таймстэмп не обнулен, другим пользователям не доступно поле для редактирования.
4. Плюс заложили дельту времени на простой с автообнулением таймстэмпа.
Вот тебе и вся архитектура :)
Надо рассчитывать на то что с БД работают и другие приложения и им пофиг твои соглашения.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352275
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosНадо рассчитывать на то что с БД работают и другие приложения и им пофиг твои соглашения.
Не вижу противоречий.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352290
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиViPRosНадо рассчитывать на то что с БД работают и другие приложения и им пофиг твои соглашения.
Не вижу противоречий.
что то не въехал, старею что ль :(

как твоя конструкция мешает мне сделать
Код: sql
1.
update type set pole = фигня какая та where identity = нужная фигня ?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352295
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, а твоя защищает от админского DROP DATABASE? Не понимаю проблемы. Если ты в обход логики что-то на стороне апдейтишь, какой смысл уповать на ту самую логику.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352297
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиViPRos, а твоя защищает от админского DROP DATABASE? Не понимаю проблемы. Если ты в обход логики что-то на стороне апдейтишь, какой смысл уповать на ту самую логику.
1. Ну я ж сказал, что с БД могут работать разные приложения и они чихали на твои внутриприложенческие соглашения об этичности некоторых действий.

2. Защищает.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352310
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos1. Ну я ж сказал, что с БД могут работать разные приложения и они чихали на твои внутриприложенческие соглашения об этичности некоторых действий.
2. Защищает.
Я ж намекнул, что все приложения должны ходить в БД через единое API. Если это не так, то грошь цена твоей песочнице.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352314
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиViPRos1. Ну я ж сказал, что с БД могут работать разные приложения и они чихали на твои внутриприложенческие соглашения об этичности некоторых действий.
2. Защищает.
Я ж намекнул, что все приложения должны ходить в БД через единое API. Если это не так, то грошь цена твоей песочнице.
Мусь, не начинай.
Никто не будет переписывать свои зоопарк из какого-то сраного ОРМ, который не умеет работать с пессимизме и требует - О УЖОС!!! -
какие то ДТО (что за зверь, с чем едят, какой недоумок придумал?)
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352323
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosНикто не будет переписывать свои зоопарк из какого-то сраного ОРМ
А ORM тут вообще не при делах, я говорю про единое API системы. Тогда любая сторонняя программа, использующая это API, будет играть по бизнес правилам, а не против них.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352329
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosСмузипропущено...

Так я ж не против. Вопрос в том, как это делать.
1. Пользователь начал редактировать конкретное поле записи, взвели таймстэмп в связке с identity.
2. Save => таймстэмп обнулили.
3. Пока таймстэмп не обнулен, другим пользователям не доступно поле для редактирования.
4. Плюс заложили дельту времени на простой с автообнулением таймстэмпа.
Вот тебе и вся архитектура :)
Надо рассчитывать на то что с БД работают и другие приложения и им пофиг твои соглашения.
и как ты это победил?
навесил триггер который пишет в стороннюю таблицу начальную версию строки таблицы, и если из доп табл копию строки не грохнули то тригер не позволяет изменить строку или что получше?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352333
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиViPRosНикто не будет переписывать свои зоопарк из какого-то сраного ОРМ
А ORM тут вообще не при делах, я говорю про единое API системы. Тогда любая сторонняя программа, использующая это API, будет играть по бизнес правилам, а не против них.

Ладно, я за дружбу и общий АПИ на все случаи жизни!
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352336
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиViPRos1. Ну я ж сказал, что с БД могут работать разные приложения и они чихали на твои внутриприложенческие соглашения об этичности некоторых действий.
2. Защищает.
Я ж намекнул, что все приложения должны ходить в БД через единое API. Если это не так, то грошь цена твоей песочнице.
ты про то что API - означает реализация изменений таблиц в логике БД, то есть только в процедурах БД!?
А если одно приложение на PHP другое на Java то им в DAL дублировать логику? И как всегда тогда человеческий фактор.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352337
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

колись давай, Штирлиц, какое у тебя решение?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352340
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79ViPRos,

колись давай, Штирлиц, какое у тебя решение?
Каждый кто допущен к БД делает все что ему положено.
Если ПХП захочет грохнуть БД, то он может это сделать, если только ВИПРОС позволит (это возможно, если структура БД не законтрактована кодом контролируемым ВИПРОС).
Просто ВИПРОС контролирует метаданные и не дает грохать структуру БД которую стережет.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352341
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Вопрос в том, как это делать.
Я предположу что можно обойтись триггером на таблице 1, который пишет запись о блокировке, в отдельную таблицу 2.
При изменении таблицы 1, триггер смотрит есть ли запись в таблице 2, если есть - не дает поменять.
Что бы поменять таблицу 1, ORM должна сначала удалять запись из таблицы 2, затем уже ORM может менять запись в таблице 1.
А у тебя какое решение, вдруг есть другое, возможно более удачное?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352342
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

тем более что ты сам писал авторНадо рассчитывать на то что с БД работают и другие приложения и им пофиг твои соглашения.
так вот, мне и интересны возможные решения. А не то что ВИПРОС что то делает .
Мне интересно исключительно как кто то / что то делает .
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352343
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СмузиViPRos, а твоя защищает от админского DROP DATABASE? Не понимаю проблемы. Если ты в обход логики что-то на стороне апдейтишь, какой смысл уповать на ту самую логику.
да всем пофиг на DROP DATABASE. есть бекапы.
что бы не апдейтить в обход логики - нужно логику делать в БД?
на какую " ту самую ", на ту другую , которая на стороне web-сервера? Или ту первую которая в БД?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352379
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

По-моему ты запутался в том, что обсуждается :) МСУ прав, ты пытаешься скрестить ужа с ежом, и самое ужасное, что тебе кажется, что это нормально.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352388
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХУ надо конкретные примеры обсуждать. Не так уж и часто требуется одновременная запись. А там где требуется - не часто создает проблемы.
Например в справочник забили клиента ООО "Рога и кАпыта", затем двое одновременно решили поправить, то какая разница кто первым сохранит ООО "Рога и копыта" ?

А там где критично, например остаток товара, когда при всем желании не продать два раза последнюю упаковку, надо просто предусматривать резервирование сразу после ввода количества, при неудачном резервировании оповещать.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352400
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79А если одно приложение на PHP другое на Java то им в DAL дублировать логику?
Единое HTTP REST API. С ним умеют работать даже комсомольцы. Никакого дублирования логики.

Var79да всем пофиг на DROP DATABASE. есть бекапы.
Стороннее приложение не должно быть допущено даже к схеме, не говоря уже о DROP.

Var79что бы не апдейтить в обход логики - нужно логику делать в БД?
Выше ответил.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352452
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНапример в справочник забили клиента ООО "Рога и кАпыта", затем двое одновременно решили поправить, то какая разница кто первым сохранит ООО "Рога и копыта" ?

Разницы нет. Но если ты открыл запись в одном состоянии, а в итоге сохраняешь на запись, находящуюся уже в другом состоянии, то это может быть проблемой.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352580
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНе так уж и часто требуется одновременная запись. А там где требуется - не часто создает проблемы.
Всё верно. Но только я бы заменил "Не так уж и часто требуется" на "Мы часто на это забиваем болт". Поэтому наши программы работают по принципу тапок - кто первый встал, того и они. Есть ряд промышленных систем, в которых это уже недопустимо. Приходится пилить.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352584
Фотография Смузи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смузикто первый последний встал, того и они.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352646
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRos,

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

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

Просто странно это всё. Спихнём на то, что ты шаман, и разработка у тебя какая-то шаманская
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352661
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79,

вот некоторые конфигурируемые вещи

Код: xml
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.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
  <YSB.MES.Properties.Settings>
   <setting name="showRecordGraph" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="showSelectGraph" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="navigation" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="lazyloading" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="refreshDataOnLoad" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="filltype" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="fillrel" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="pagesize" serializeAs="String">
    <value>0</value>
   </setting>
   <setting name="treeRootLoadMode" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="loadLookUpForType" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="autoCreateDefaultMacroType" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="interfaceNamesFromMetaDataForControls" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="interfaceNamesFromMetaDataForEditForms" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="optimisticConcurrency" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="autoRejectChangesOnSaveError" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="autoRefreshMacroOnSaveError" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="autoRefreshMacroOnSaveSuccess" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="clearBeforeRefresh" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="postRestoreFormattingOfControls" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="restoreLayoutOnLayoutChanged" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="lockTimeOut" serializeAs="String">
    <value>5000</value>
   </setting>
   <setting name="optimisticLastWinConcurrency" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="commandTimeOutForSQL" serializeAs="String">
    <value>600</value>
   </setting>
   <setting name="commandTimeOutForSP" serializeAs="String">
    <value>3600</value>
   </setting>
   <setting name="allowSaveLayouts" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="allowRestoreLayouts" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="synchViewWithOwnerMacroType" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="cacheAllRowsInLookUpForm" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="padding" serializeAs="String">
    <value>0</value>
   </setting>
   <setting name="spacing" serializeAs="String">
    <value>0</value>
   </setting>
   <setting name="viewCaptionVisible" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="minPaddingSpacing" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="optimisticLastWinConcurrencyForObject" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="cacheEditorForm" serializeAs="String">
    <value>True</value>
   </setting>
   <setting name="cacheEditorFormsOnFistTimeVisibleChanged" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="smartLookUp" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="validityOnProgrammaticallyChanges" serializeAs="String">
    <value>False</value>
   </setting>
   <setting name="dashboardViewer" serializeAs="String">
    <value>True</value>
   </setting>
  </YSB.MES.Properties.Settings>
 </applicationSettings>
</configuration>
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352671
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

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

Не пробовал посмотреть в сторону ABAC? Чтобы не было вот такого ужаса из галочек.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352708
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

а что это такое? счеты?
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39352713
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

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

https://en.wikipedia.org/wiki/Attribute-Based_Access_Control
ах вот оно что :)
те галочки относятся к конкретным элементам (кнопкам и т.д.) - надо создавать данный функционал и кнопку или нет (например кнопку "групповое удаление записей")
или к режимам - вообще можно ли редактировать челу что нить
а вот все остальное в скрипте
...
Рейтинг: 0 / 0
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
c# параллелизм в EntityFramework
    #39355653
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosЛадно Хвост, ты просто лялякаешь, нет у вас никакой системы

Мы не делаем Випрос, просто в чём-то очень похоже, не парься
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355655
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Кстати, у нас на Lua нижеприведённый из твоего скриншота скрипт был бы описан так:

return User.Регион == Objects.Регион.Find({ ["Наименование региона"] = "Владимирская обл."})

или так

return User["Регион"] == Objects["Регион"].Find({ ["Наименование региона"] = "Владимирская обл."})

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

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

хотя на самом деле ещё проще:

return User.Регион["Наименование региона"] == "Владимирская обл."
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39355819
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

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

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

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

Ты как будто вчера родился. Давай посмотрим на контекст Entity Framework, он позволяет получить данные из любой базы независимо от её размеры, хоть там сотни тысяч таблиц и миллиарды записей, сам контекст при этом ничего не весит по сравнению с размером данных, которые можно получить. Ну и в чём проблема в скрипт передать прокси-объект, который вытягивает данные на лету по запросу? Чтобы избежать большого количества запросов, существует ряд оптимизаций, плюс DSL запросы, кеширование, и т.д.

Знать о таком кошмаре, как GetObjectIDByObjectName пользователям вовсе необязательно, как и необходимость применять ToString для сравнения, объекты сравниваются по домену без всякой необходимости знать, как они там устроены, и что там есть какие-то айдишники.

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

здрастье
EF сама создает контекст и сама им управляет, это ты ее просишь что-то делать с ее контекстом через ее DSL.
А Lua?

Конечно все эти - AsEnumerable, GetObjectIDByObjectName - плохо (хотя бы из за того что многобукофф) надо как то упростить все это, но это требует создать свой куцый язык, что нежелательно, так как нет явных конечных границ применения этого языка - потому пока C# в полный рост
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357071
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну а "красноглазиков" сейчас 80 чек (нифига себе, а как нам то жить? раздать всем бесплатно и пойти к мусе в кодеры?)
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357102
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так, если честно, вот уже 3 года появились какие то непонятные начальники (после того как я ушел на удаленку) и не дают мне перейти на > NET 4.0 (типа у всех на заводах стоит XP, хотя вранье все это) и потому я не могу использовать Roslyn.
А он мне нужен не только для трансляции правил валидации и доступа хоть на русском, а и для более важной вещи.
У меня есть понятие "контракт кода и метаданных". Т.е. если в коде использованы какие то объекты описанные в метаданных, то я слежу что бы эти метаданные эволюционировали так, что бы не повредить рабочий код (или метить код как не рабочий).
Вот тут то Roslyn намного продвинут, чем рефлексия сраная.
Уж, очень хочется код тоже перевести в метаданные и связать со структурными метаданными, вот тады ВИПРОС бы достиг своей цели и я бы оставил ее в покое по части метаданных и занимался бы управлением процессами.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357378
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosздрастье
EF сама создает контекст и сама им управляет, это ты ее просишь что-то делать с ее контекстом через ее DSL.
А Lua?

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

ViPRosКонечно все эти - AsEnumerable, GetObjectIDByObjectName - плохо (хотя бы из за того что многобукофф) надо как то упростить все это, но это требует создать свой куцый язык, что нежелательно, так как нет явных конечных границ применения этого языка - потому пока C# в полный рост

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

ViPRosну а "красноглазиков" сейчас 80 чек (нифига себе, а как нам то жить? раздать всем бесплатно и пойти к мусе в кодеры?)

Ну ты знаешь, можно вообще ничего не автоматизировать, чтобы сохранить работу сотням людей :) Типа, не закупать калькуляторы, чтобы спасти отдел, работающих с деревянными счётами.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357380
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosА так, если честно, вот уже 3 года появились какие то непонятные начальники (после того как я ушел на удаленку) и не дают мне перейти на > NET 4.0 (типа у всех на заводах стоит XP, хотя вранье все это) и потому я не могу использовать Roslyn.
А он мне нужен не только для трансляции правил валидации и доступа хоть на русском, а и для более важной вещи.
У меня есть понятие "контракт кода и метаданных". Т.е. если в коде использованы какие то объекты описанные в метаданных, то я слежу что бы эти метаданные эволюционировали так, что бы не повредить рабочий код (или метить код как не рабочий).
Вот тут то Roslyn намного продвинут, чем рефлексия сраная.
Уж, очень хочется код тоже перевести в метаданные и связать со структурными метаданными, вот тады ВИПРОС бы достиг своей цели и я бы оставил ее в покое по части метаданных и занимался бы управлением процессами.

Всё это решается полным отказом от десктопа и перехода на веб. Мне почему-то кажется, ты уже думал над этим. Что мешает?

Вот, кстати, пример текста валидации, написан человеком, имеющему отношение к программированию, как я к космонавтике:

Код: javascript
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.
local er = {};

if     Model.cooling_type.Code=='dc' 
   	or Model.cooling_type.Code=='ndc' 
	or Model.cooling_type.Code=='mvc'     
	or Model.cooling_type.Code=='mddc'
  then 
  	if not Model.oil_pump_power then
  		er.oil_pump_power = 'Мощность одного маслонасоса должна быть заполена для выбранного типа системы охлаждения';
    end
  	if not Model.oil_pump_amount then
  		er.oil_pump_amount = 'Количество маслонасосов должно быть заполено для выбранного типа системы охлаждения';
    end
end

if     Model.cooling_type.Code=='d' 
   	or Model.cooling_type.Code=='dc' 
   	or Model.cooling_type.Code=='ndc' 
	or Model.cooling_type.Code=='mddc'
  then 
  	if not Model.fan_power then
  		er.fan_power = 'Мощность электродвигателя одного вентилятора должна быть заполена для выбранного типа системы охлаждения';
    end
  	if not Model.fan_amount then
  		er.fan_amount = 'Количество вентиляторов должно быть заполено для выбранного типа системы охлаждения';
    end
end

return er;



Модель бизнес-данных уже тоже давно пишется предметниками. Никто из программистов не создавал эти cooling_type, oil_pump_power и т.д. Совершенно сознательно мы настояли, чтобы использовались англоязычные псевдонимы для терминов, а не полные русские наименования, так как последние имеют тенденцию постоянно видоизменяться, и это не должно нарушать никакую логику. С другой стороны мы разработали динамический интеллисенс и динамический справочник, так что это никому не мешает.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357565
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosА так, если честно, вот уже 3 года появились какие то непонятные начальники (после того как я ушел на удаленку) и не дают мне перейти на > NET 4.0 (типа у всех на заводах стоит XP, хотя вранье все это) и потому я не могу использовать Roslyn.
А он мне нужен не только для трансляции правил валидации и доступа хоть на русском, а и для более важной вещи.
У меня есть понятие "контракт кода и метаданных". Т.е. если в коде использованы какие то объекты описанные в метаданных, то я слежу что бы эти метаданные эволюционировали так, что бы не повредить рабочий код (или метить код как не рабочий).
Вот тут то Roslyn намного продвинут, чем рефлексия сраная.
Уж, очень хочется код тоже перевести в метаданные и связать со структурными метаданными, вот тады ВИПРОС бы достиг своей цели и я бы оставил ее в покое по части метаданных и занимался бы управлением процессами.

Всё это решается полным отказом от десктопа и перехода на веб. Мне почему-то кажется, ты уже думал над этим. Что мешает?

Вот, кстати, пример текста валидации, написан человеком, имеющему отношение к программированию, как я к космонавтике:

Код: javascript
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.
local er = {};

if     Model.cooling_type.Code=='dc' 
   	or Model.cooling_type.Code=='ndc' 
	or Model.cooling_type.Code=='mvc'     
	or Model.cooling_type.Code=='mddc'
  then 
  	if not Model.oil_pump_power then
  		er.oil_pump_power = 'Мощность одного маслонасоса должна быть заполена для выбранного типа системы охлаждения';
    end
  	if not Model.oil_pump_amount then
  		er.oil_pump_amount = 'Количество маслонасосов должно быть заполено для выбранного типа системы охлаждения';
    end
end

if     Model.cooling_type.Code=='d' 
   	or Model.cooling_type.Code=='dc' 
   	or Model.cooling_type.Code=='ndc' 
	or Model.cooling_type.Code=='mddc'
  then 
  	if not Model.fan_power then
  		er.fan_power = 'Мощность электродвигателя одного вентилятора должна быть заполена для выбранного типа системы охлаждения';
    end
  	if not Model.fan_amount then
  		er.fan_amount = 'Количество вентиляторов должно быть заполено для выбранного типа системы охлаждения';
    end
end

return er;



Модель бизнес-данных уже тоже давно пишется предметниками. Никто из программистов не создавал эти cooling_type, oil_pump_power и т.д. Совершенно сознательно мы настояли, чтобы использовались англоязычные псевдонимы для терминов, а не полные русские наименования, так как последние имеют тенденцию постоянно видоизменяться, и это не должно нарушать никакую логику. С другой стороны мы разработали динамический интеллисенс и динамический справочник, так что это никому не мешает.

Сразу видна проблема.
Как только кто то изменить все эти "mddc", "dc", ... ничего не будет работать.
И это не самое главное - главное фиг найдешь где что не работает, так как код сам по себе верный, а результат - фигушки.
Вот где видна выгода от типизации.
И это ж про сообщение - надо выводить сообщение из ресурса, а то затрахаешься найти и исправить или локализовать.
До всего этого обычно руки не доходят, но потом аукается сильно.
Ну. а на модель хотелось бы посмотреть.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357609
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosСразу видна проблема.
Как только кто то изменить все эти "mddc", "dc", ... ничего не будет работать.

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


ViPRosВот где видна выгода от типизации.
И это ж про сообщение - надо выводить сообщение из ресурса, а то затрахаешься найти и исправить или локализовать.

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

ViPRosДо всего этого обычно руки не доходят, но потом аукается сильно.

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


ViPRosНу. а на модель хотелось бы посмотреть.

Примерно так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class LuaProxyObjectBase
{
    private ScriptContext context;

    public LuaProxyObjectBase(ScriptContext context)
    {
       this.context = context;
    }

    public LuaProxyObjectBase this[string name]
    {
         get { return this.context.ResolveProxyObject(name); }
     }
}



Модель представляет собой объект типа LuaProxyObjectBase, его поведение и что он представляет зависит от текущего контекста исполнения. Т.е. там где ты в Lua видишь обращение через точку, на самом деле вызывается object[name]. Ну и там много всякой обвязки, кеш, безопасность, фэктори. Но по сути вот так из скрипта получают доступ к модели.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357621
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМодель представляет собой объект типа LuaProxyObjectBase, его поведение и что он представляет зависит от текущего контекста исполнения. Т.е. там где ты в Lua видишь обращение через точку, на самом деле вызывается object[name]. Ну и там много всякой обвязки, кеш, безопасность, фэктори. Но по сути вот так из скрипта получают доступ к модели.
Не как модель передавать в контекст Луа, а саму модель имел ввиду, которую "пишут предметники".
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357730
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosНе как модель передавать в контекст Луа, а саму модель имел ввиду, которую "пишут предметники".

Модель представляет собой два корневых типа объекта: справочники и документы. Справочники это объекты физического мира (иерархия подразделений, здания, объекты, должности, автомобили, что угодно, что можно охарактеризовать как сущность). Документы это факты. На текущий момент заведено более 500 типов справочников и более 300 типов документов. Характеристики описываются иерархией инфо-типов, их чуть больше 200. Всё это наколбасили предметники, не имеющие отношения к программированию. Я как представлю, сколько понадобилось бы человеко-часов и мудизма, чтобы запрограммировать эту систему классическим способом через классы-таблицы, мне становится дурно.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39357893
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

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

ну вот, когда я об этом говорил лет этак 10 тому назад все фыркали
предмет должны автоматизировать предметники
а наше дело автоматизировать программирование :)

Шаришь! Фыркали, потому что либо не понимали, что так можно сделать, либо ещё банальней -- боялись, что лишатся постоянной оплачиваемой работы.

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

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

Кстати, а я хотел предложить своим купить ВИПРОС, чтобы подвергнуть его препарации
Но у вас на сайте, ни цен, ни демо-версии, ни урезанного дистриба. В общем, понял, что никто заморачиваться не будет.
Изначально было принято решение, что ВИПРОС будет внутренним продуктом.
Я всегда был против этого.
Всегда рвался раздать бесплатно, что бы народ тестировал, и предъявлял требования.
Просто наша фирма не заинтересована в деньгах, которых можно было бы заработать через продажи ВИПРОС.
А вот прикладные вещи - пожалуйста.
Я бы на вашем месте купил ВИП.Производство (а ВИПРОС бы подъехала в придачу :).
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39358174
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosЯ бы на вашем месте купил ВИП.Производство (а ВИПРОС бы подъехала в придачу :).

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

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

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

А есть фиксированная цена продукта? Ну или разные лицензии? Или всё зависит от кучи факторов?
Когда то было, сейчас по моему уже нет никакой политики.
...
Рейтинг: 0 / 0
c# параллелизм в EntityFramework
    #39358625
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,

Думаю об этом.

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

Думаю об этом.

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

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

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


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