Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   Проектирование клиент-серверного приложения (http://forums.kuban.ru/f1024/proektirovanie_klient-servernogo_prilozheniya-5952681.html)

walle9323 28.07.2014 23:23

Проектирование клиент-серверного приложения
 
Доброй ночи, форумчане!
Прошу поделиться опытом в следующем вопросе:
Имеется сервер с СУБД (MS SQL). Есть клиент (десктопный на C#). Вопрос как лучше реализовать обмен информацией (select, delete, update, insert и т.д.) между клиентом и СУБД???

P.S. Сейчас обращение происходит непосредственно в самом коде клиента - формируем SqlCommand и т.д. в общем весь T-SQL в коде клиента. Слышал что можно замутить прослойку WCF, что то типа C#->WCF->MS SQL.

Ткните носом, дайте ссылки или просто наведите, остальное найду по терминам.

Заранее спасибо!

SheLLest 29.07.2014 08:20

Сервер локальный или нет?
А почему Вас сейчас не устраивает данный способ обмена? Объясните, пожалуйста.

walle9323 29.07.2014 08:53

Доброго утра!
Сервер локальный. Одна из причин - безопасность - хотелось бы чтобы все запросы как бы "шли через одну щель". Во вторых кто-то советовал делать все через WCF. Но вот и хочу поглубже разобраться

SheLLest 29.07.2014 09:30

Т.е. как я понимаю "один клиент = один доступ к SQL Server".
У меня как-то было подобная задача, но с WCF я плохо знаком. Придумал концепцию:
Клиентское приложение (обращение через сокеты к "шлюзу") ->
-> Приложение-"шлюз" на машине, где находится SQL Server (проверка правил в "шлюзе") ->
-> обращение к SQL Server

walle9323 29.07.2014 09:42

Не совсем понял выражение "один клиент = один доступ к SQL Server"))) Программа-клиент создает коннэкшн к БД под логином и паролем прописанным в этой же СУБД, копий программ не мало - до 1000 штук. Просто интересует сама концепция разработки и обмена данными.

SheLLest 29.07.2014 11:19

Ну вот это я и хотел уточнить - сколько копий программы обращается к БД, не правильно выразился. Тогда я думаю нужно смотреть не в сторону безопасности подключения, а
Может Вам тогда посмотреть в сторону SSH, SSL, VPN?

x_05772 29.07.2014 13:55

[quote=SheLLest;36026871]Т.е. как я понимаю "один клиент = один доступ к SQL Server"[/quote]
один [u]connect[/u][quote=walle93;36027038]копий программ не мало - до 1000 штук[/quote]
Пользователей?
Может быть надо чтобы обссуживалось одновременно 1000 клиентов? Но тогда надо изучить и понять изоляцию транзакций в MS SQL. Такие вопросы надо задавать на профильном сайте sql.ru

walle9323 29.07.2014 13:58

Может я не так вопрос ставлю.... Хотелось бы именно узнать о самом проектировании информационной системы - как сейчас они строятся, нужно ли вообще посредством WCF все писать, либо есть еще какие методы обмена данными между клиентской частью и сервером???? на счет канала связи и блокировок вопрос пока даже не стоит. Но все равно спасибо!

МамаДоктор2010 29.07.2014 14:29

Для .NET - LINQ вроде неплох, хотя толком еще не разобрался. Но то, что увидел - упрощает жизнь, да. Вечная проблема отражения реляционных таблиц на объектную модель близка к удобному решению.

wayerr 29.07.2014 22:24

можно начать с чтения википедии [url]http://ru.wikipedia.org/wiki/Удалённый_вызов_процедур[/url]

Том 30.07.2014 14:23

