Re[50]: Проблемы организации OR-мапинга
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.04.09 13:53
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, gandjustas, Вы писали:


A>>>Это внешний по отношению к приложению сервис никак не связанный с осмыслением содержимого БД. Не понимаю, почему ты считаешь это бизнес-логикой приложения.

G>>Любой код, который выполняет usecase приложения является бизнес логикой.

A>Является ли логика работы прав доступа NTFS частью бизнес-логики приложения работающего с файлами?


Ты доступа к этому не имеешь, поэтому разницы нету как называть.
Re[46]: Проблемы организации OR-мапинга
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 13.04.09 14:00
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, kochetkov.vladimir, Вы писали:


A>>>Ты уточни о каких именно событиях говоришь, я тебе отвечу.

KV>>Попытки доступа пользователя к данным, на которые у него нет прав, например.

A>Такая проблема на практике не стоит,


Угу

Области, которые
необходимо рассмотреть, включают:

<bla-bla-bla>


Это выдержка из международного стандарта ISO/IEC FDIS 17799 "Информационные технологии — Методики безопасности — Практические правила управления информационной безопасностью" , раздел "Регистрация событий".

Плюс в ряде методик оценки рисков (OCTAVE например) и требований к финансовой отчетности (SOX) есть примерно такие контроли:

Проводится журналирование информации об операциях в ИС, включая события, относящиеся к информационной безопасности, в мере, достаточной для реконструкции и анализа процесса обработки данных и сопутствующих действий.


Хотя допускаю, что при ничтожности рисков возникновения в ИС инцидентов по ИБ, на эти контроли ориентироваться не стоит, но тем не менее...

A>Как следствие "попытки доступа пользователя к данным, на которые у него нет прав" исполняются с вероятностью "Пользователь угадал GUID".


Я писал о событиях отказа в доступе к этим данным.

A>Вот попыти выполнения запрещённых действий могут журналироваться, но это ловится выше DAL.


Что есть "запрещенные действия"?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[51]: Проблемы организации OR-мапинга
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.04.09 14:12
Оценка: :)
Здравствуйте, gandjustas, Вы писали:

A>>Является ли логика работы прав доступа NTFS частью бизнес-логики приложения работающего с файлами?

G>Ты доступа к этому не имеешь, поэтому разницы нету как называть.

Вот уж слил так слил
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[47]: Проблемы организации OR-мапинга
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.04.09 14:15
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

A>>Как следствие "попытки доступа пользователя к данным, на которые у него нет прав" исполняются с вероятностью "Пользователь угадал GUID".

KV>Я писал о событиях отказа в доступе к этим данным.

Если запрашивается список объектов, то отказ доступа это отсутствие элемента в списке. Отследить что отфильтровалось не представляется возможным, да и не надо на самом деле.
Если запрашивается конкретный объект, от отследить факт невозврата объекта нет никакой проблемы.

A>>Вот попыти выполнения запрещённых действий могут журналироваться, но это ловится выше DAL.

KV>Что есть "запрещенные действия"?

Изменение, создание, удаление данных. Что касается чтения, данные, к которым нет доступа, просто не видны.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[23]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.04.09 14:28
Оценка:
Здравствуйте, IT, Вы писали:

G>>Вместо присвоений можно использовать NewExpression или сделать fluent-интерфейс с последовательным вызовом методов set(p => p.field == value)


IT>Мне new тоже больше импонирует.


Чем?

На мой взгляд у такого подхода много проблем. Точнее только они и есть.
В общем, хотелось бы услышать обоснование и примеры использования поглядеть.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: Проблемы организации OR-мапинга
От: IT Россия linq2db.com
Дата: 13.04.09 14:36
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>На мой взгляд у такого подхода много проблем. Точнее только они и есть.


Кроме семантического несоответствия больше никаких проблем.

VD>В общем, хотелось бы услышать обоснование и примеры использования поглядеть.


Для твоего примера как-то так:

(from o in orders where o.OrderDate < xxx select o).Update(new order { delayed = true });
Если нам не помогут, то мы тоже никого не пощадим.
Re[25]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.04.09 15:42
Оценка:
Здравствуйте, IT, Вы писали:

IT>Кроме семантического несоответствия больше никаких проблем.


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

IT>Для твоего примера как-то так:


IT>
IT>(from o in orders where o.OrderDate < xxx select o).Update(new order { delayed = true });
IT>


Ужас.

Потом, что такое "Update(new order { delayed = true })"? Из этого даже дерево выражений не получишь, так как оно строится только для лямбды. Тебе придется писать что-то вроде:

(from o in orders where o.OrderDate < xxx select o).Update(() => new order { delayed = true });

Что выглядит еще более странно.

Если учесть, что иногда нужно использовать информацию из полей изменяемого объекта, то придется передавать его через параметр:

(from o in orders where o.OrderDate < xxx select o).Update(o => new order { delayed = !o.delayed });


