Разработка модульных веб-мастеров с помощью .Net 2.0 Wizard Control

У нас есть около 10 приложений, которые в основном делают одно и то же, и все они написаны с использованием Wizard Control для .Net 2.0. Поток, которому они следуют, довольно прост:

1. User selects option from a drop downs.
2. Next page has more options more narrowed.
3. User sees confirmation page.
4. Report is generated.

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

Я пытаюсь объединить эти приложения, но я не уверен, что подхожу к этому правильно. Мое первое желание состоит в том, чтобы создать таблицы конфигурации в SQL для управления появляющимися меню. Так, например, может быть таблица с WizardId, Name, Theme и т. д., а также таблица шагов и еще одна таблица, чтобы связать все вместе.

Есть ли более простой способ приблизиться к этому, который мне просто не хватает?


person wonderchook    schedule 07.11.2008    source источник


Ответы (1)


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

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

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

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

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

person Austin    schedule 10.11.2008