私はしばらくの間(ただの楽しみのために)RSSリーダーを作りたいと思っていましたが、どこから始めたらよいか少しもわかりません。 RSSについて何も理解していません。 RSSの優れたチュートリアルと、それをアプリケーションに実装する方法はありますか(RSSリーダーを作成する方法のチュートリアルではなく、簡単すぎます)。
見る
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
基本的に、.Net 3.5フレームワークには、フィードの解析と表現の面倒な作業を行うものがたくさんあります。たとえば、フィードURLを取り込んでフィードをダウンロードし、すべてのアイテムのタイトルと著者を印刷する30行のアプリを作成するのは難しくありません。 (RSS 2.0(他ではない!)またはAtomで動作します。)
RSS解析ロジックではなくRSSリーダーの作成に集中している場合、この無料RSSライブラリを使用してRSSフィードの作成/読み取りを委任することができます。 Argotic CodePlex.comで
別のポスターが推奨しているように、SyndicationFeedクラスとArgoticが最良の選択肢です。
パフォーマンスが問題になる場合は、SyndicationFeedクラスの方がはるかに優れています。私のハードウェアでは、Argoticの約9倍の速さでベンチマークしました。
SyndicationFeedクラスで私が抱えていた問題は、ネットからのランダムフィードを正常に解析できることです。驚くほど頻繁にXmlExceptionで失敗します。
私の用途では、Argoticにこだわっています。結局のところ、それはオープンソースなので、必要に応じていつでも変更を加えることができます。
これを使うことをお勧めします
RSS.NET は、RSSフィード用のオープンソースの.NETクラスライブラリです。 RSSフィードを解析および作成するための再利用可能なオブジェクトモデルを提供します。 RSSバージョン0.90、0.91、0.92、2.0.1と完全に互換性があり、すべての構成要素を実装しています。
標準のシンジケーションフィードは、rssの他のバージョンをサポートしていないため。
PCL(Portable Class Library)を使用しているなどの理由で、System.ServiceModel.Syndication.Syndicationfeed
を使用できない場合。私は1つを書いた: FeedParserPCL 。 NuGet で見つけることができます。
RSS XML仕様を使用する必要があります。 http://cyber.law.harvard.edu/rss/rss.html
ライブラリを使用せずにフル機能のリーダーを作成する場合は、解析するフィードが [〜#〜] atom [〜#〜] であることも考えてください。
RSS Bandit のソースコードを読むことを検討してください。これはC#Winforms(おそらくWPF)RSSリーダーです。
アプリケーションをステップ実行するだけで、いくつかの良いアイデアを得ることができます。
RSS自体は本当にシンプルです。チャネルのXML記述と、そのチャネル上のアイテムのリスト(各アイテムにファイルが添付されている場合があります)。更新を追跡することは少し注意が必要ですが、エンコードと投稿時間/日付を管理することも注意が必要です。本当の悪夢は、さまざまなサイトが使用するRSS形式のさまざまな「解釈」です。フィードリーダーを実際に作成している場合、Atomはより標準化された形式であるため、Atomの解析を開始することをお勧めします。しかし、実際には、RSS解析ライブラリを使用する必要があります。できれば、最も互換性のあるライブラリを使用する必要があります(ただし、RSSライブラリに料金を払わないでください。十分に一般的です)。
RSSはXMLの方言なので、XMLを知っていれば、問題の一部を解決できます。プロジェクトを開始したい場合は、すでに公開されているオープンソースプロジェクトを検討することを検討してください。
http://www.codeplex.com/site/search?projectSearchText=RSS%20Reader
プロジェクトの大半はC#で行われるため、CodePlex(上記)を開始するのに適した場所です。
私はRSSをかなり扱ってきましたが、ATOMフィードは通常RssSyndicationクラスを使用して解析する方が簡単です。RSS2.0仕様では、フィードが実際に有効である場合、 URIからXDocumentを読み込み、必要に応じてデータを解析するのと同じくらい簡単です。