Существуют ли какие-либо инструменты .NET, которые могут генерировать формы на основе метаданных? - PullRequest
4 голосов
/ 24 августа 2010

То, что я хочу, это описать форму (поля с типами, именами, правилами валидации) через некоторые xml или dsl.Затем во время выполнения мой код снабжает этот инструмент метаданными, он генерирует форму (веб, формы win и т. Д.), Он показывается пользователю, пользователь вводит данные, нажимает ОК, инструмент вызывает мой код через некоторый делегат со значениями в виде ключейсловарь значений.Конечно, я могу написать такое самостоятельно, но, может быть, мне и не нужно?

Ответы [ 5 ]

2 голосов
/ 24 августа 2010

Возможно, вы захотите взглянуть на NakedObjects . Это работает правильно: от кода к данным, а не наоборот. В противном случае вы не сможете адекватно смоделировать поведение. Для других платформ (Bamboo, Java, Smalltalk) существуют другие реализации.

1 голос
/ 24 августа 2010

Если вы посмотрите на код для WinForms, элементы управления собраны и сконфигурированы в коде.

Если вы декомпилируете (например, через Reflector) сборку, созданную из web .aspx или .ascx в WebFormsэто просто код, который выводит HTML (множество вызовов Response.Write через HtmlTextWriter.

XAML - это просто способ определения графа объекта.

Это всепросто код.

Нет причин, по которым вы не можете:

  1. Создать собственный генератор кода для создания кода пользовательского интерфейса во время компиляции.
  2. Создатьнеобходимые элементы управления от некоторых DSL во время выполнения.
1 голос
/ 24 августа 2010

Динамические данные будут делать это из модели, например, Linq to SQL или EntityFramework, но не из xml.Он извлекает данные и использует шаблоны.

Нажмите

Надеюсь, это поможет.

0 голосов
/ 24 августа 2010

Ironspeed делает то, что вы после.Однако я слышал, что у кого-то с этим плохой опыт.

0 голосов
/ 24 августа 2010

Я знаю только один инструмент из мира MS, который соответствует вашим требованиям - MS InfoPath.По моему опыту, все, включая пользовательскую разработку, лучше, чем InfoPath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...