шаблоны для использования при создании сложных веб-интерфейсов - PullRequest
2 голосов
/ 24 июня 2010

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

  • Если A = 1, показать элементы управления B, C, D. B требуется, C нет, а D нет требуется должно быть менее 30, если оно заселено.

  • Если A = 2, показать элементы управления B, D, E. B не требуется, D требуется, но имеет без ограничений и E не требуется.

  • Если B не ноль, показать элементы управления B, D, E. B не требуется, D требуется, но имеет без ограничений и E не требуется.

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

Мне кажется, у меня нет выбора, кроме как построить 2 очень похожие иерархии классов:

  1. тот, который будет захватывать бизнес-правила представления (т. Е. Какие поля видны) и управлять тем, что отображается в представлении
  2. тот, который будет захватывать бизнес-правила домена (когда поле A = X, тогда поле B должно быть не нулевым и находится в диапазоне от n до m), чтобы запретить сохранение объектов с недопустимым состоянием

У меня гораздо больше вопросов, чем ответов на мою стратегию продвижения вперед. Есть ли набор шаблонов проектирования, которые я могу использовать для создания такого динамического интерфейса? У меня есть возможность использовать ASP.NET MVC или WebForms, так что какой бы подход не создавал более чистый тестируемый код, он предпочтителен.

1 Ответ

0 голосов
/ 25 июня 2010

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

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

После того, как выбор сделан, вы можете вернуть частичное представление и заменить содержимое div возвращенным html.

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

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

затем вы используете jquery для контроля ввода и применения новых правил.

также попытайтесь мыслить RESTfulесли это вообще возможно.

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