Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / linq2sql vs хранимые процедуры / 25 сообщений из 119, страница 1 из 5
04.02.2011, 13:52
    #37097825
Shakill_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
веб-приложение работает с базой ms sql, которую я сопровождаю. разработчик этого приложения осваивает и активно применяет Linq2Sql. с его слов, это гораздо удобнее при разработке, нежели использование хранимок, последующий разбор датасетов по объектам и прочее. а так как все это дело под веб, то проблем с распространением изменений не возникает

есть ли серьезные основания пытаться убедить разработчика отказаться от использования linq2sql, помимо того что я не могу влиять на оптимальность этих запросов?
...
Рейтинг: 0 / 0
04.02.2011, 15:01
    #37098072
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
Есть !

+ ХП :

безопасность
проще организовать транзакции
Можно одинаково хорошо использовать в разных приложениях
Много специалистов про SQL
...
Рейтинг: 0 / 0
04.02.2011, 15:42
    #37098178
Shakill_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
LSVЕсть !
+ ХП : спасибо за комментарий, я в ответ как бы поставлю себя на место разработчика

безопасность можно наглядный пример?
проще организовать транзакциитут будет аргумент, что приложение из разряда отчетности, только читает данные, и посему один запрос - одна транзакция
Можно одинаково хорошо использовать в разных приложениях в основном, запросы получаются довольно специфичными и вероятность использования в других приложениях мала
Много специалистов про SQL imho средний сишарпер скорее владеет линк2скл, чем не владеет. а их сейчас тоже немало
...
Рейтинг: 0 / 0
04.02.2011, 16:37
    #37098338
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
Shakill_безопасность можно наглядный пример?
проще организовать транзакциитут будет аргумент, что приложение из разряда отчетности, только читает данные, и посему один запрос - одна транзакция
Можно одинаково хорошо использовать в разных приложениях в основном, запросы получаются довольно специфичными и вероятность использования в других приложениях мала
Много специалистов про SQL imho средний сишарпер скорее владеет линк2скл, чем не владеет. а их сейчас тоже немало1. Юзер имеет право только на ХП. Ничего другого он не увидит.
2. Это не аргумент. Завтра может появится нужда.
3. Это не аргумент.
4. А я шарпа в глаза не видел. :) А SQL прост и везде почти одинаков и время над ним не властно. Огромный охват специалистов.
...
Рейтинг: 0 / 0
04.02.2011, 19:09
    #37098623
Chop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
Shakill_, нет аргументов
все аргументы сводятся к тому, что " это я знаю, а это - не знаю, вот на это могу влиять, а на это - нет "

как пример - LSV - " я шарпа в глаза не видел. "
сомневаюсь, что ковырять код приложения на шарпе пустят человека, который шарпа в глаза не видел
:)

Shakill_ , какая тебе вообще разница, что юзает разработчик?
если ему так удобней и он, в отличие от тебя знает и линк, и хранимки, то ты его никак не убедишь

может просто не можете поделить зоны ответственности?
тогда с этого и начинай ставить вопрос
...
Рейтинг: 0 / 0
04.02.2011, 23:42
    #37098909
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
Shakill_веб-приложение работает с базой ms sql, которую я сопровождаю. разработчик этого приложения осваивает и активно применяет Linq2Sql. с его слов, это гораздо удобнее при разработке, нежели использование хранимок, последующий разбор датасетов по объектам и прочее. а так как все это дело под веб, то проблем с распространением изменений не возникает

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

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

СУБД отвечает за их целостность, оптимальность операций над ними и т.п. За неё отвечают отдельные специалисты. И интерфейс к СУБД - как раз процедуры. Больше на роль интерфейсов между уравнями ничего и нет.

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

Отрицать необходимость процедур то же самое, что вообще отрицать необходимость какого то разделения приложений на слои. Такое допустимо только для простых и короткоживущих приложений. В противном случае скоро наступает клинч - приложение нельзя будет безболезненно изменить.

В некоторых системах типа САП-а обычные процедуры не используются, но процедуры там всё равно есть, просто для этого сделан свой язык, среда выполнения и все необходимые инструменты.

Разработчик Linq2Sql, конечно, не может правильно оценить такие вещи, тут нужен архитектор, способный взглянуть на всё это шире, не как программист.
...
Рейтинг: 0 / 0
05.02.2011, 12:31
    #37099206
