Я создаю RSS-ридер как хобби-проект и в тот момент, когда пользователь добавляет свои собственные URL-адреса.
Я думал о двух вещах.
Является ли идея SQLite слишком накладной или есть лучший способ сделать что-то подобное?





Почему не XML?
Если вы в любом случае имеете дело с RSS, то все в порядке :)
Как насчет файла OPML? Это XML, поэтому, если вам нужно хранить больше данных, чем предоставляет спецификация OPML, вы всегда можете добавить свое собственное пространство имен.
Кроме того, импорт и экспорт из других программ чтения RSS осуществляется через OPML. Часто для этого есть библиотека. Если вы заинтересованы в переключении пользователей, вам необходимо поддерживать OPML. Спасибо jamesh за то, что поднял этот вопрос.
Планируете ли вы хранить только URL-адреса? Или вы планируете добавить данные типа last_fetch_time или около того?
Если это простой список URL-адресов, который ваша программа будет читать построчно и загружать данные, сохраните их в файле или, что еще лучше, в каком-нибудь сериализованном объекте, записанном в файл.
Если вы планируете расширить его, добавить комментарии / время последней выборки, так далее, я бы выбрал SQLite, это не так уж и много накладных расходов.
Спасибо за это, я, вероятно, немного расширю его.
Если это однопользовательское приложение, имеющее только один экземпляр, SQLite может оказаться излишним.
На мой взгляд, у вас есть несколько вариантов:
Я бы выбрал вариант с текстовым файлом XML. Вы можете использовать инструмент XSD, встроенный в Visual Studio, для создания DataTable из данных XML, который при необходимости легко сериализует обратно в файл.
Другое предостережение заключается в том, что я уверен, что вы захотите, чтобы конечный пользователь мог классифицировать свои RSS-каналы и иметь возможность искать / сортировать их, и наличие такого стиля с данными поможет в этом.
Вы получите легкое хранение и доступ к файлам, преимущество структуры «базы данных», но не совсем накладные расходы, связанные с SQLite.
Импорт и экспорт из других программ чтения RSS осуществляется через OPML. Часто для этого есть библиотека. Если вы заинтересованы в переключении пользователей, вам необходимо поддерживать OPML.