web-dev-qa-db-fra.com

Comment puis-je commencer à créer un lecteur RSS C #?

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).

49
Kredns

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.)

50
Brian

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

11
Sung M. Kim

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.

6
scottm

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.

1

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 .

0
aloisdg

Vous devez travailler avec la spécification XML XML: http://cyber.law.harvard.edu/rss/rss.html

0
Marco Bettiolo

Si vous écrivez un lecteur complet sans utiliser de bibliothèque, pensez également qu'il y a ATOM flux à analyser.

0
Julien Roncaglia

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.

0
Jafin

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).

0
Lee B

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 #.

0
Gregory A Beamer

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.

0
bkingdev