Лучшие практики для рабочего процесса веб-приложения?

Примечание: Рабочим процессом я не обращаюсь к технологии рабочего процесса, такой как основа Рабочего процесса.

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

1) Выберите из ряда опций.Подтвердить. 2) Заполните страницу с результатами. Внесите изменения.Подтвердить. 3) Сделайте что-то на основе предыдущих результатов.Подтвердить. 4) Подтвердите предыдущие действия.Подтвердить. 5) Goto 1.

Сайт электронной коммерции с корзиной был бы примером из учебника этого.

Теперь, существует любое количество способов иметь дело с этим. Мой вопрос, что рекомендуемый путь состоит в том, чтобы сделать это в asp.net? В PHP или ISAPI я просто использовал бы стандартные средства управления HTML, получил бы данные сообщения и действительно наполняю им, каждый на различной странице.

ASP.NET, кажется, более ориентирован к единственным решениям для страницы. Сделайте свою работу, обратную передачу себе, затем отобразите свои результаты на той же странице.. прохождение до конца, использование чего-то как MultiView или UpdatePanels, чтобы сделать задание. Но ключ быть, Вы не делаете обратной передачи к другой странице.

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

Как Вы обрабатываете сценарий, который я разметил выше? Вы используете мультипредставление или updatepanel и делаете все это на одной странице? Или Вы делаете это на нескольких страницах? Каковы Ваши лучшие практики в этом отношении? У Вас есть какие-либо определенные проекты, которые Вы склонны использовать? Как Вы идете о структурировании рабочего процесса сайтов?

11
задан Erik Funkenbusch 18 July 2010 в 21:18
поделиться

3 ответа

есть несколько способов сделать это (помимо нескольких view):

1, сообщение о поддержке дозы asp.net, очки Page.Request.Form [item] http://msdn.microsoft.com/en-us/magazine/cc164151.aspx # S3

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

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

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

1
ответ дан 3 December 2019 в 12:17
поделиться

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

Вы также можете посмотреть на Wizard Web Server Control , который управляет сантехникой для перехода между этапами процесса. Чтобы получить представление о том, как работает элемент управления, взгляните на Элемент управления мастера ASP.NET 2.0 .

1
ответ дан 3 December 2019 в 12:17
поделиться

Mystere Man, я прочитал ваш вопрос как вопрос о том, как мы это делаем. Для меня есть одно слово: Контекст. Держите это в контексте. Я объясню.

Вы можете создать целое веб-приложение из одной страницы, если хотите. Технически это возможно, хотя это было бы так же запутанно, как и все остальное. Я группирую свою функциональность в логические части, например "Выбор продукта". Раньше я делал отдельную страницу, группируя процесс "Оформление заказа", но сейчас я не рекомендую этого делать, поскольку моей команде приходится вклиниваться в процесс в определенных точках, например, автоматически добавлять товары в корзину и затем отображать последнюю страницу в процессе оформления заказа. (подумайте о получении бесплатной загрузки: вам не нужна информация о доставке, формировании счета или их имя). С вашим нумерованным списком выше, если это все по функциям, то я бы сделал его одной физической страницей, но я бы разбил его на несколько страниц, если окажется, что нужно "вклиниться" в поток. Если вы делаете ее на одной странице, вам нужны четкие границы.

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

С таким подходом, я думаю, паттерн MVC от ASP.NET - это то, куда мне следует двигаться.

0
ответ дан 3 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: