У меня есть silverlight приложение, в котором пользователи будут работать в различных часовых поясах.Насколько надежна DateTime.UtcNow в приложениях Silverlight?
Эти приложения загружают свои данные с сервера при запуске, то кэш его в IsolatedStorage.
Когда я вносить изменения в данные на сервере, я хочу, чтобы иметь возможность изменить «последний раз обновленное», так что все клиенты Silverlight скачать новейшую информацию в следующий раз они проверяют эту дату.
Однако я немного запутался о том, как справляться с этим вопросом часового пояса так как если сервер находится в Нью-Йорке и время обновления устанавливается на 2010-01-01 17:00 : 00 и клиента в Seattle проверяет сравнивает его в местное время 2010-01-01 14:00:00 не будет обновляться и будет продолжать предоставлять старые данные в течение более трех часов.
Мое решение всегда пост время обновления в времени UTC, а не со временем на сервере, а затем сделать Silverlight приложение проверки с DateTime.UtcNow.
Это так просто, как кажется, или их проблемы с этим, например. что часовые пояса установлены неправильно на компьютерах, и поэтому SilverlightApp не сообщает о правильном времени UTC. Может ли кто-нибудь сказать по опыту, насколько вероятно, что использование DateTime.UtcNow для обновления кеша будет работать во всех случаях?
Если DateTime.UtcNow не является надежным, я буду просто использовать увеличивается «DataVersion» число, но есть и другие сценарии, в которых получение часового пояса sychronization вниз бы сделать его полезным, чтобы полностью понять, как решить эту проблему в приложениях silverlight.
Правильно, второй подход звучит более уверенно, возможно, тем временем было бы интересно, чтобы клиенты silverlight отправляли свои локальные времена на сервер и генерировали отчеты о том, сколько их отключено и сколько. Похоже, вы также можете получить информацию о часовом поясе: System.TimeZoneInfo.Local –