Реализация автосохранения в WPF / MVVM / NHibernate - PullRequest
1 голос
/ 24 апреля 2010

Моему клиенту нравятся программы, такие как Microsoft OneNote, в которых изменения сохраняются автоматически, и он может отказаться, когда он явно хочет это сделать. Мне придется реализовать некоторые функции отмены, но я это выясню в другой раз.

С NHibernate, я полагаю, я могу вызывать ISession.Update при каждом изменении свойства / привязки, но я могу увидеть реальную боль при таком подходе в будущем. Я не фанат таймеров, но, возможно, 5-секундный таймер, который запускается при изменении свойства / привязки и в конце таймера использует поток BackgroundWorker для сохранения в БД.

Что ты думаешь?

1 Ответ

1 голос
/ 25 апреля 2010

ISession.Update для каждого изменения свойства обычно не очень хорошая идея. События изменения свойства происходят довольно часто. Это может замедлить ваше приложение, когда вы делаете ISession.Update при каждом изменении. Это, вероятно, приведет к плохому пользовательскому опыту.

В нашем приложении такое же поведение. Мы сохраняем изменения, когда представление закрывается (какое-то другое связанное событие). Например, когда пользователь закрывает вкладку, данные, отображаемые на этой вкладке, закрываются.

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

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