У пользователей будет ощущение, что информация о других значений из той же таблицы теряется.
Нехорошо, как-то.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Проблемы организации OR-мапинга
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.04.09 15:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Киберак с Рома — это классические ОРМ-щики. Они в основном разговаривают о распределенных когерентных кэшах и ООП.

VD>Их головы просто не настраиваются на разговор вне контекста объектов. Они так видят (с)

Влад, если бы ты не только писал, но и читал, ты бы понял, что мне не нравятся ORM. Но, видимо, не судьба.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[19]: Проблемы организации OR-мапинга
От: Lloyd Россия  
Дата: 13.04.09 15:55
Оценка: +1
Здравствуйте, VladD2, Вы писали:

L>>То о чем ты пишешь скорее относится не SOAP, но уж совсем не к SOA.


VD>Нет.


Из того, ты отнес RPC и SOA к понятиям одного уровня, у меня сложилось именно такое ощущение.
Между тем SOA может прекрасно сосуществовать с тем же RPC, это понятия ортоганальные.

L>>Первое (SOAP) — описание формата сообщений и не более того.


VD>Спасибо, посвятил. Прежде чем бросаться мне что-то объяснять, сначала спроси не знаю ли я это. А по умолчанию вообще было разумно если бы ты считал, что я знаком тем о чем говорю.


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

L>>Второе (SOA) — архитектурный подход к "разрезанию" логики приложений.


VD>Этой архитектуре 100 лет в обед.


Кто-ж с этим спорит.

VD>Всю жизнь она называлась клиент-сервер. Весь остальной булшит из SOA — эо банальные принципы структурного программирования.


И да, и нет. То, что называют клиент-сервером, обычно относят к разделению на слои, горизонтальное деление (UI, бизнес-логика, данные + вариации).
SOA-же про то, как резать "вертикально", в иной плоскости, как стыковать разные бизнес-подсистемы. Это сильно разные вещи.
Re[20]: Проблемы организации OR-мапинга
От: vdimas Россия  
Дата: 13.04.09 15:57
Оценка:
Здравствуйте, VladD2, Вы писали:

V>>Именно, нестрогая, да еще и динамическая типизация. И не только у MS SQL, практически у всех популярных СУБД.


VD>Осталось доказать это утверждение.


Доказать что? Что даже сохранённые запросы (или спроки) компиллируются динамически, и ты не узнаешь про проблемы до запуска запроса?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[9]: Проблемы организации OR-мапинга
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.04.09 15:59
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

A>>Ещё в Presentation будет облом, во время попытки сконвертировать '||'6 в число.

KV>Т.е. валидация входящих данных у тебя в презентационном слое?

Простейшая валидация формата данных (строка может быть сконвертирована в число), да.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[18]: Проблемы организации OR-мапинга
От: Tom Россия http://www.RSDN.ru
Дата: 13.04.09 16:04
Оценка:
IT>Логика, даже бизнес, и что давай теперь сюда ещё и императив притащим, раз пошла такая пьянка? Ты пойми простую вещь, DAL, BL и прочие слои придумали не просто так.
Игорь, обьясни мне идиоту, гед в моём примере DAL и где BL. Я что то в даннорм случае не могу уловить границу.
... << RSDN@Home 1.2.0 alpha 4 rev. 1139>>
Народная мудрось
всем все никому ничего(с).
Re[17]: Проблемы организации OR-мапинга
От: Lloyd Россия  
Дата: 13.04.09 16:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Пользователь будет искать по чему угодно, только не по вашему id. Он скорее по дате поищит, или номеру договора. Получит список. В этом списке он ткнет мышкой. Тут конечно можно и GetById() вызвать, но зачем? Ведь часть данных уже выбраны. Можно выбрать только требуемые в данный момент.


Это зависит от того, что у вас за клиент. В случае веба click по договору приведет к открытию страницы договора, а на новой странице эта инфорация уже не будет доступна и запрашивать все рано придется.

VD>И select тут будет намного более удобнее. Зачем нам объект? Нам нужно содержимое договора (например).


Если схема данных один-в-один соответствует entity, то будет гораздо удобнее.
Если же DAL занимается каким-нибудь преобразованием из резалтсета в entity, то будет уже не так удобно.

Например, некоторые параметры не хранятся один-в-один в полях таблицы, а сериализуются в xml-ную колонку. Наличие DAL-а позволяет этот механизм хранения скрыть от бизнеса, что, имхо, очень удобно и позволяет очень просто дополнять поля сущности.
Re[26]: Проблемы организации OR-мапинга
От: IT Россия linq2db.com
Дата: 13.04.09 16:51
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Кроме семантического несоответствия больше никаких проблем.


VD>На такую непосредственность и возразить-то сложно.

VD>По-моему, семантическое несоответствие — это самое плохое, что можно было бы придумать. Приговор, я бы сказал.

Дык у остальных решений ни соотвествия, ни вменяемой реализации.

VD>Если учесть, что иногда нужно использовать информацию из полей изменяемого объекта, то придется передавать его через параметр:


Ты молодец, сам до всего догадался

VD>У пользователей будет ощущение, что информация о других значений из той же таблицы теряется.

