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