0-walle93 > собирал через SqlCommand но не компонентный, а создаваемый вместе с подключением динамически, иначе при обрыве связи когда соединение открыто придётся ексцепшены ловить. меньше визуальщины и больше писанины при работе с БД и всё получится.
Делал прогу которая вообще с SQL работала в асинхронном режиме. т.е. ты можешь ноут отключить или выйти за пределы вай-фай и продолжать работать, а когда связь восстановится произойдёт синхронизация.
Сложно блин, но такого в мире ПО я ещё не встречал :) Рекомендую попробовать!
Если Вам удасться реализовать такой же вариант и отладить, то отказоустойчивость клиентского приложения может быть абсолютной!

x_05772 30.07.2014 14:57

[quote=walle93;36030699]проектировании информационной системы[/quote]
Вот и посмотрите.
google
проектирование информационных систем
Результатов: примерно 2 980 000 (0,33 сек.)

x_05772 30.07.2014 15:26

А если посмотреть детальнее, получается смешно
[url]http://fkn.ktu10.com/?q=forum/105[/url]
Проектирование информационных систем (ПрИС)

объекты по значению rmi
By vedro-compota 1 year 2 months ago 0 n/a

и так все строчки.
---
не надо лезть в очередное изделие Microsoft. Она их регулярно творит, уверяя прочих, что это самое прогрессивное в мире. И что всем надо купить и пользоваться новым причиндалом.
начать надо изучения предметной области


изучения Библии
Дейт, Кристофер
Автор классического учебника «Введение в системы баз данных»,

40KHYTbIU 31.07.2014 00:52

7-walle93 >Вас что конкретно интересует? "Трехзвенка"? Какую цель преследуете теоретическую или практическую?

x_05772 31.07.2014 12:02

[quote=40KHYTbIU;36048848] 7-walle93 >Вас что конкретно интересует? "Трехзвенка"? Какую цель преследуете теоретическую или практическую? [/quote]
Наверное распрелеление прав на доступ к базе, таблицам. Раздача прав клиентам. Читать документацию.

fanatnascar 31.07.2014 14:13

Web api можно замутить, со стороны mysql, там и ssl, и легко подтянуть к другим клиентам.

x_05772 31.07.2014 16:26

[quote=Фанат NASCAR;36054566]со стороны mysql[/quote]
Этот самый мускул хорош только для НЕ бизнес приложений. Потому что временами падает. Разумнее взять бесплатную версию "больших" SQL серверов.

Том 02.08.2014 13:10

Не понравился мне мускуль. Вообще. Какой-то он показался слишком сложный для применения в небольших проектах. В личных предпочтениях был Embedded Firebird.

fanatnascar 04.08.2014 21:04

16-x_05772 >у херовых админов вечно что то падает. Мускуль применяется в высоконагруженных крупных проектах по всему шарику, и не нам с вами судить, насколько он пригоден.

fanatnascar 04.08.2014 21:05

17-Том >а держать СУБД род виндой - не нравится мне.

40KHYTbIU 07.08.2014 23:36

16-x_05772 > Пример?
17-Том > Можно так же пример?

x_05772 13.08.2014 15:36

[quote=Фанат NASCAR;36095602]Мускуль применяется в высоконагруженных крупных проектах по всему шарику[/quote]
Применяется в WWW. Там нет интенсивного конкурентного доступа, например как при продаже билетов. Есть интенсивный доступ на чтение. Редкий на добавление. Транзакции нужны очень редко.
Несколько раз наблюдал нарушение работы в инете, сопровождаемое невнятной диагностикой. Последний раз ~ 20 дней назад. Примерно тогда же пал сервер балансера.
---
специально в тему. иду на [url]http://godb.ru/v1/faq/[/url]
И без ответа. вопросил ещё раз - сразу выдан ответ. Вот такая стабильность.

x_05772 16.08.2014 12:34

Вот еще крах
При попытке просмотра этой страницы возникла ошибка:

mysql_connect(localhost, airbase) to DB 'AB_FORUMS => AB_FORUMS' failed 0:


Текущее время: 17:36. Часовой пояс GMT +3.