powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Организация запросов из десктопного клиента к субд
25 сообщений из 248, страница 1 из 10
Организация запросов из десктопного клиента к субд
    #38052109
Korbanz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Подскажите как лучше организовать запросы клиента (на C#) к бд (postgresql):
написать хранимые процедуры и вызывать их из клиента или зашивать sql запросы в сам клиент(этого делать не хочется) или есть ещё какие-то способы?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052122
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать ORM.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052292
Korbanz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А производительность сильно падает по сравнению с хп?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052307
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorbanzА производительность сильно падает по сравнению с хп?
Очень сильно падает производительность. ХП выполняются по 1 сек., а уже через ORM время увеличивается до 10 сек.
Ну подумаешь, в 10 раз медленнее. Ничего страшного, зато тренд.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052508
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не все можно сделать с клиента хорошо.
Например, транзакции.

Хранимые процедуры всегда будут чуть быстрее, так как они уже откомпилированы и для них обязательно создан план запроса.
С хранимыми процедурами проще сделать разграничение прав пользователей
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052608
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Не все можно сделать с клиента хорошо.
Например, транзакции."Волков бояться - в лес не ходить" (с)
Cat2Хранимые процедуры всегда будут чуть быстрее, так как они уже откомпилированы и для них обязательно создан план запроса.Планы динамических запросов больше не кэшируются? На свалку такую СУБД...
Cat2С хранимыми процедурами проще сделать разграничение прав пользователейС веб-сервисами проще сделать разграничение прав пользователей?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052609
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИспользовать ORM.LINQ2SQL!
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052619
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Алексей К"Волков бояться - в лес не ходить" (с)
Но все желательно иметь при себе ружье.
Других аргументов нет?

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

Алексей КС веб-сервисами проще сделать разграничение прав пользователей?
На веб-сервисах свет клином сошелся?
Да и с ними проще. Даются права на одну хранимую процедуру, а не на 10 таблиц в соединении. Гарантия, что клиент может сделать только то, что разрешено для пользователей.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052622
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Алексей КМСУИспользовать ORM.LINQ2SQL!
Чем это отличается от написания текстов запросов в теле программы?
На сервер все равно уходит текст запроса, а не сама конструкция. Еще и время тратится на преобразование LINQ2SQL в текст
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052623
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korbanz,

wcf + хранимые процедуры.

почему wcf:
1. Можешь прикрутить SSL для клиент/серверного обмена
2. Можно разворачивать на IIS и юзать кэширование для сложных/долгих запросов.
3. Не нужно никого клиента баз данных на самом клиенте.
3. Ну и стандартные плюсы трехзвенки.

почему хранимые процедуры:
1. В опу запуск SQL с клиента рассадник sql-инъекций.
2. Статичный SQL запрос проще/лучше оптимизировать.
3. При обновлении структуры базы ты сразу же обновляешь запросы, а не выискиваешь эти запросы в коде клиента - причём некоторые запросы вылазят не сразу, а со временем.
4. Проще разграничивать права доступа - дал права на процедуры/пакеты, а не на таблицы/вьюхи.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052626
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Алексей Кпропущено...
LINQ2SQL!
Чем это отличается от написания текстов запросов в теле программы?Строгая типизация + LINQ удобнее чем SQL.

Например:
1. Ассоциации удобнее join-ов.
2. let удобнее вложенных запросов.

Cat2На сервер все равно уходит текст запроса, а не сама конструкция.Да.
Cat2Еще и время тратится на преобразование LINQ2SQL в текстВ нормальном LINQ-провайдере должно быть кэширование.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052630
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Алексей К"Волков бояться - в лес не ходить" (с)
Но все желательно иметь при себе ружье.
Других аргументов нет?Есть. Удобство TransactionScope (или самописного аналога, если боимся распределённых транзакций).

Cat2Алексей КПланы динамических запросов больше не кэшируются? На свалку такую СУБД...
Кэшируются, но гарантии нетКаких гарантий нет?

Cat2Алексей КС веб-сервисами проще сделать разграничение прав пользователей?
На веб-сервисах свет клином сошелся?Да.

Cat2Да и с ними проще. Даются права на одну хранимую процедуру, а не на 10 таблиц в соединении. Гарантия, что клиент может сделать только то, что разрешено для пользователей.Даются права на метод сервиса, "а не на 10 таблиц в соединении"?
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052636
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиганычwcf + хранимые процедуры.

...

4. Проще разграничивать права доступа - дал права на процедуры/пакеты, а не на таблицы/вьюхи.Вроде как 3-х звенка и использование системы безопасности СУБД - вещи взаимоисключающие. В противном случае придётся пожертвовать пулом соединений. Если конечно СУБД не умеет переключать контекст безопасности...
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052722
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВроде как 3-х звенка и использование системы безопасности СУБД - вещи взаимоисключающие. В противном случае придётся пожертвовать пулом соединений. Если конечно СУБД не умеет переключать контекст безопасности...

среднее звено оно к базе ходит под пользователем - и именно безопасность от и для данного пользователя я имел ввиду.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052731
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиганычАлексей КВроде как 3-х звенка и использование системы безопасности СУБД - вещи взаимоисключающие. В противном случае придётся пожертвовать пулом соединений. Если конечно СУБД не умеет переключать контекст безопасности...среднее звено оно к базе ходит под пользователем - и именно безопасность от и для данного пользователя я имел ввиду.Ну я понимаю. Тем самым приносится в жертву общий пул соединений к БД для разных пользователей.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052768
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

нет - пул есть, просто все пользователи работают под одним пользователем БД - не требуется создавать каждого нового пользователя как пользователя в БД, назначать ему права и прочее, однако требуется создание внутренней организации доступа.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052775
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиганычАлексей К,

нет - пул есть, просто все пользователи работают под одним пользователем БД - не требуется создавать каждого нового пользователя как пользователя в БД, назначать ему права и прочее, однако требуется создание внутренней организации доступа.Как-то это противоречит предыдущему высказыванию. :-)
фиганыч4. Проще разграничивать права доступа - дал права на процедуры/пакеты, а не на таблицы/вьюхи.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052879
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