VD>Нехорошо, как-то.

Я пока других вариантов не вижу вовсе
Если нам не помогут, то мы тоже никого не пощадим.
Re[19]: Проблемы организации OR-мапинга
От: IT Россия linq2db.com
Дата: 13.04.09 16:53
Оценка:
Здравствуйте, Tom, Вы писали:

IT>>Логика, даже бизнес, и что давай теперь сюда ещё и императив притащим, раз пошла такая пьянка? Ты пойми простую вещь, DAL, BL и прочие слои придумали не просто так.

Tom>Игорь, обьясни мне идиоту, гед в моём примере DAL и где BL. Я что то в даннорм случае не могу уловить границу.

В твоём примере с процедурой? Так там у тебя нет ни DAL, ни BL. Только каша из TSQL.
Если нам не помогут, то мы тоже никого не пощадим.
Re[20]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.04.09 17:05
Оценка: 1 (1)
Здравствуйте, Lloyd, Вы писали:

L>Ну так объясни, как пожно сравнивать архитектурный подход с механизмом удаленного вызова. У меня это как-то слабо укладывается в голове.


Тут есть одна проблема. Очень тяжело что-то объяснять тем кто не хочет понять. Тебе объяснить что-либо вообще почти не возможно. А я и так порядком подустал от этой дискуссии.

Объясняю на пальцах. Если не поймешь, значит не судьба... Дальше отвечать не буду.

До SOA MS насился с DCOM как с писанной торбой и уговаривал всех, что это лучшее средство создания сетевых приложений. Но со временем ребята из МС поняли, что ООП в распределенной среде — это вилы. Хранить ссылки на объекты через сетку — это идиотизм. Вот и решили откатиться к старым схемам когда сервер всего лишь производит обработку информации и возвращает результата клиенту. Но старую идею не продать. Вот и извернулись придумав новую "архитектуру". За одно придумали SOAP и много других базвордов. Многие (вот ты, например) купились на эту пиар. Но многие понимают, что никакой новой архитектуры не придумано, а все разговоры про компоненты не более чем булшит.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[27]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.04.09 17:28
Оценка:
Здравствуйте, IT, Вы писали:

IT>Дык у остальных решений ни соотвествия, ни вменяемой реализации.


Решение с функцией Set() мне больше нравится:
.Update(o => Set(o.Field, o.Field + 1))


VD>>У пользователей будет ощущение, что информация о других значений из той же таблицы теряется.

VD>>Нехорошо, как-то.

IT>Я пока других вариантов не вижу вовсе


Согласен, что в рамках шарпа с решениями не ахти. Надо переходить на Немерле. В нем проблем не будет .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: Проблемы организации OR-мапинга
От: Lloyd Россия  
Дата: 13.04.09 17:38
Оценка: +1 -1
Здравствуйте, VladD2, Вы писали:

L>>Ну так объясни, как пожно сравнивать архитектурный подход с механизмом удаленного вызова. У меня это как-то слабо укладывается в голове.


VD>Тут есть одна проблема. Очень тяжело что-то объяснять тем кто не хочет понять. Тебе объяснить что-либо вообще почти не возможно. А я и так порядком подустал от этой дискуссии.


Конечно же воздержаться от личных выпадов ты, увы, не можешь.

VD>Объясняю на пальцах. Если не поймешь, значит не судьба... Дальше отвечать не буду.


VD>До SOA MS насился с DCOM как с писанной торбой и уговаривал всех, что это лучшее средство создания сетевых приложений. Но со временем ребята из МС поняли, что ООП в распределенной среде — это вилы. Хранить ссылки на объекты через сетку — это идиотизм. Вот и решили откатиться к старым схемам когда сервер всего лишь производит обработку информации и возвращает результата клиенту. Но старую идею не продать. Вот и извернулись придумав новую "архитектуру". За одно придумали SOAP и много других базвордов.


Только одна маленькая неувязочка у них вышла: спецификация SOAP воявился лет за несколько до того, как о SOA начали говорить.

VD>Многие (вот ты, например) купились на эту пиар. Но многие понимают, что никакой новой архитектуры не придумано, а все разговоры про компоненты не более чем булшит.


На этот булшит повелись также IBM, Oracle, SAP. Один только Влад устоял.

P.S. Ничего личного, но имхо, стоит все-таки ознакомиться с SOA, хотя бы на таком уровне чтобы не мешать его в одну кучу с RPC.
Re[22]: Проблемы организации OR-мапинга
От: Lloyd Россия  
Дата: 13.04.09 18:04
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, VladD2, Вы писали:


О, как. Он не согласен.
Re[28]: Проблемы организации OR-мапинга
От: IT Россия linq2db.com
Дата: 13.04.09 18:37
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Решение с функцией Set() мне больше нравится:

VD>
VD>.Update(o => Set(o.Field, o.Field + 1))
VD>


А что ты тут будешь сетать? Как соотносится перечеслиние через запятую с полями, которые мы меняем?
Если нам не помогут, то мы тоже никого не пощадим.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.