На горизонте моего (C # 4.0) проекта - введение функции пользовательской конфигурации, в которой мои коллеги должны получить возможность конфигурировать наше программное обеспечение или предварительную версию, чтобы он мог выполнять свои обязанности любым способомнужно.Каждый прогон (это будут длительные симуляции) будет иметь свой собственный файл конфигурации.
В основном, они захотят определить «продукты», довольно сложные звери, содержащие параметры времени выполнения, IOC-стиль информации (списки классов вычислений, требуемые в стиле Strategy * ) и многое другое.Значения могут быть числами (целыми числами и числами с плавающей точкой), строками, датами и их списками.
Мы знаем, что содержимое будет меняться (например, новые имена параметров) по мере появления новых продуктов или развития существующих.
Опции, на которые я смотрел, включают в порядке убывания (моя оценка) тяжесть синтаксиса:
- XML
- YAML
- JSON
- a DomainSpecific Language ?
- Некоторые текстовые обозначения для приложений
Я ищу примеры более или менее похожих вещей: форматы файлов, обсуждения плюсов и минусов с технической и / или пользовательской точек зрения.
(я ожидаю, что в некоторыхВ будущем мы рассмотрим возможность создания графического интерфейса для таких упражнений, но нам нужно будет настроить выполнение некоторых заданий до этого.)
РЕДАКТИРОВАТЬ / ОБНОВИТЬ: Я не особенно обеспокоен простотой реализации с технической точки зрения:Я ищу что-то, что мои (очень умные, но не технически ориентированные) пользователи лучше всего смогут использовать, чтобы минимизировать сложность написания, что может быть довольно сложной конфигурацией.
Может быть, "конфигурация" - это неправильный выбор слова - что если мы назовем его "файлом определения моделирования" и посчитаем, что каждый пользователь создаст множество из них со временем?