я, в первую очередь, рассматриваю защиту БД от клиентов, а здесь проще как раз вот так - один пользователь для разработчика/ов с ограниченными правами, другой для пользователей с ещё больше ограниченными правами - т.е. в идеале права на запуск процедур.
Вместо создания пользователя БД для каждого пользователя системы и назначением ему соответствующих прав.
Это накладывает некоторые усложнения для организации внутренней системы доступа, однако надёжно отгораживает системы друг от друга, к тому же собственную систему доступа так или иначе рисует каждый разработчик, да и в некоторых БД лицензирование идёт по количеству пользователей.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052898
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самая вменяемая масштабируемая архитектура безопасности - роли с правами хранятся в таблицах. Пользователи - либо так же табличные, либо виндовые. Виндовые - проще, они уже есть в AD, остается прицепить к ним роли с правами. Как частный вариант - роли выражаются в группах AD, но имеем головную боль в виде сисадминов, прибитых к конкретному апп, а это не совсем правильно. Мухи отдельно, котлеты отдельно. Сисадмины отдельно, апп админы отдельно.
Все потуги реализовать апп секурити средствами конкретной БД - дикое немасштабируемое зло.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052903
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУИспользовать ORM.LINQ2SQL!
Та я не против и энтити с хибом (платный дизайнер), главное шоп не ублюдочный кодефирст.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052910
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиганычАлексей К,

я, в первую очередь, рассматриваю защиту БД от клиентов, а здесь проще как раз вот так - один пользователь для разработчика/ов с ограниченными правами, другой для пользователей с ещё больше ограниченными правами - т.е. в идеале права на запуск процедур.В идеале сервер БД нужно отделить от пользователей файрволом, а не давать им там права на какие-то процедуры.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052912
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
LINQ2SQL!
Та я не против и энтити с хибом (платный дизайнер), главное шоп не ублюдочный кодефирст.Нука тиха там!
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052915
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВ идеале сервер БД нужно отделить от пользователей файрволом, а не давать им там права на какие-то процедуры.
В идеале пользователи системы вообще не должны знать ничего о БД - тем более где она находится - они максимум должны знать о определённом порте на среднем звене, к которому ходят с виндовой аутентификацией и через SSL
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052921
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Та я не против и энтити с хибом (платный дизайнер), главное шоп не ублюдочный кодефирст.Нука тиха там!
Вот только не нужно опять зудеть про чистый контролируемый гавнокод :)
Все занимаются своими делами - архитектор спланировал хранилище с конкретной схемой, дб девелопер наклепал табличек с вьюхами и хп (если сильно надо), кодирующая шарповая monkey подтянула схему в контекст и команда начала пилить морду с логикой. Всё епта.
...
Рейтинг: 0 / 0
Организация запросов из десктопного клиента к субд
    #38052924
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиганычАлексей КВ идеале сервер БД нужно отделить от пользователей файрволом, а не давать им там права на какие-то процедуры.
В идеале пользователи системы вообще не должны знать ничего о БД - тем более где она находится - они максимум должны знать о определённом порте на среднем звене, к которому ходят с виндовой аутентификацией и через SSL
Правильно, только так и никак иначе. Вырисовываются явные плюсы веба - он по дефолту трехзвенен. А толстый юай трехзвенить дорого и долго. Но надо, если на то пошло.
...
Рейтинг: 0 / 0
25 сообщений из 248, страница 1 из 10
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Организация запросов из десктопного клиента к субд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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