Допустим, у вас есть форма с компонентом, который отображает данные из представления на сервере SQL. Компонент может быть чем-то вроде ListView или DataGrid - в основном это то, что может отображать данные в формате 2D-сетки. Другое приложение изменяет данные, которые описывает представление SQL, и делает это регулярно, но с неопределенными интервалами.
Проблема заключается в следующем: форма должна постоянно обновляться с использованием самых актуальных данных, с минимальной задержкой между изменением и отображением.
Платформа ограничена тем, что вы должны использовать .NET 2.0 и Microsoft SQL Server. Предполагая, что вы имеете полный контроль над всеми остальными частями этой системы и можете спроектировать ее любым удобным для вас способом - как лучше всего это сделать?
Те, о которых я думал до сих пор:
Регулярный опрос данных и сравнение, чтобы увидеть, что изменилось. Либо:
- чтение всего представления с SQL Server и сравнение его с текущими отображаемыми данными, строка за строкой, обновление отображаемых данных по мере их поступления, или
- каким-то образом записывает таблицу изменений в представлении (используя триггеры или логику приложения), каждый раз читает новые элементы и применяет их к отображаемым данным.
Добавление слоя между SQL Server и формой и приложением обновлений, поэтому любые обновления из основного приложения идут сюда, и приложение формы может уведомляться об изменениях в режиме реального времени. Не совсем уверен, как это будет сделано на практике.
Размещение в таблицах триггеров, которые каким-то образом вызывают уведомление формы - возможно, вызывая некоторые пользовательские расширенные хранимые процедуры?
Всем, кто делал это раньше, пожалуйста, предложите свои идеи!
Также, пожалуйста, прокомментируйте, если вам известны какие-либо существующие библиотеки, которые уже все это делают.