2016-11-02 1 views
0

Я работаю над приложением, в котором пользователи в локальной сети уведомляются, когда «запись» из базы данных изменяется. Поэтому, если человек «А» изменяет запись 1, а лицо «В» имеет запись 1 в своем представлении, лицо «В» будет уведомлено о том, что запись 1 изменилась. В настоящее время мы используем так называемый «дуплексный» сервис для отправки этих уведомлений через службу WCF. Сервис довольно медленный, и в идеале мы хотели бы его удалить. Есть ли способ сохранить данные в режиме реального времени (или близко к ним) для пользователей, когда другой пользователь обновил базу данных?Каковы способы синхронизации данных между C# WPF-приложением и SQL Server?

+0

Похоже, вы проверяете базу данных. Является ли аудит в режиме реального времени? Является ли опрос таймером. Существует много факторов, которые могут способствовать задержке оповещения. Я бы нашел, где лежит горло бутылки, прежде чем вы погрузитесь и сделаете оптовые изменения. –

+0

Я полагаю, это зависит от текущего дизайна вашей системы. Все приложения подключаются к одной и той же службе WCF? Предоставляет ли эта служба уведомления обо всех приложениях при обновлении. Это кажется сложным. –

+0

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

ответ

0

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

0

Однажды у меня была аналогичная проблема, и я перешел к облачному решению NoSql под названием Firebase с библиотекой Firesharp. Firebase - Features, Firesharp.

Это ослепительно быстро и на самом деле очень проста в использовании. Поэтому, если ваше приложение все еще довольно мало, и бизнес-риск перехода на установку NoSql мал, это может оказаться полезным решением.

+0

Благодарим вас за ответ. К сожалению, это огромное приложение, поэтому я не думаю, что это будет работать в наших обстоятельствах. –

0

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

Вы можете создать асинхронный метод, который проверяет состояние элемента, который пользователь использует на сервере nodejs, который будет запрашивать db, для этой конкретной записи, ответить на это значение, и метод async может проверить, текущее значение отличается от текущего из БД, а затем оно может информировать пользователя или обновлять запись. Они имеют небольшой след и должны работать более эффективно.