Re[3]: Нить: использование Хранимых процедур в CRUD для EF -
От: Mike Chaliy Украина http://chaliy.name
Дата: 29.11.08 21:15
Оценка:
Здравствуйте, Monkey-Bee, Вы писали:


MC>>- например если есть бизнес слой то наверное принимать решение по всем операциям (включая удаление или пометку) должен он.

MB>в любом случае про удаления объектов решает бизнес логика — или если точнее это одна из активностей в рамках выполняемого бизнес логикой процесса. я говорю о том где и как должен быть определен код этой активности, это может быть просто db.DeleteObject(object); или изменение статуса объекта еще в шарп коде или же это может быть определено в хранимой процедуре которая вызывается на стороне БЛ но уже сама в сиквеле определяет как конкретно происходит удаление, как пример я сказал — не реальное удаление а изменение статуса. т.е. статус можно менять и в шарп коде а можно в сиквеле — вопрос за и против.

За БЛ.
1) Логика в одном месте;
2) Дешевле потдерживать и версионировать;
3) нема дублирования кода;
4) тестируемость;
5) Меньше кода, меньше инфраструктуры;
6) Возможность одновременных и маркировки и физического удаления для каждой сущности.

За СКУЛЬ
1) Гарантия;
2) Возможность подработки апликешен сервером (доступ из нескольких приложух);
3) Дополнительный слой абстракции.


MC>>Тогда вобщемто вся логика в хранимках становиться ненужной и дублирующей.

MB>а не нужно ее дублировать — ее можно разнести так чтобы избежать связности, чтобы повысить производительность или облегчить сопровождение продукта и т.д.
Если она уже есть на клиентской стороне, то куда еще ее можно разнести?

MC>>В таком случае быстрее всего можно принять решение что потдержка 4000 процедур это слишком дорого.

MB>как вариант да, а когда можно решить что 4000 это не слишком дорого?
Например когда есть рекваирмент логирования на уровне БД или когда есть рекваирмент секурити тримминга на уровне БД. Всякое бывает.

MB>потому как вопрос в той или иной мере становиться в плоскости где именно они должны быть определены, а сократить их количество навряд ли получиться или ... есть варианты?

Почему же, в коде у вас все возможности кода. Там не надо писать 1000 методов. Надо написать два один для маркировки второй для физического удаления.

Я бы выбрал все в БЛ как более простое решнение. В случае необходимости добавил бы хранимки, но тока в случае острой необходимости. Ваш пример такой необходимостью не являеться.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
А тут я живу и пишу...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.