Не могу вам сильно помочь с макетом, однако мне нужно было реализовать что-то очень похожее в silverlight, и это решение, которое я использовал, работало довольно хорошо.
1: реализовать изолированное хранилище нана стороне приложения, это используется в качестве кеша дневника
2: на стороне базы данных вы должны хранить данные как тип данных XML
3: когда пользователь входит в систему, немедленно отображает содержимоекеша дневника, так что ожидания больше нет
4: Далее немедленно запускаем фонового работника, который возвращается в базу данных и получает самую последнюю актуальную информацию дневника
5: после фонового работникаПо завершении проверьте, не отличаются ли данные за один день из базы данных от данных, хранящихся в локальном кеше, если это так, обновите графический интерфейс и локальный кеш
6: запускайте фонового работника каждые 5 минут, выполняя шаги 4 и 5, как требуется