Traduction▲
Ce tutoriel est la traduction la plus fidèle possible du tutoriel original de Peter Bull, Windows Phone 7 - RSS Feed Reader using Silverlight on Windows Phone 7.
Introduction▲
RSS Reader est une application simple permettant l'accès au contenu de flux RSS avec LINQ to XML en utilisant Silverlight sur Windows Phone 7.
Lecteur de flux RSS en utilisant Silverlight sur Windows Phone 7▲
Étape 1▲
Démarrez Microsoft Visual Web Developer 2010 Express pour Windows Phone, ensuite sélectionnez Fichier puis Nouveau Projet… Sélectionnez Visual C# ensuite Silverlight for Windows Phone puis Application Windows Phone dans les modèles installés, sélectionnez un emplacement si vous le souhaitez, puis entrez un nom pour le projet et appuyez sur OK :
Étape 2▲
Une page Application Windows Phone nommée MainPage.xaml devrait alors apparaître :
Étape 3▲
Sélectionnez Projet ensuite Ajouter une référence… La fenêtre Ajouter une référence devrait apparaître, sélectionnez System.Xml.Linq dans la liste .NET :
Étape 4▲
Ajouter la référence à System.Xml.Linq en cliquant sur OK. Sélectionnez Projet ensuite Ajouter une classe…, et sélectionnez le modèle Classe s'il ne l'est pas déjà, ensuite modifiez Nom à FeedItem.cs :
Étape 5▲
Ajoutez la nouvelle classe au Projet en cliquant sur Ajouter, ensuite dans la vue de code pour la nouvelle classe, en dessous du « { » se trouvant en dessous de la ligne public class FeedItem, tapez ceci :
private
string
_title;
private
string
_description;
private
string
_link;
private
string
_guid;
private
DateTime _published;
Étape 6▲
Puisque nous en sommes à la vue de code pour FeedItem.cs, en dessous de la ligne private DateTime _published; tapez les propriétés suivantes :
public
string
Title
{
get
{
return
_title;
}
set
{
_title =
value
;
}
}
public
string
Description
{
get
{
return
_description;
}
set
{
_description =
value
;
}
}
public
string
Link
{
get
{
return
_link;
}
set
{
_link =
value
;
}
}
public
string
Guid
{
get
{
return
_guid;
}
set
{
_guid =
value
;
}
}
public
DateTime Published
{
get
{
return
_published;
}
set
{
_published =
value
;
}
}
Étape 7▲
Retournez au concepteur de vues MainPage en sélectionnant l'onglet MainPage.xaml. Ensuite dans le volet XAML entre les lignes <Grid
x
:
Name
=
"ContentGrid"
Grid.
Row
=
"1"
>
et </Grid>
, tapez le code XAML suivant :
<Grid
x
:
Name
=
"ContentMain"
>
<Grid.RowDefinitions>
<RowDefinition
Height
=
"80"
/>
<RowDefinition
Height
=
"*"
/>
</Grid.RowDefinitions>
<Grid
x
:
Name
=
"Toolbar"
Grid.
Row
=
"0"
>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width
=
"*"
/>
<ColumnDefinition
Width
=
"Auto"
/>
</Grid.ColumnDefinitions>
<!-- Toolbar -->
</Grid>
<!-- Content -->
</Grid>
XAML :
Design :
Étape 8▲
Puis dans la section Contrôles Windows Phone de la Boîte à outils, sélectionnez le contrôle TextBox :
Étape 9▲
Dessinez un TextBox sur la section barre d'outils (la plus petite section supérieure) du Grid sur la page, en dessous du titre de la page, et dans le volet XAML en dessous de la ligne <!-- Toolbar -->, modifiez TextBox1 comme ceci :
<TextBox Grid.
Column
=
"0"
Name
=
"Location"
>
<TextBox.InputScope>
<InputScope>
<InputScopeName
NameValue
=
"Url"
/>
</InputScope>
</TextBox.InputScope>
</TextBox>
Voir ci-dessous :
Étape 10▲
Puis dans la section Contrôles Windows Phone de la Boîte à outils, sélectionnez le contrôle Button :
Étape 11▲
Dessinez un bouton sur la section barre d'outils en glissant le bouton de la Boîte à outils sur la section barre d'outils du Grid sur la page, ensuite dans le volet XAML modifiez la ligne Button1 comme ceci :
<Button Grid.
Column
=
"1"
Content
=
"go"
Click
=
"Go_Click"
/>
Voir ci-dessous :
Étape 12▲
Puisque nous en sommes au volet XAML pour MainPage, en dessous de la ligne <!-- Content-->, tapez le code XAML suivant :
<ScrollViewer Grid.
Row
=
"1"
BorderThickness
=
"0"
>
<ItemsControl
Name
=
"Results"
>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<HyperlinkButton
NavigateUri
=
"{Binding Path=Link}"
Content
=
"{Binding Path=Title}"
/>
<TextBlock
TextWrapping
=
"Wrap"
Text
=
"{Binding Path=Description}"
/>
<TextBlock
Text
=
"{Binding Path=Published}"
/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
Voir ci-dessous :
Étape 13▲
Faites un clic droit sur la page ou sur l'entrée pour MainPage.xaml dans l'Explorateur de solutions et choisissez l'option Afficher le code. Dans la vue de code au-dessus de namespace RSSReader tapez ceci :
using
System.
Xml.
Linq;
using
System.
Text.
RegularExpressions;
Étape 14▲
Puisque nous en sommes toujours à la vue de code pour MainPage.xaml.cs, au-dessus de public MainPage() tapez la méthode suivante :
private
void
Feed
(
object
Sender,
DownloadStringCompletedEventArgs e)
{
XElement _xml;
try
{
if
(!
e.
Cancelled)
{
_xml =
XElement.
Parse
(
e.
Result);
Results.
Items.
Clear
(
);
foreach
(
XElement value
in
_xml.
Elements
(
"channel"
).
Elements
(
"item"
))
{
FeedItem _item =
new
FeedItem
(
);
_item.
Title =
value
.
Element
(
"title"
).
Value;
_item.
Description =
Regex.
Replace
(
value
.
Element
(
"description"
).
Value,
@"<(.|\n)*?>"
,
String.
Empty);
_item.
Link =
value
.
Element
(
"link"
).
Value;
_item.
Guid =
value
.
Element
(
"guid"
).
Value;
_item.
Published =
DateTime.
Parse
(
value
.
Element
(
"pubDate"
).
Value);
Results.
Items.
Add
(
_item);
}
}
}
catch
{
// Ignore Errors
}
}
Étape 15▲
Toujours dans la vue de code pour MainPage.xaml.cs, dans le constructeur public MainPage() en dessous de InitializeComponent(); tapez ceci :
PageTitle.
Text =
"RSS Reader"
;
Location.
Text =
"http://cespage.com/silverlight/tutorials.xml"
;
Étape 16▲
En restant toujours dans la vue de code pour MainPage.xaml.cs, au-dessus de public MainPage() tapez le gestionnaire d'événement suivant :
private
void
Go_Click
(
object
sender,
RoutedEventArgs e)
{
WebClient _client =
new
WebClient
(
);
_client.
DownloadStringCompleted +=
Feed;
_client.
DownloadStringAsync
(
new
Uri
((
Location.
Text)));
}
Étape 17▲
Enregistrez le Projet maintenant que vous avez terminé l'application Windows Phone Silverlight. Sélectionnez l'option Windows Phone Emulator ensuite sélectionnez Debug puis Démarrer le débogage ou cliquez sur Démarrer le débogage :
Dès que vous l'aurez fait, ce qui suit apparaîtra dans l'émulateur Windows Phone une fois chargé :
Étape 18▲
Appuyez sur le TextBox. Puis, en utilisant le SIP ou le clavier, saisissez l'URL d'un flux RSS. Ensuite, appuyez sur go pour afficher les éléments du flux RSS :
Étape 19▲
Vous pouvez ensuite Arrêter l'application en sélectionnant la fenêtre d'application Visual Studio 2010 et en cliquant sur le bouton Arrêter le débogage :
Conclusion▲
Ceci est un lecteur RSS très simple. Il serait possible d'utiliser le framework de syndication de Silverlight au lieu de LINQ pour lire tout type de flux RSS. Ce tutoriel sera peut-être mis à jour à une date ultérieure pour l'utiliser. Vous pouvez néanmoins le faire vous-même, ou ajouter davantage de fonctionnalités - personnalisez-le !
Liens▲
Remerciements▲
Je tiens ici à remercier Peter Bull de m'avoir autorisé à traduire son tutoriel.
Je remercie tomlev pour sa relecture technique et ses propositions.
Je remercie également FirePrawn pour sa relecture orthographique et ses propositions.