Основная часть работы выполняется серверной частью приложения. Нам осталось лишь привести в рабочее состояние класс Weatherlnfo. Сце¬нарий ASP.NET, размещенный в файле weather, aspx, выступает в роли прокси между клиентом и веб-службой Weather.com XML. Именно в этой странице мы и найдем применение классу Weatherlnfo.Weatherlnfo weather = new WeatherInfo(Server.MapPath(String.Empty));"' string weatherData = weather.GetWeatherQ; C'
В этом фрагменте кода с помощью метода Server. MapPath(String. конструктору класса передается строка пути к приложению, создания объекта с помощью его метода GetWeather() уже можно чать сведения о текущем состоянии погоды, которые попутно со ются в файле weatherData.
Следующий шаг - формирование всех необходимых заголовков:
Response.ContentType = "text/xml"; Response.CacheControl = "no-cache"; Response.AddHeader("Weather-Modified",
weather.LastModified.ToFileTime().ToSt ring());
Первые две строки уже должны быть вам знакомы. Они опре. тип MIME содержимого как text/xml и запрещают броузерам вать получаемые данные. В третьей строке создается неста~ заголовок с названием Weather-Modified. Этот заголовок дает ской части кода возможность проверить наличие обновлений.
В качестве значения заголовка передается длинное целое (воз мое методом ToFileTime()), представляющее время, извлекаемое и* ства LastModif ied. Поскольку эта величина представляет время него изменения файла кэша (вспомните реализацию свойства La fied класса Weatherlnfo), оно будет оставаться неизменным, пока жимое файла кэша не будет обновлено. Таким способом мы п возможность контролировать наличие изменений и на стороне
В заключение сценарий отправляет информацию о погоде ftRes'ppn se/Writer weath^
Теперь рассмотрим клиентскую часть приложения, которая бу бражать полученную информацию.