Как я могу начать делать C# RSS-ридер?


Я уже давно хотел сделать RSS-ридер (просто для удовольствия), но у меня нет ни малейшего представления о том, с чего начать. Я ничего не понимаю в RSS. Есть ли хорошие учебники по RSS и как реализовать его в приложении (а не учебник о том, как сделать RSS-ридер, это было бы слишком легко).

11 51

11 ответов:

посмотреть

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 framework есть много вещей, которые выполняют работу по разбору и представлению каналов; нетрудно написать 30-строчное приложение, которое принимает URL-адрес канала и загружает канал и печатает название и автора всех элементов, например. (Работает для RSS 2.0 (не другие!) или атома.)

Если вы сосредоточены на создании RSS Reader а не на логике RSS-анализа, вы можете делегировать создание / чтение RSS-каналов с помощью этой бесплатной библиотеки RSS под названием местного значения on CodePlex.com

Как рекомендуется другой плакат, класс SyndicationFeed и Argotic являются лучшими альтернативами.

Если производительность является проблемой, класс SyndicationFeed будет намного лучше. Я оценил его как примерно в 9 раз быстрее, чем Argotic на моем оборудовании.

проблема, с которой я столкнулся с классом SyndicationFeed, заключалась в его способности успешно анализировать любой случайный канал ИЗ СЕТИ. Он терпит неудачу с XmlException удивительно часто.

для моего использования, Я придерживаюсь Арготического языка. Ведь он имеет открытый исходный код, поэтому я всегда могу внести изменения, если нужно.

Я предлагаю вам использовать этот

RSS.NET - это библиотека классов .NET с открытым исходным кодом для RSS-каналов. Он предоставляет многоразовую объектную модель для анализа и записи RSS-каналов. Он полностью совместим с версиями RSS 0.90, 0.91, 0.92 и 2.0.1, реализуя все конструкции.

поскольку стандартный канал синдикации не поддерживает другие версии rss.

вам нужно работать со спецификацией RSS XML:http://cyber.law.harvard.edu/rss/rss.html

Если вы пишете полнофункциональный читатель без использования какой-либо библиотеки, также думаю, что есть атом для разбора.

RSS сам по себе очень прост. Просто XML-описание канала и список элементов на этом канале (возможно, с файлами, прикрепленными к каждому элементу). Отслеживание обновлений немного сложно,и управление кодировками и временем/датами публикации тоже сложно. Настоящий кошмар - это все разные "интерпретации" формата RSS, которые используют разные сайты. Если вы действительно пишете средство чтения ленты, вы можете начать с разбора Atom, так как это более стандартизированный формат, и может помочь вам быстрее, с хорошим дизайном, чтобы разветвиться на RSS. Но на самом деле, вы должны просто использовать библиотеку синтаксического анализа RSS-предпочтительно наиболее совместимую из доступных (но не платите за библиотеку RSS; они достаточно распространены).

RSS-это диалект XML, поэтому, если вы знаете XML, у вас есть часть проблемы решена. Если вы хотите начать свой проект, рассмотрите возможность просмотра проектов с открытым исходным кодом уже там:

http://www.codeplex.com/site/search?projectSearchText=RSS%20Reader

CodePlex (выше) является хорошим местом для начала, так как большинство проектов будет в C#.

рассмотрим чтение исходного кода для RSS бандит, который является C# Winforms (возможно, скоро WPF) RSS-ридер.

вы должны получить некоторые хорошие идеи, просто переступая через приложение.

Я работал с RSS совсем немного и обнаружил, что каналы ATOM, как правило, легче анализировать с помощью класса RssSyndication. Для спецификаций RSS 2.0, если канал действительно действителен, то так же легко загрузить XDocument из URI и проанализировать данные по мере необходимости.

Если вы не можете использовать System.ServiceModel.Syndication.Syndicationfeed, например, потому что вы используете PCL (портативная библиотека классов). Я написал : FeedParserPCL. Вы можете найти его на NuGet.