Какую сетку данных использовать для проекта ASP.NET MVC2?

Я разрабатываю коммерческое приложение MVC2, для которого требуется сетка с обновлением обратного вызова в той или иной форме для поддержки более 10 000 строк. Он также должен поддерживать относительно богатый контент (значки, многострочные описания и т. д.). Хотя для этого требуются обычные функции разбиения по страницам/прокрутки/сортировки, ему не нужна поддержка группировки. Так что ничего особенного.

Коммерческие сетки, на которые я смотрел, были Component Art и Telerik, которые выглядят довольно хорошо, но могут быть немного OTT для того, что мне нужно. Они также стоят 800 и 999 долларов соответственно (1 разработчик).

Я также просмотрел jqGrid и сетку от MvcContrib. Это выглядит нормально, но для коммерческого приложения я обеспокоен тем, что это могут быть рискованные варианты, хотя они могут быть неправильными.

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

К вашему сведению, я использую EF4 и С#.


person Mark Chidlow    schedule 24.05.2010    source источник


Ответы (7)


Имею немалый опыт работы с jqGrid, сетками от DevExpress и телерика, а также с ExtJS. Безусловно, мой фаворит из всех — jqGrid. Меня не беспокоит отсутствие поддержки или уход проекта. Совсем недавно они представили переработанную сетку для использования с MVC: http://www.trirand.com/blog/?p=639

telerik и DevExpress по-своему превосходны. У моего друга были проблемы с моделью обработки событий в сетке телерика, и я столкнулся с небольшим «раздуванием html» из сетки DevExpress. У telerik есть отличная поддержка таких вещей, как изменение порядка столбцов на стороне клиента, в то время как сетка DevExpress требует для этого обратного вызова.

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

На самом деле совсем недавно мы решили переключить все сетки, используемые в нашей системе отчетности, на сетки Telerik Silverlight, которые работают лучше, чем их аналоги JavaScript.

Надеюсь, что это помогает и удачи.

person Jeff Schumacher    schedule 24.05.2010
comment
Джефф, это отличный совет, спасибо. Я кратко ознакомился с jqGrid, но теперь проведу полную оценку этого. Silverlight был бы хорош, но не вариант для этого проекта. - person Mark Chidlow; 24.05.2010

Честно говоря, вы можете разработать свой собственный с MVC довольно легко, предоставляя вам все, что вам нужно. Хотя я полагаю, что если вам нужно что-то быстрое и работающее, сетка MvcContrib отлично подойдет.

person Chris Conway    schedule 24.05.2010
comment
Спасибо, Крис. Можете ли вы указать мне направление каких-либо рекомендуемых образцов или ресурсов? - person Mark Chidlow; 24.05.2010
comment
Вы можете начать с цикла foreach, который отображает одну строку таблицы на каждой итерации. - person Richard Ev; 22.10.2010
comment
+1 за MvcContrib. Я использую его, для большинства задач сетки он будет работать просто отлично. Если вам нужна функциональность Uber, вам подойдут Telerik или DevExpress. - person Chuck Conway; 29.10.2010

взгляните на сетку данных MVC Controls Toolkit. Он выглядит довольно гибким. Это позволяет редактировать, удалять, вставлять и пейджинг. Более того, очень легко перенести изменения в БД в контроллере. Посмотрите на это здесь.

person marco    schedule 28.10.2010

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

person PeteT    schedule 24.05.2010
comment
Спасибо - лучше если сетка будет отдельным продуктом да. Однако я не вижу упоминания о MVC - или я пропустил это? - person Mark Chidlow; 24.05.2010
comment
Хорошо, я наткнулся на это: devexpress.com/Support/Center/KB /p/K18375.aspx похоже, что он поддерживает MVC2 - нужно больше читать об этом, хотя на их сайте «брошюры» нет упоминания. - person Mark Chidlow; 24.05.2010
comment
Это хороший момент. MVC — это новое дополнение к DevExpress. Я не могу сказать, что пробовал его вне веб-форм, поэтому, возможно, это не лучший выбор, если у вас нет времени поэкспериментировать с пробной версией. - person PeteT; 24.05.2010

Моя последняя попытка с компонентами для ASP.NET MC не увенчалась успехом. Гораздо сложнее иметь контроль над MVC, чем над старой школой ASP.NET.

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

В моем случае оказалось, что гораздо лучше использовать простой html и jquery для реализации пейджинга, сортировки и фильтрации для таблицы. Я бы поставил черту, если ваш сайт является общедоступным веб-сайтом (как мой) или приложением с веб-интерфейсом.

person Mathias F    schedule 24.05.2010
comment
Привет Малькольм. Я думаю, что я прошел через подобный опыт за последние несколько недель. Наше приложение представляет собой корпоративное веб-приложение среднего размера, интенсивно использующее данные, со значительным количеством относительно сложных экранов (множество элементов управления, сетка и т. д.). Я боролся с переходом с ASP.NET на MVC - не из-за архитектуры/подхода, а из-за сложности, связанной с обеспечением отличного взаимодействия с пользователем без огромных инвестиций в jQuery и связанные с ним элементы управления (на ранней стадии). Это слишком рискованно для нас, и теперь мы вернулись к веб-формам ASP.NET 4.0. Без сомнения, я вернусь к MVC! Спасибо - person Mark Chidlow; 26.05.2010
comment
Я думаю, ты сделал правильный выбор. Мой проект является общедоступным веб-сайтом, и MVC был хорошей структурой для использования. Для вашего проекта Viewstate кажется подарком небес. - person Mathias F; 26.05.2010

Мы используем сетку ExtJS в проекте ASP.NET MVC. http://www.extjs.com/deploy/dev/examples/grid/array-grid.html

person Jesper Palm    schedule 24.05.2010

Недавно я исследовал эту тему, и победителем стала jQgrid за лучшую производительность!

person VictorV    schedule 24.05.2010
comment
Да придется согласиться. jQGrid обладает множеством полезных функций, с ним легко программировать, он выглядит профессионально, и есть множество статей, которые помогут вам извлечь из него максимальную пользу. - person Peanut; 29.10.2010