Silverlight
Weather Info
Author: Waldemar Kurkowski
- Online presentation

- Application uses public web service to serve information about the
weather available at:
http://www.webservicex.net/globalweather.asmx
- You can use
this dll
to simply get necessary information. You just have to:
- add reference to
'WeatherService.dll'
- add file 'ServiceReferences.ClientConfig' to your
project ·
- Functionality:
- Main page:
- Main border with title
'Weather Info'
- Internal border, where we can present and navigate between
other pages
- Country selection page:
- Text box to enter country name
and custom button to search for available cities and navigate to cities list
page
- When user click this button, you should call the GetCities method (first
register your handler for the GetCitiesCompleted event, which occurs when
service found information, and you can get list of cities from
GetCitiesEventArgs) and show modal child window with progress bar and text –
'Loading …'
- If the list of cities is empty, hide the child window with
loading and show another modal window with information 'You have entered
wrong country name', and don’t navigate to next page
- Else hide the child
window and navigate to next page with an animation (like in the presentation,
all navigation should be with this animation)
- Cities list page:
- Title
- List box with received list of cities
- Two custom buttons, one to
navigate back and the other one to get weather conditions in selected ciy
- When user click 'GO' call GetWeatherDetails method (first register handler
for GetWeatherDetailsCompleted where you can get list of 'WeatherElement')
and show loading child window
- In handler hide this window and navigate to
next page
- Weather page:
- Title
- List box with received weather
elements
- Custom button to navigate back
- All pages should be chached, so when we navigate back or for example
choose the same country name again, we dont need to get information from
service again, just navigate to proper chached page
- Cities and weather elements should be displayed in list
boxes using binding mechanism
- Border with navigated pages should have allways the same size, then
aimation looks better
- Colours don't have to be exactly the same as in presentation
- Hints:
- CornerRadius
- ListBox.ItemTemplate
- DataTemplate
- Application.Resources
- Border.Projection
- PlaneProjection
- RotationY
- VisualStateManager.VisualStateGroups
- VisualState x:Name="Pressed"
- VisualState x:Name="MouseOver"
- VisualState x:Name="Normal"
- Approximate points:
- Similar appearance of application: 1.0
- Child Windows: 1.5
- Use dll to communicate with web service: 2.0
- Animation to navigate between pages: 2.0
- Custom button design: 3.5