![]() |
Проектирование клиент-серверного приложения Доброй ночи, форумчане! Прошу поделиться опытом в следующем вопросе: Имеется сервер с СУБД (MS SQL). Есть клиент (десктопный на C#). Вопрос как лучше реализовать обмен информацией (select, delete, update, insert и т.д.) между клиентом и СУБД??? P.S. Сейчас обращение происходит непосредственно в самом коде клиента - формируем SqlCommand и т.д. в общем весь T-SQL в коде клиента. Слышал что можно замутить прослойку WCF, что то типа C#->WCF->MS SQL. Ткните носом, дайте ссылки или просто наведите, остальное найду по терминам. Заранее спасибо! |
Сервер локальный или нет? А почему Вас сейчас не устраивает данный способ обмена? Объясните, пожалуйста. |
Доброго утра! Сервер локальный. Одна из причин - безопасность - хотелось бы чтобы все запросы как бы "шли через одну щель". Во вторых кто-то советовал делать все через WCF. Но вот и хочу поглубже разобраться |
Т.е. как я понимаю "один клиент = один доступ к SQL Server". У меня как-то было подобная задача, но с WCF я плохо знаком. Придумал концепцию: Клиентское приложение (обращение через сокеты к "шлюзу") -> -> Приложение-"шлюз" на машине, где находится SQL Server (проверка правил в "шлюзе") -> -> обращение к SQL Server |
Не совсем понял выражение "один клиент = один доступ к SQL Server"))) Программа-клиент создает коннэкшн к БД под логином и паролем прописанным в этой же СУБД, копий программ не мало - до 1000 штук. Просто интересует сама концепция разработки и обмена данными. |
Ну вот это я и хотел уточнить - сколько копий программы обращается к БД, не правильно выразился. Тогда я думаю нужно смотреть не в сторону безопасности подключения, а Может Вам тогда посмотреть в сторону SSH, SSL, VPN? |
[quote=SheLLest;36026871]Т.е. как я понимаю "один клиент = один доступ к SQL Server"[/quote] один [u]connect[/u][quote=walle93;36027038]копий программ не мало - до 1000 штук[/quote] Пользователей? Может быть надо чтобы обссуживалось одновременно 1000 клиентов? Но тогда надо изучить и понять изоляцию транзакций в MS SQL. Такие вопросы надо задавать на профильном сайте sql.ru |
Может я не так вопрос ставлю.... Хотелось бы именно узнать о самом проектировании информационной системы - как сейчас они строятся, нужно ли вообще посредством WCF все писать, либо есть еще какие методы обмена данными между клиентской частью и сервером???? на счет канала связи и блокировок вопрос пока даже не стоит. Но все равно спасибо! |
Для .NET - LINQ вроде неплох, хотя толком еще не разобрался. Но то, что увидел - упрощает жизнь, да. Вечная проблема отражения реляционных таблиц на объектную модель близка к удобному решению. |
можно начать с чтения википедии [url]http://ru.wikipedia.org/wiki/Удалённый_вызов_процедур[/url] |
0-walle93 > собирал через SqlCommand но не компонентный, а создаваемый вместе с подключением динамически, иначе при обрыве связи когда соединение открыто придётся ексцепшены ловить. меньше визуальщины и больше писанины при работе с БД и всё получится. Делал прогу которая вообще с SQL работала в асинхронном режиме. т.е. ты можешь ноут отключить или выйти за пределы вай-фай и продолжать работать, а когда связь восстановится произойдёт синхронизация. Сложно блин, но такого в мире ПО я ещё не встречал :) Рекомендую попробовать! Если Вам удасться реализовать такой же вариант и отладить, то отказоустойчивость клиентского приложения может быть абсолютной! |
[quote=walle93;36030699]проектировании информационной системы[/quote] Вот и посмотрите. проектирование информационных систем Результатов: примерно 2 980 000 (0,33 сек.) |
А если посмотреть детальнее, получается смешно [url]http://fkn.ktu10.com/?q=forum/105[/url] Проектирование информационных систем (ПрИС) объекты по значению rmi By vedro-compota 1 year 2 months ago 0 n/a и так все строчки. --- не надо лезть в очередное изделие Microsoft. Она их регулярно творит, уверяя прочих, что это самое прогрессивное в мире. И что всем надо купить и пользоваться новым причиндалом. начать надо изучения предметной области изучения Библии Дейт, Кристофер Автор классического учебника «Введение в системы баз данных», |
7-walle93 >Вас что конкретно интересует? "Трехзвенка"? Какую цель преследуете теоретическую или практическую? |
[quote=40KHYTbIU;36048848] 7-walle93 >Вас что конкретно интересует? "Трехзвенка"? Какую цель преследуете теоретическую или практическую? [/quote] Наверное распрелеление прав на доступ к базе, таблицам. Раздача прав клиентам. Читать документацию. |
Web api можно замутить, со стороны mysql, там и ssl, и легко подтянуть к другим клиентам. |
[quote=Фанат NASCAR;36054566]со стороны mysql[/quote] Этот самый мускул хорош только для НЕ бизнес приложений. Потому что временами падает. Разумнее взять бесплатную версию "больших" SQL серверов. |
Не понравился мне мускуль. Вообще. Какой-то он показался слишком сложный для применения в небольших проектах. В личных предпочтениях был Embedded Firebird. |
16-x_05772 >у херовых админов вечно что то падает. Мускуль применяется в высоконагруженных крупных проектах по всему шарику, и не нам с вами судить, насколько он пригоден. |
17-Том >а держать СУБД род виндой - не нравится мне. |
16-x_05772 > Пример? 17-Том > Можно так же пример? |
[quote=Фанат NASCAR;36095602]Мускуль применяется в высоконагруженных крупных проектах по всему шарику[/quote] Применяется в WWW. Там нет интенсивного конкурентного доступа, например как при продаже билетов. Есть интенсивный доступ на чтение. Редкий на добавление. Транзакции нужны очень редко. Несколько раз наблюдал нарушение работы в инете, сопровождаемое невнятной диагностикой. Последний раз ~ 20 дней назад. Примерно тогда же пал сервер балансера. --- специально в тему. иду на [url]http://godb.ru/v1/faq/[/url] И без ответа. вопросил ещё раз - сразу выдан ответ. Вот такая стабильность. |
Вот еще крах При попытке просмотра этой страницы возникла ошибка: mysql_connect(localhost, airbase) to DB 'AB_FORUMS => AB_FORUMS' failed 0: |
Текущее время: 17:36. Часовой пояс GMT +3. |