Полагаю, встроенный ресурс - хороший вариант , если , вы будете рады перекомпилировать и повторно развертывать каждый раз, когда происходят изменения;кроме того, только то, что вы, возможно, будете рады сделать это, не означает, что все будут:)
Очень распространенный подход состоит в том, чтобы абстрагироваться от любого вида доступа к данным за интерфейсом;если вы сделаете это, вы сможете позволить пользователям выбирать, какую реализацию они хотят (при условии, что вы предоставили пару), и это позволит им написать свою собственную.С точки зрения шаблонов это Dependancy Inversion (также известный как Inversion of Control).
Если вы управляете созданием провайдера через config (то есть: используя Factory ) вы сможете переключать поставщиков без необходимости повторного развертывания основной части приложения (части, которая потребляет данные).Таким образом, вы можете иметь столько разных провайдеров, сколько захотите: провайдер чтения из файла XML, провайдер данных SqlLite, провайдер на основе веб-сервисов / облачных сервисов и т. Д.
Мне нравится подход Rolands - вы могли быпостроить его как реализацию провайдера (чтение файла в память, быстрое реагирование на запросы из памяти).
Использование ресурсов в Visual Studio .NET