C# - Создание и управление файлами приложений конкретного приложения
Одна из спецификаций приложения, которое я разрабатываю, заключается в том, что оно должно работать с файлами проекта. Моя проблема заключается в том, как я собираюсь выполнить это требование, потому что, поскольку я работаю над тем, чтобы сделать приложение максимально свободным, используя Prism и Unity, я не могу решить, какую реализацию я собираюсь использовать для проекта. создание и управление файлами (загрузка, сохранение и т.д. файлов проекта).
Приложение станет помощником SEO и будет в основном обрабатывать текстовую информацию, такую как Uri, и строки, которые она будет получать из Интернета.
Я подумал о некоторых возможных реализациях с использованием:
а - Пространство имен System.Configuration. Это был мой первый вариант, так как я мог легко подключить новые ConfigurationSection к объекту Configuration. Недостатком является то, что он не оставляет возможности (или, по крайней мере, я не мог понять, как) использовать интерфейсы для абстракции.
б - Создать базу данных для каждого проекта и сохранить его в файл. С этой реализацией я мог бы использовать структуру базы данных, такую как nHibernate или любую другую (открытую для предложений) для обработки отображения объекта в базу данных.
c - Добавьте свой здесь.
Мой вопрос: как вы думаете, что будет лучшим подходом для обработки различных конфигураций / настроек для каждого модуля, который я подключаю к нему, и для сохранения больших списков URL-адресов, списков URL-адресов от 10 до 100 тысяч с другими настройками?
Заранее спасибо!
2 ответа
Простейшим способом будет определить ваш собственный тип (класс), такой как ProjectSettings { ... }, и просто сериализовать / десериализовать его с помощью предпочтительного сериализатора (например, XML).
Тогда вам просто не нужны какие-либо модные ORM или конфигурации. Не вводите сложность там, где она вам не нужна;)
Конфигурационный файл является хорошим решением, когда у вас есть несколько десятков переменных конфигурации (но здесь лучше иметь базу данных. Почему? Потому что, если вы хотите внести некоторые изменения в 10-100 тыс. URI, это будет сложно, и ошибка будет легко. С базой данных (одна таблица для проекта, другая для строковых соединений, другая для URI..), будет легко запросить ее, обновить ее, CRUD. Вы должны использовать базу данных, когда данные слишком велики для файла в этот случай из-за взаимосвязи между сущностями (один проект имеет много строковых соединений, много URI...) Для ORM, Entity Framework 4.0, потому что это POCO (метаданные для сопоставленных классов сущностей отсутствуют).