Chop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
alexeyvg...тут нужен архитектор, способный взглянуть на всё это шире, не как программист.+1
добавлю, и не как админ БД
вопрос в том, как приложение разделено по слоям
если бизнес-логика сидит на клиенте, то переносить ее на ХП - изврат чреватый многими неприятностями
...
Рейтинг: 0 / 0
05.02.2011, 13:21
    #37099262
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
все зависит от того - что это за приложение
хп можно генерировать из пиложения, впрочем как и само приложение из другого
...
Рейтинг: 0 / 0
05.02.2011, 13:37
    #37099284
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
Chopalexeyvg...тут нужен архитектор, способный взглянуть на всё это шире, не как программист.+1
добавлю, и не как админ БД
вопрос в том, как приложение разделено по слоям
если бизнес-логика сидит на клиенте, то переносить ее на ХП - изврат чреватый многими неприятностямиЭто идеология разовых и маленьких программ. Конечно, если мы говорим про программы, работающие с базами данных.

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

Просто не бывает чего то приличного без разделения на уровни. Не получится.

А выделение уровня в виде СУБД - это вполне доступный и нормальный путь.
...
Рейтинг: 0 / 0
05.02.2011, 13:38
    #37099287
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
Shakill_веб-приложение работает с базой ms sql, которую я сопровождаю. разработчик этого приложения осваивает и активно применяет Linq2Sql. с его слов, это гораздо удобнее при разработке, нежели использование хранимок,

Shakill_,

угостите этого вэбера вот этим топиком
...
Рейтинг: 0 / 0
06.02.2011, 00:57
    #37099988
Chop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
alexeyvgChopесли бизнес-логика сидит на клиенте, то переносить ее на ХП - изврат чреватый многими неприятностямиЭто идеология разовых и маленьких программ. Конечно, если мы говорим про программы, работающие с базами данных.гы...
1С тогда - разовая и маленькая программа?
...
Рейтинг: 0 / 0
06.02.2011, 10:37
    #37100156
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
ChopalexeyvgЭто идеология разовых и маленьких программ. Конечно, если мы говорим про программы, работающие с базами данных.гы...
1С тогда - разовая и маленькая программа? 1С как раз разделяет уровни. Вы наверное с ней не работали?

Там ведь бизнес-логика и работа с данными не пишется на том языке, на котором программируется клиент. Не смешивается всё в кучу.

Клиент и сервер приложений написан на С++, но при этом разработан свой внутренний язык, и никто этот код на С++ даже не видит. Работа с данными и прикладная логика пишется на внутреннем языке.

Отсутствие уровней - это если бы всё реализовавалось прямо на том языке, на котором разработан клиент (или сервер приложений), то есть на С++.

Так что 1С, как и любая приличная платформа, использует деление на уровне как по архитектуре, так и по программированию.

При этом в 1С не стали использовать СУБД как отделного уровня в системе.
Ну так и это добавляет гемороя - трудно поручить СУБД специалистам (ДБА или Database developers) решить проблемы с производтельностью и т.п. Идёт поток запросов и разбирайся как хочешь - для полноценной работы DBA должен обязательно быть хорошим специалистом в 1С
...
Рейтинг: 0 / 0
06.02.2011, 20:59
    #37100912
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
alexeyvgТам ведь бизнес-логика и работа с данными не пишется на том языке, на котором программируется клиент. Не смешивается всё в кучу.

Клиент и сервер приложений написан на С++, но при этом разработан свой внутренний язык, и никто этот код на С++ даже не видит. Работа с данными и прикладная логика пишется на внутреннем языке.

ну и что? чем это Хорошо? если DSL полностью описывает DS, то вопросов нет. А что в 1С DS? и где DSL?
...
Рейтинг: 0 / 0
06.02.2011, 23:07
    #37101096
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
ViPRosalexeyvgТам ведь бизнес-логика и работа с данными не пишется на том языке, на котором программируется клиент. Не смешивается всё в кучу.

Клиент и сервер приложений написан на С++, но при этом разработан свой внутренний язык, и никто этот код на С++ даже не видит. Работа с данными и прикладная логика пишется на внутреннем языке.

ну и что? чем это Хорошо? если DSL полностью описывает DS, то вопросов нет. А что в 1С DS? и где DSL?Не знаю, где в 1С DS.

Это хорошо тем, что прикладному программисту легче разбираться в этом внутреннем языке. Даже если он не полностью описывает DS и если даже непонятно, что такое DS для 1С

Просто на С++ прикладные программисты ничего бы не писали и прикладных применений у 1С не было бы.
...
Рейтинг: 0 / 0
07.02.2011, 08:48
    #37101394
Chop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
alexeyvg1С как раз разделяет уровни. Вы наверное с ней не работали?работал, работал...
твою логику понял и готов согласиться
...
Рейтинг: 0 / 0
08.02.2011, 03:08
    #37103334
StalkerS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
alexeyvgПроцедуры - это один из способов разделения уровней приложения.

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

СУБД отвечает за их целостность, оптимальность операций над ними и т.п. За неё отвечают отдельные специалисты. И интерфейс к СУБД - как раз процедуры. Больше на роль интерфейсов между уравнями ничего и нет.

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

