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