2009-04-23 4 views
0

Кто-нибудь там использует YAML в качестве DSL данных в .NET? Я бы хотел использовать YAML, потому что он более легкий, чем XML. Я намерен использовать этот DSL в качестве инструмента настройки «мощный пользователь» для одного из моих существующих приложений.YAML как DSL данных в .NET (C#)

Мои интересы:

  • Как поддержка YAML с использованием одной из библиотек .NET сообщества?
  • Имеет ли YAML силу выдержки? Будет ли это еще через 4 года? Или мы будем говорить о каком-то другом формате? Я знаю, что JSON и XML будут работать некоторое время, но мои пользователи не захотят писать или поддерживать JSON или XML-документы.

ответ

1

Если это документ, обращенный к пользователю, не беспокойтесь о «остаточной мощности» YAML. Беспокоитесь, что пользователи довольны некоторыми DSL. При этом я бы выбрал YAML над XML.

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

Даже если вам нужно было создать свой собственный язык, чтобы удовлетворить ваших пользователей, вероятно, стоило бы не заставлять их смотреть на XML.

+0

Я думаю, что для меня преимущество # 1 использовать YAML было бы: мне не нужно изобретать свой собственный формат данных. # 2 Я могу повторно использовать этот код YAML-to-config .NET для других проектов, над которыми я работаю. – BuddyJoe

+0

Я хочу подождать, пока что-то вроде M/Oslo созреет, прежде чем я уйду и попытаюсь придумать собственную полноразмерную внешнюю DSL. – BuddyJoe

+0

+1 Хороший совет. Думаю, я мог бы использовать конвертер YAML-to-X где-то по линии. – BuddyJoe

3

Рассматривались ли вы вместо этого с помощью скриптов IronPython? Таким образом, вы можете не только интерпретировать простые вещи типа «ключ-значение», вы также можете добавить динамическое исполнение и вычисления в конфигурацию вашего пользователя.

Стоит проверить, как хостинг IronPython - это dead simple, и синтаксис очень чист и прост для чтения для пользователей, даже если они не знают Python.

0

Есть библиотеки YAML, которые будут строить и анализировать YAML, но я не могу найти способ сериализации произвольного объекта, например XML для C# или YAML для Ruby.

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

  • Нет связанных вопросов^_^