Разработка модульных веб-мастеров с использованием мастера управления .Net 2.0 - PullRequest
3 голосов
/ 08 ноября 2008

У нас около 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 и т. Д., А также таблица шагов и другая таблица для связывания всего воедино.

Есть ли более простой способ приблизиться к этому, которого я просто пропускаю?

1 Ответ

0 голосов
/ 10 ноября 2008

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

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

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

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

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

...