Решение администрации раздела дизайна - PullRequest
0 голосов
/ 08 марта 2011

Я пишу административный компонент веб-приложения.Задачи администратора включают операции CRUD над сложным объектом.

У объекта есть много разделов, у каждого раздела много категорий, у каждой категории много подкатегорий.

Администраторы должны иметь возможность вносить изменения вОбъект на любом уровне.Например, добавление / редактирование / удаление раздела, категории или подкатегории.

Я использую MVC3 и нашел три возможных решения для создания внешнего интерфейса.

  1. Использование Razor View engine
  2. Используйте плагин шаблона jQuery для отображения списка элементов и используйте диалоговое окно JQuery UI для создания экрана создания / редактирования.
  3. Используйте jQrid для отображения данных в сетке Parent / child, а jQgrid предоставляет встроенные операции создания / редактирования / удаления.

Мне трудно решить, какой путь лучше, кто-нибудь может пролить немного света?

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

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

Шаблоны jQuery - это следующий шаг «вниз».Они по-прежнему сохраняют разумную степень разъединения между логикой приложения и представлением, но требуют гораздо большего количества внешнего кодирования, которое, вероятно, все еще должно будет поддерживаться большим количеством вызовов JsonResult, чем вы могли бы иметь в противном случае.В зависимости от того, как вы предоставляете свои данные, вы можете обнаружить, что использование шаблонов jQuery обеспечивает большую гибкость с точки зрения пользовательского интерфейса и рендеринга, чем вы могли бы иметь в противном случае.

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

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

1 голос
/ 08 марта 2011

По моему мнению, выбор между тремя способами, которые вы описываете, должен зависеть от двух дополнительных аспектов: 1) вашего ноу-хау во всех технологиях и 2) факторов времени и комфорта.Вам нужно более быстрое и грязное решение или вы хотите настроить свой бэкэнд в целом?Чем больше фактор времени важен для вас, тем больше вы должны делать свой выбор, основываясь в основном на своем текущем ноу-хау.

Я могу предложить вам еще один способ, который я лично предпочитаю.Мне нравится четко отделять данные и бизнес-интерфейс от визуализации данных на веб-сайте.Поэтому я разрабатываю сервис RESTful WFC с аутентификацией и авторизацией пользователя, который реализует всю бизнес-логику сайта.Я публикую сервис WCF как часть моего веб-сайта (подробности см. здесь ).При необходимости можно написать модульные тесты для тестирования службы WCF в качестве ядра сайта.

После того, как вы воспользуетесь услугой WCF, вы можете выбрать часть презентации своего сайта.Я лично знаю и люблю jqGrid.Он имеет множество функций, которые позволяют создавать очень удобный графический интерфейс на веб-сайте.Сетки для компонентов администратора могут иметь как поиск на панели инструментов, так и расширенный поиск.Сортировка по столбцу, изменение размера столбцов сетки, изменение порядка перетаскивания, скрытие ненужных столбцов и т. Д. Могут быть реализованы очень просто.Фильтрация данных для расширенного поиска или / и поиска по панели инструментов займет больше времени на программирование на сервере, но вы сможете использовать эту функцию во всех своих сетках.Важно, чтобы иметь возможность использовать пейджинг и фильтрацию на стороне сервера, вы должны расширить интерфейс веб-службы методами, имеющими информацию о пейджинге, сортировке и фильтрации.

Если вы решили использовать jqGrid, ваши MVC Viewsможет содержать в основном пустые таблицы и один JavaScript на сетку.JavaScript будет использовать jqGrid, который вызывает сервис WCF для заполнения сетки.В ASP.NET MVC вы в основном можете создавать меню и рабочие процессы, которые могут зависеть от пользователя (зависит от прав пользователя на сайте).

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

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