Использование свойства зависимости для базы данных - PullRequest
1 голос
/ 16 декабря 2011

В WPF мы используем Dependency Properties, но мне интересно, возможно ли их использовать в веб-приложениях.
Например. скажем, у меня есть значение текстового поля "Джек". Это имя происходит из базы данных, поэтому, когда поле таблицы базы данных обновляется и меняет это имя на «john», как это может повлиять на значение текстового поля, поэтому оно тоже меняется на «john»?

Ответы [ 4 ]

1 голос
/ 16 декабря 2011

В сети не существует такой вещи, как привязка данных в wpf. БД не реализует интерфейсы для изменения данных. Что вы можете сделать, это использовать хранимые процедуры БД (скомпилированные) и сообщить об изменении данных в триггере веб-экземплярам. С этого момента можно обновлять представление / веб-страницу через Ajax.

Это будет метод «толкания», который, конечно, лучше, но сложнее в реализации.

Вы также можете выполнять «пул данных» на заданном интервале времени и обновлять страницу соответственно, что просто для реализации, но очень плохое управление ресурсами.

С уважением, П.

1 голос
/ 16 декабря 2011

В веб-приложении все работает немного иначе, чем в приложениях WPF.

В WebApp поступают запросы, сервер обрабатывает их и затем возвращает результат в браузер клиентов. Если что-то меняется на сервере, сервер не может сообщить об этом клиенту, пока не поступят новые запросы и сервер не сможет вернуть новый ответ.

ASP.NET имеет концепцию DataBinding и DataSources. Например, вы можете настроить SqlDataSource для выполнения запроса и привязки результатов к элементу управления Grid или List. Это будет выполнено, когда пользователь загрузит страницу.

Автоматическое обновление данных, когда что-то меняется на сервере, потребует от клиента постоянного опроса сервера на предмет изменений (асинхронно с AJAX), чтобы увидеть, есть ли изменения, и затем обновить HTML в браузере. Это то, что вы видите в таких приложениях, как Twitter или LinkedIn, но это совершенно другая концепция, чем та, к которой вы привыкли в приложениях WFP.

1 голос
/ 16 декабря 2011

Хорошая идея - но вы упускаете некоторые из основных проблем.

Свойство зависимости - это, по сути, объект в памяти, на который подписываются различные вещи для изменений.

Чтобы сделать то же самое для БД, вам нужен способ сообщить об этом изменении (приложению). Так как они вне процесса, это должен быть некоторый межпроцессный или даже межсерверный / сетевой вызов. Все это должно быть определено и построено вами вручную.

0 голосов
/ 16 декабря 2011

Короткий ответ: да, вы можете, не имеет значения, откуда поступают данные.Напишите класс, который реализует INotifyPropertyChanged, который в основном называется ViewModel.Этот класс обернет ваши данные, поступающие из БД, и уведомит представление об изменении значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...