Je voulais faire un lecteur RSS depuis un certain temps maintenant (juste pour le plaisir), mais je n'ai pas la moindre idée par où commencer. Je ne comprends rien au RSS. Existe-t-il de bons tutoriels sur RSS et comment l'implémenter dans une application (pas un tutoriel sur la façon de faire un lecteur RSS, ce serait trop facile).
Voir
http://msdn.Microsoft.com/en-us/library/bb943474.aspx
http://msdn.Microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed.aspx
http://msdn.Microsoft.com/en-us/library/bb943480.aspx
Fondamentalement, il y a beaucoup de choses dans le framework .Net 3.5 qui fait le gros travail de l'analyse et de la représentation des flux; il n'est pas difficile d'écrire une application de 30 lignes qui prend une URL de flux et télécharge le flux et imprime le titre et l'auteur de tous les éléments, par exemple. (Fonctionne pour RSS 2.0 (pas pour les autres!) Ou Atom.)
Si vous vous concentrez sur la création d'un lecteur RSS et non sur la logique d'analyse RSS, vous souhaiterez peut-être déléguer la création/lecture de flux RSS à l'aide de cette bibliothèque RSS gratuite appelée Argotic sur CodePlex.com
Comme une autre affiche recommandée, la classe SyndicationFeed et Argotic sont les meilleures alternatives.
Si les performances sont un problème, la classe SyndicationFeed sera bien meilleure. Je l'ai comparé comme étant environ 9 fois plus rapide qu'Argotic sur mon matériel.
Le problème que j'ai eu avec la classe SyndicationFeed a été sa capacité à analyser avec succès n'importe quel flux aléatoire à partir du net. Il échoue souvent avec une XmlException.
Pour mes utilisations, je m'en tiens à Argotic. Après tout, c'est open source, donc je peux toujours faire des changements si besoin.
Je vous suggère d'utiliser ceci
RSS.NET est une bibliothèque de classes .NET open source pour les flux RSS. Il fournit un modèle d'objet réutilisable pour analyser et écrire des flux RSS. Il est entièrement compatible avec les versions RSS 0.90, 0.91, 0.92 et 2.0.1, implémentant toutes les constructions.
Étant donné que le flux de syndication standard ne prend pas en charge d'autres versions de rss.
Si vous ne pouvez pas utiliser System.ServiceModel.Syndication.Syndicationfeed
, par exemple parce que vous utilisez une PCL (Portable Class Library). J'en ai écrit un: FeedParserPCL . Vous pouvez le trouver sur NuGet .
Vous devez travailler avec la spécification XML XML: http://cyber.law.harvard.edu/rss/rss.html
Si vous écrivez un lecteur complet sans utiliser de bibliothèque, pensez également qu'il y a ATOM flux à analyser.
Pensez à lire le code source de RSS Bandit , qui est un lecteur RSS C # Winforms (peut-être bientôt WPF).
Vous devriez obtenir de bonnes idées en parcourant simplement l'application.
RSS lui-même est vraiment simple. Juste une description XML d'un canal et une liste d'éléments sur ce canal (éventuellement avec des fichiers joints à chaque élément). Garder une trace des mises à jour est un peu délicat, mais la gestion des encodages et des heures/dates de publication est également délicate. Le vrai cauchemar, ce sont toutes les différentes "interprétations" du format RSS que les différents sites utilisent. Si vous écrivez vraiment un lecteur de flux, vous voudrez peut-être commencer par analyser Atom, car c'est un format plus standardisé, et vous pourriez aller plus loin, avec une bonne conception pour vous ramifier en RSS. Mais vraiment, vous devez simplement utiliser une bibliothèque d'analyse RSS - de préférence la plus compatible disponible (mais ne payez pas pour une bibliothèque RSS; elles sont assez courantes).
RSS est un dialecte XML, donc si vous connaissez XML, vous avez une partie du problème résolu. Si vous voulez démarrer votre projet, pensez à regarder les projets open source déjà disponibles:
http://www.codeplex.com/site/search?projectSearchText=RSS%20Reader
CodePlex (ci-dessus) est un bon point de départ, car la majorité des projets seront en C #.
J'ai beaucoup travaillé avec RSS et j'ai découvert que les flux ATOM sont généralement plus faciles à analyser à l'aide de la classe RssSyndication. Pour les spécifications RSS 2.0, si le flux est en fait valide, alors c'est il est tout aussi facile de charger un XDocument à partir de l'URI et d'analyser les données selon les besoins.