2014-01-06 3 views
2

Я новичок в GUI, и я столкнулся с проблемой в своей клиент-серверной программе.Несколько клиентов на 1 сервере

Моя программа похожа на «клиентскую поддержку», где несколько клиентов могут использовать ее с разных компьютеров одновременно. Моя проблема заключается в том, что когда один клиент меняет какую-либо информацию, ее вставляют в db, а другой клиент ее не увидит если я не добавлю кнопку «Обновить» в свой gui.

Я хочу, чтобы gui был динамичным и реагировал на действия разных клиентов. Как вы можете решить эту проблему?

EDIT: 1. .net4, 2. SQL-сервер, 3. Действия happends после нажатия кнопки

+0

Какую версию .NET вы используете, что вы используете, чтобы разговаривать с базой данных, какое программное обеспечение базы данных вы используете и что примерно равно ожидаемому максимальному числу клиентов, подключенных к базе данных сразу? Ваши варианты варьируются в зависимости от этих факторов. –

+0

Также, когда они вводят информацию, это за кнопкой? Если это так, вы можете обновить, как только данные находятся в БД, а затем снова выберите данные. –

+0

Какая связь между клиентом и сервером вы используете? Является ли «сервер» здесь SQL-сервером? или сервер приложений? –

ответ

3

В принципе, у вас есть два варианта: толчок или опрос. Push (некоторый центральный сервер, объявляющий об изменении для всех слушателей) более непосредственен, но требует подходящей инфраструктуры. Это также зависит от количества клиентов, которые вам нужны для поддержки, и количества событий, проходящих через систему. Лично я большой поклонник redis pub/sub для этого (это на самом деле то, что мы используем для живых обновлений здесь, в stackexchange, в сочетании с веб-сокетами). Но в некоторых случаях вы можете получить базу данных для предоставления уведомлений об изменениях напрямую (лично я предпочитаю не использовать это). Вы также можете использовать события над чем-то вроде WCF с центрального сервера приложений, но от этого зависит только один сервер приложений, который для меня не похож.

Другой вариант - опрос - то есть приложение автоматически запрашивает систему периодически (каждую минуту, возможно), чтобы увидеть, изменились ли отображаемые данные. Если вы можете, использование timestamp/rowversion - это дешевый способ сделать это.

Смежные вопросы