Отрицать необходимость процедур то же самое, что вообще отрицать необходимость какого то разделения приложений на слои. Такое допустимо только для простых и короткоживущих приложений. В противном случае скоро наступает клинч - приложение нельзя будет безболезненно изменить.

В некоторых системах типа САП-а обычные процедуры не используются, но процедуры там всё равно есть, просто для этого сделан свой язык, среда выполнения и все необходимые инструменты.

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

хранимые процедуры это конечно хорошо. Вот только что делать, если клиенты написаны с ООП подходом? Вы обьекты прямо на ХП маппить собираетесь?
...
Рейтинг: 0 / 0
08.02.2011, 05:32
    #37103351
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
StalkerS,

а какие пробемы?
...
Рейтинг: 0 / 0
08.02.2011, 08:31
    #37103419
StalkerS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
ViPRosа какие пробемы?
граф обьектов как тянуть собираетесь к примеру? Скажем Streets -> Houses -> Flats. Дома и квартиры будут сразу затянуты на клиента вместе с улицей, или через ленивую загрузку?
Получение обьектов по какому-либо критерию - все дома, где есть владелец квартиры Вася. Тоже будет отдельная ХП, верно?
...
Рейтинг: 0 / 0
08.02.2011, 10:54
    #37103704
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
StalkerSхранимые процедуры это конечно хорошо. Вот только что делать, если клиенты написаны с ООП подходом? Вы обьекты прямо на ХП маппить собираетесь?Заменить архитектора. Всего-то делов... :)
Расшифруйте, что значит с ООП подходом и чем это противоречит работе через ХП ? Все современные приложения написаны с ООП. И ?
...
Рейтинг: 0 / 0
08.02.2011, 11:31
    #37103799
StalkerS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
LSVРасшифруйте, что значит с ООП подходом и чем это противоречит работе через ХП ?
ничем не противоречит. Да вы не стесняйтесь, ответьте для начала на вопрос про графы
LSVВсе современные приложения написаны с ООП.

lol
...
Рейтинг: 0 / 0
08.02.2011, 11:44
    #37103834
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
StalkerSПолучение обьектов по какому-либо критерию - все дома, где есть владелец квартиры Вася. Тоже будет отдельная ХП, верно?Неверно. Зачем для этого отдельная ХП ? Достаточно одной с набором параметров-фильтров.
Гибкость этих фильтров конечно не очень высока, но в большинстве случаев вполне достаточна.

У нас подобным образом выполнена система отчетов. У отчетов может быть более 20 параметров, в т.ч. необязательных. Исключительно ХП.
Для добавления новых параметров правим только СКЛ-скрипт. Приложение само их увидит.
...
Рейтинг: 0 / 0
08.02.2011, 12:34
    #37103980
StalkerS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
не не, я не про отчетность. Это вообще тема отдельного разговора. Но раз уж про них заговорили, покажите-ка заодно как там у вас этот необязательный параметр реализован. Т.е. есть параметр Name, если он null, то не учавствует в фильтре, если не null, то учавствует.

Я говорю именно про граф объектов .

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class Street
  Property int ID...
  Property string Name...
  Property List Houses...

class House
  Property int ID...
  Property string Number...
  Property List Flats...

class Flat
  Property int ID...
  Property int Number...
  Property Person Owner...

Итак, покажите как вы собрались реализовывать материализацию этих классов из БД использую интерфейс ХП.
...
Рейтинг: 0 / 0
08.02.2011, 15:04
    #37104411
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
StalkerSViPRosа какие пробемы?
граф обьектов как тянуть собираетесь к примеру? Скажем Streets -> Houses -> Flats. Дома и квартиры будут сразу затянуты на клиента вместе с улицей, или через ленивую загрузку?
Получение обьектов по какому-либо критерию - все дома, где есть владелец квартиры Вася. Тоже будет отдельная ХП, верно?
обе варианта присутствует
в режиме навигации - тянется точка входа в граф и ленивая загрузка по мере навигации по графу
в режиме макротипов - сразу грузится связанный подграф (никто ничего не подгружает)
...
Рейтинг: 0 / 0
08.02.2011, 15:20
    #37104462
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
StalkerS,

если Именно фильтрация , то можно явно задвать IsNull и т.д.
если имеется ввиду оптимизм, то настройки свойств типа для включения в результирующий запрос(если режим динамический скл)/хп(если режим статический скл)
...
Рейтинг: 0 / 0
08.02.2011, 15:21
    #37104465
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq2sql vs хранимые процедуры
ХП генерируются автоматически если включен режим - статический скл)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / linq2sql vs хранимые процедуры / 25 сообщений из 119, страница 1 из 5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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