|
|
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
веб-приложение работает с базой ms sql, которую я сопровождаю. разработчик этого приложения осваивает и активно применяет Linq2Sql. с его слов, это гораздо удобнее при разработке, нежели использование хранимок, последующий разбор датасетов по объектам и прочее. а так как все это дело под веб, то проблем с распространением изменений не возникает есть ли серьезные основания пытаться убедить разработчика отказаться от использования linq2sql, помимо того что я не могу влиять на оптимальность этих запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 13:52 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Есть ! + ХП : безопасность проще организовать транзакции Можно одинаково хорошо использовать в разных приложениях Много специалистов про SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 15:01 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
LSVЕсть ! + ХП : спасибо за комментарий, я в ответ как бы поставлю себя на место разработчика безопасность можно наглядный пример? проще организовать транзакциитут будет аргумент, что приложение из разряда отчетности, только читает данные, и посему один запрос - одна транзакция Можно одинаково хорошо использовать в разных приложениях в основном, запросы получаются довольно специфичными и вероятность использования в других приложениях мала Много специалистов про SQL imho средний сишарпер скорее владеет линк2скл, чем не владеет. а их сейчас тоже немало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 15:42 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Shakill_безопасность можно наглядный пример? проще организовать транзакциитут будет аргумент, что приложение из разряда отчетности, только читает данные, и посему один запрос - одна транзакция Можно одинаково хорошо использовать в разных приложениях в основном, запросы получаются довольно специфичными и вероятность использования в других приложениях мала Много специалистов про SQL imho средний сишарпер скорее владеет линк2скл, чем не владеет. а их сейчас тоже немало1. Юзер имеет право только на ХП. Ничего другого он не увидит. 2. Это не аргумент. Завтра может появится нужда. 3. Это не аргумент. 4. А я шарпа в глаза не видел. :) А SQL прост и везде почти одинаков и время над ним не властно. Огромный охват специалистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 16:37 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Shakill_, нет аргументов все аргументы сводятся к тому, что " это я знаю, а это - не знаю, вот на это могу влиять, а на это - нет " как пример - LSV - " я шарпа в глаза не видел. " сомневаюсь, что ковырять код приложения на шарпе пустят человека, который шарпа в глаза не видел :) Shakill_ , какая тебе вообще разница, что юзает разработчик? если ему так удобней и он, в отличие от тебя знает и линк, и хранимки, то ты его никак не убедишь может просто не можете поделить зоны ответственности? тогда с этого и начинай ставить вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 19:09 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Shakill_веб-приложение работает с базой ms sql, которую я сопровождаю. разработчик этого приложения осваивает и активно применяет Linq2Sql. с его слов, это гораздо удобнее при разработке, нежели использование хранимок, последующий разбор датасетов по объектам и прочее. а так как все это дело под веб, то проблем с распространением изменений не возникает есть ли серьезные основания пытаться убедить разработчика отказаться от использования linq2sql, помимо того что я не могу влиять на оптимальность этих запросов? Процедуры - это один из способов разделения уровней приложения. Т.е. сервер - это не надёжно хранящийся массив байтов, а именно сервер - система, хранящая данные и отвечающая на запросы на получение и изменение данных от других систем. СУБД отвечает за их целостность, оптимальность операций над ними и т.п. За неё отвечают отдельные специалисты. И интерфейс к СУБД - как раз процедуры. Больше на роль интерфейсов между уравнями ничего и нет. Так же есть какой то сервер бизнес-логики, есть клиент - это всё отдельные компоненты. Хотя ведь можно сказать, что они тоже не нужны - приложение может и рисовать, и хранить данные, и содержать логику, и всё это на каком то мышкорисовательном средстве разработки. Отрицать необходимость процедур то же самое, что вообще отрицать необходимость какого то разделения приложений на слои. Такое допустимо только для простых и короткоживущих приложений. В противном случае скоро наступает клинч - приложение нельзя будет безболезненно изменить. В некоторых системах типа САП-а обычные процедуры не используются, но процедуры там всё равно есть, просто для этого сделан свой язык, среда выполнения и все необходимые инструменты. Разработчик Linq2Sql, конечно, не может правильно оценить такие вещи, тут нужен архитектор, способный взглянуть на всё это шире, не как программист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 23:42 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
alexeyvg...тут нужен архитектор, способный взглянуть на всё это шире, не как программист.+1 добавлю, и не как админ БД вопрос в том, как приложение разделено по слоям если бизнес-логика сидит на клиенте, то переносить ее на ХП - изврат чреватый многими неприятностями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 12:31 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
все зависит от того - что это за приложение хп можно генерировать из пиложения, впрочем как и само приложение из другого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 13:21 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Chopalexeyvg...тут нужен архитектор, способный взглянуть на всё это шире, не как программист.+1 добавлю, и не как админ БД вопрос в том, как приложение разделено по слоям если бизнес-логика сидит на клиенте, то переносить ее на ХП - изврат чреватый многими неприятностямиЭто идеология разовых и маленьких программ. Конечно, если мы говорим про программы, работающие с базами данных. Не разовые программы работают со многими БД, и много приложений работают с одной БД. Конечно, программисту клиента приятнее, что у него всё под контролем, но это всего лишь точка зрения программиста. Просто не бывает чего то приличного без разделения на уровни. Не получится. А выделение уровня в виде СУБД - это вполне доступный и нормальный путь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 13:37 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Shakill_веб-приложение работает с базой ms sql, которую я сопровождаю. разработчик этого приложения осваивает и активно применяет Linq2Sql. с его слов, это гораздо удобнее при разработке, нежели использование хранимок, Shakill_, угостите этого вэбера вот этим топиком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 13:38 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
alexeyvgChopесли бизнес-логика сидит на клиенте, то переносить ее на ХП - изврат чреватый многими неприятностямиЭто идеология разовых и маленьких программ. Конечно, если мы говорим про программы, работающие с базами данных.гы... 1С тогда - разовая и маленькая программа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2011, 00:57 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
ChopalexeyvgЭто идеология разовых и маленьких программ. Конечно, если мы говорим про программы, работающие с базами данных.гы... 1С тогда - разовая и маленькая программа? 1С как раз разделяет уровни. Вы наверное с ней не работали? Там ведь бизнес-логика и работа с данными не пишется на том языке, на котором программируется клиент. Не смешивается всё в кучу. Клиент и сервер приложений написан на С++, но при этом разработан свой внутренний язык, и никто этот код на С++ даже не видит. Работа с данными и прикладная логика пишется на внутреннем языке. Отсутствие уровней - это если бы всё реализовавалось прямо на том языке, на котором разработан клиент (или сервер приложений), то есть на С++. Так что 1С, как и любая приличная платформа, использует деление на уровне как по архитектуре, так и по программированию. При этом в 1С не стали использовать СУБД как отделного уровня в системе. Ну так и это добавляет гемороя - трудно поручить СУБД специалистам (ДБА или Database developers) решить проблемы с производтельностью и т.п. Идёт поток запросов и разбирайся как хочешь - для полноценной работы DBA должен обязательно быть хорошим специалистом в 1С ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2011, 10:37 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
alexeyvgТам ведь бизнес-логика и работа с данными не пишется на том языке, на котором программируется клиент. Не смешивается всё в кучу. Клиент и сервер приложений написан на С++, но при этом разработан свой внутренний язык, и никто этот код на С++ даже не видит. Работа с данными и прикладная логика пишется на внутреннем языке. ну и что? чем это Хорошо? если DSL полностью описывает DS, то вопросов нет. А что в 1С DS? и где DSL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2011, 20:59 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
ViPRosalexeyvgТам ведь бизнес-логика и работа с данными не пишется на том языке, на котором программируется клиент. Не смешивается всё в кучу. Клиент и сервер приложений написан на С++, но при этом разработан свой внутренний язык, и никто этот код на С++ даже не видит. Работа с данными и прикладная логика пишется на внутреннем языке. ну и что? чем это Хорошо? если DSL полностью описывает DS, то вопросов нет. А что в 1С DS? и где DSL?Не знаю, где в 1С DS. Это хорошо тем, что прикладному программисту легче разбираться в этом внутреннем языке. Даже если он не полностью описывает DS и если даже непонятно, что такое DS для 1С Просто на С++ прикладные программисты ничего бы не писали и прикладных применений у 1С не было бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2011, 23:07 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
alexeyvg1С как раз разделяет уровни. Вы наверное с ней не работали?работал, работал... твою логику понял и готов согласиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2011, 08:48 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
alexeyvgПроцедуры - это один из способов разделения уровней приложения. Т.е. сервер - это не надёжно хранящийся массив байтов, а именно сервер - система, хранящая данные и отвечающая на запросы на получение и изменение данных от других систем. СУБД отвечает за их целостность, оптимальность операций над ними и т.п. За неё отвечают отдельные специалисты. И интерфейс к СУБД - как раз процедуры. Больше на роль интерфейсов между уравнями ничего и нет. Так же есть какой то сервер бизнес-логики, есть клиент - это всё отдельные компоненты. Хотя ведь можно сказать, что они тоже не нужны - приложение может и рисовать, и хранить данные, и содержать логику, и всё это на каком то мышкорисовательном средстве разработки. Отрицать необходимость процедур то же самое, что вообще отрицать необходимость какого то разделения приложений на слои. Такое допустимо только для простых и короткоживущих приложений. В противном случае скоро наступает клинч - приложение нельзя будет безболезненно изменить. В некоторых системах типа САП-а обычные процедуры не используются, но процедуры там всё равно есть, просто для этого сделан свой язык, среда выполнения и все необходимые инструменты. Разработчик Linq2Sql, конечно, не может правильно оценить такие вещи, тут нужен архитектор, способный взглянуть на всё это шире, не как программист. хранимые процедуры это конечно хорошо. Вот только что делать, если клиенты написаны с ООП подходом? Вы обьекты прямо на ХП маппить собираетесь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 03:08 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
StalkerS, а какие пробемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 05:32 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
ViPRosа какие пробемы? граф обьектов как тянуть собираетесь к примеру? Скажем Streets -> Houses -> Flats. Дома и квартиры будут сразу затянуты на клиента вместе с улицей, или через ленивую загрузку? Получение обьектов по какому-либо критерию - все дома, где есть владелец квартиры Вася. Тоже будет отдельная ХП, верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 08:31 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
StalkerSхранимые процедуры это конечно хорошо. Вот только что делать, если клиенты написаны с ООП подходом? Вы обьекты прямо на ХП маппить собираетесь?Заменить архитектора. Всего-то делов... :) Расшифруйте, что значит с ООП подходом и чем это противоречит работе через ХП ? Все современные приложения написаны с ООП. И ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 10:54 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
LSVРасшифруйте, что значит с ООП подходом и чем это противоречит работе через ХП ? ничем не противоречит. Да вы не стесняйтесь, ответьте для начала на вопрос про графы LSVВсе современные приложения написаны с ООП. lol ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 11:31 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
StalkerSПолучение обьектов по какому-либо критерию - все дома, где есть владелец квартиры Вася. Тоже будет отдельная ХП, верно?Неверно. Зачем для этого отдельная ХП ? Достаточно одной с набором параметров-фильтров. Гибкость этих фильтров конечно не очень высока, но в большинстве случаев вполне достаточна. У нас подобным образом выполнена система отчетов. У отчетов может быть более 20 параметров, в т.ч. необязательных. Исключительно ХП. Для добавления новых параметров правим только СКЛ-скрипт. Приложение само их увидит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 11:44 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
не не, я не про отчетность. Это вообще тема отдельного разговора. Но раз уж про них заговорили, покажите-ка заодно как там у вас этот необязательный параметр реализован. Т.е. есть параметр Name, если он null, то не учавствует в фильтре, если не null, то учавствует. Я говорю именно про граф объектов . Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Итак, покажите как вы собрались реализовывать материализацию этих классов из БД использую интерфейс ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 12:34 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
StalkerSViPRosа какие пробемы? граф обьектов как тянуть собираетесь к примеру? Скажем Streets -> Houses -> Flats. Дома и квартиры будут сразу затянуты на клиента вместе с улицей, или через ленивую загрузку? Получение обьектов по какому-либо критерию - все дома, где есть владелец квартиры Вася. Тоже будет отдельная ХП, верно? обе варианта присутствует в режиме навигации - тянется точка входа в граф и ленивая загрузка по мере навигации по графу в режиме макротипов - сразу грузится связанный подграф (никто ничего не подгружает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 15:04 |
|
||
|
linq2sql vs хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
StalkerS, если Именно фильтрация , то можно явно задвать IsNull и т.д. если имеется ввиду оптимизм, то настройки свойств типа для включения в результирующий запрос(если режим динамический скл)/хп(если режим статический скл) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2011, 15:20 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37100912&tid=1542319]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 461ms |

| 0 / 0 |
