Можете ли вы создать систему редактирования ASP.NET для класса, просто определив его? - PullRequest
2 голосов
/ 19 октября 2008

Я смотрел учебник по Rails и был очень впечатлен, что вы так легко можете создать систему редактирования для класса, просто определив его.

Можно ли это сделать в ASP.NET?

Я знаю, что есть ORM, но они поставляются с системой редактирования?

Чтобы объяснить, что я имею в виду под системой редактирования, рассмотрим класс для определения людей

class Person
{
  string First_Name;
  string Last_Name
}

А потом, возможно, одним жирным ударом что-то вроде этого:

CreateEditAbleClass(Person)

В браузере вы получите следующие функции:

http://www.yart.com.au/images/orm_editor.jpg

И эта функциональность будет распространяться на все определения UML - наследование, ассоциацию, агрегацию и т. Д. Кроме того, существует простой способ добавления настраиваемой проверки и т. Д.

В настоящее время я использую DataGrids и много ручного кодирования для достижения этих результатов.

Ответы [ 5 ]

1 голос
/ 19 октября 2008

Вы можете для простых сайтов / целей, но это быстро выходит из строя, когда вы хотите сделать что-то более сложное. Например, что происходит, если вы не хотите, чтобы определенные поля были видны, что происходит, если у вас есть отношение к подмножеству определенного класса и т. Д.

Пройдя по этому пути, прежде чем я догадываюсь, что вы пришли к проблеме, поняв, что:

  1. Вы тратите много времени на создание похожих форм / списков и т. Д. Для похожих объектов.
  2. Вы хотите минимизировать это время и подумываете, можно ли автоматически создавать ваши формы.

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

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

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

1 голос
/ 19 октября 2008

Абсолютно! Строительные леса в Ruby известны как Динамические данные в ASP.NET. Скотт Хансельман говорит с Динамическими данными здесь .

Есть скриншот от Скотта Хантера, который показывает здесь . Следует отметить, что это довольно новый (все еще в бета-версии).

1 голос
/ 19 октября 2008

Вы можете сделать это с отражением. Используя рефлексию, вы можете перечислять элементы класса и, следовательно, создавать форму для редактирования членов.

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

1 голос
/ 19 октября 2008

Это называется "леса".

Это действительно зависит от того, что вы используете для своего уровня данных или ORM. Пространства сущностей , например, поставляется с генератором строительных лесов.

1 голос
/ 19 октября 2008

Конечно. Это не в моей голове, но я считаю, что вы можете подключить свой класс к компоненту ObjectDataSource, который, в свою очередь, подключится к элементу управления DetailsView . Так что это трудоемкая работа, но было бы довольно тривиально иметь метод, который создает необходимые элементы на лету и связывает их вместе.

...