2011-06-24 3 views
2

Наводящий мой горизонт проекта (C# 4.0) - это введение функции настройки пользователя, в которой мои коллеги должны получить возможность конфигурировать наше программное обеспечение или базу с предварительным запуском, чтобы он выполнял свои обязанности любым способом необходимо. Каждый прогон (они будут длительными симуляциями) будет иметь собственный файл конфигурации.Примеры пользовательских файлов конфигурации?

В основном, они хотят определить «продукты», довольно сложные звери, содержащие параметры времени выполнения, информацию типа IOC (списки классов вычислений, требуемые в стиле Strategy Pattern) и многое другое. Значения могут быть числами (целыми и плавающими), строками, датами и списками.

Мы знаем, что содержимое изменится (например, новые имена параметров) по мере появления новых продуктов или существующих.

Опции Я смотрел включают, в порядке убывания (моя оценка) синтаксических тяжести:

  1. XML
  2. YAML
  3. JSON
  4. DomainSpecific Language?
  5. Некоторые приложения конкретных текстовых обозначений

Я ищу примеры более или менее подобные вещи: форматы файлов, обсуждения преимуществ и недостатков с технической и/или пользователя перспективе.

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

EDIT/UPDATE: я не особенно обеспокоен простотой внедрения с технической точки зрения: я ищу что-то свое (очень умное, но не технически ориентированное) пользователей лучше всего будет использовать, чтобы свести к минимуму трудности что может быть довольно сложной конфигурацией.

Возможно, «конфигурация» - это плохой выбор слова - что, если мы назвали его «файлом определения моделирования» и считали, что каждый пользователь будет создавать многие из них с течением времени?

+0

Другим вариантом для рассмотрения будет небольшая файловая база данных, такая как SQLite или MS SQL Compact Edition. – jalf

ответ

0

Если все это можно описать обычным образом, ориентированным на атрибуты, это звучит так, как XML будет отвечать вашим потребностям. C# обладает отличными функциями обработки XML, включая встроенные сериализаторы и LINQ, которые могут сэкономить массу времени реализации кода. Кроме того, создание пользовательского интерфейса на основе форм из схемы очень прямолинейно.

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

Для примера рассмотрим одну из многих систем плагинов, управляемых XML. Первый, который я бы рекомендовал, - Eclipse.

+0

Это лучший вариант для моих пользователей? Им нужно написать много конфигурационных файлов, мне нужно их обработать. –

+0

Возможно. Все зависит от интерфейса. Как я уже упоминал, создание форм из XML-схемы довольно просто, и для этого есть отличные инструменты. Просмотрите формы Eclipse или редактор PDE для некоторых отличных примеров. – AdamC

0

В C# проще всего использовать встроенный класс System.Configuration, сначала вы должны добавить файл конфигурации, используя Visual Studio, чем вы можете редактировать его атрибуты. Вот How To

+0

Вы можете создавать пользовательские разделы, и они могут быть записаны, в том числе записывать переопределения файлов 'app.config' для каждого пользователя (и это позволяет избежать проблем с разрешением - пользователи могут писать в свою конфигурацию, тогда как они не должны писать к глобальной конфигурации). – Richard

Смежные вопросы