Кто на самом деле использует DataGrid / GridView / FormView / etc в производственных приложениях?

Любопытно, если другие чувствуют то же самое, что и я. Для меня, такие элементы управления, как datagrid / gridview / formview / etc. отлично подходят для презентаций или только для демонстрации. Чтобы потратить время и настроить эти элементы управления, переопределить их поведение по умолчанию (привязка к их глупым событиям и т. Д.) - большая головная боль. Единственный элемент управления, который я использую, - это повторитель, поскольку он предлагает мне наибольшую гибкость по сравнению с остальными.

Короче говоря, они в значительной степени вздор.

Я предпочел бы сплести свой собственный html / css, использовать свои собственные пользовательские пейджинговые запросы.

Опять же, если вам нужно быстро открыть страницу, эти элементы управления хороши (особенно если вы пытаетесь убедить людей в простоте .NETразработки).

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

19.08.2008 21:09:30
Все элементы управления asp.net похожи на это. Ужасные и чрезвычайно странные абстракции вокруг того, что должно быть очень простым взаимодействием HTML и JS. Дитч их для регулярного счастливого языка шаблонов. Я не знаю, почему люди добровольно используют вещи, которые наносят ущерб их вариантам развития и имеют безумные крайние проблемы.
Andy Ray 11.10.2012 07:23:13
26 ОТВЕТОВ

Мне очень нравится Telerik Radgrid. Их продукт не дешевый, но вы получаете множество элементов управления и функций. И поддержка связывания данных довольно хороша, как с помощью простого способа привязки источника данных asp.net, так и с помощью более настраиваемого способа обработки событий, связанных с вашими собственными данными.

2
19.08.2008 21:11:47

Я в основном пишу свой собственный HTML - я использую ListView и Masterpages, но больше не пользуюсь элементами управления. Кстати, мой ListView смеется над твоим старым глупым повторителем.

Тем не менее, раздувание не обязательно плохо. Если бы мне нужно было создать приложение для интранета с небольшим объемом, я бы скорее заплатил менее опытному разработчику за перетаскивание элементов управления, чем за твиддлер HTML (как вы или я) для создания каждого тега. Там определенно есть место для быстрого и простого подхода. Какова стоимость «раздутого ПО» в этом сценарии, если код, основанный на элементах управления, написан в поддерживаемом виде? Зачастую для подключения элементов управления требуется меньше специального кода, что означает простоту обслуживания.

Единственное, с чем я не согласен - практически независимо от приложения - это создание собственных пейджинговых запросов. Возможно, вам нравится делать такие вещи, но в этом нет абсолютно никакой коммерческой ценности. Существует несколько инструментов DAL профессионального уровня, которые обычно пишут более удобные и быстрые запросы, чем большинство разработчиков. Даже если вы с любовью создадите идеальный пейджинговый запрос, он не будет в курсе изменений в схеме, пока вы не продолжите бросать часы после него. Я думаю, что лучше использовать эти часы, чтобы создать легковесную систему и использовать эти часы для мониторинга и устранения определенных узких мест, вместо того, чтобы сразу переходить к слою «язык ассемблера баз данных».

17
19.08.2008 21:17:42

Я на самом деле широко использовал GridView для административной консоли. Я даже создал пользовательский DataFieldControl, который задает текст заголовка поля и сортирует выражение на основе поля данных, создает строку «Вставка» внизу, автоматически собирает значения в строке и перенаправляет их в метод вставки источника данных, а также генерирует окно списка. если указан дополнительный источник данных списка. Это было действительно полезно, хотя огромные затраты времени на строительство.

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

<asp:GridView ...>
 <Columns>
       <my:AutoField HeaderText="Type" 
                      DataField="TypeId"
                      ListDataSourceID="TypesDataSource"
                      ListDataTextField="TypeName" />          
  </Columns>

    <EmptyDataTemplate>
        <my:AutoEmptyData runat="server" />
    </EmptyDataTemplate>

</asp:GridView>
3
19.08.2008 21:18:22
Я очень заинтересован в GridView, который вы описали здесь, где вы добавили пользовательское выражение сортировки в заголовок. Вы в состоянии поделиться своим кодом?
Julius A 7.08.2009 13:51:08

В моей компании мы используем сетки везде, в основном это ComponentArt Grid ( http://www.componentart.com/ ). Да, это раздутая программа, но вы получаете много функциональности, которую было бы не очень интересно изобретать заново: сортировка, разбиение по страницам, группировка, изменение порядка столбцов, встроенное редактирование, создание шаблонов (на стороне сервера и на стороне клиента). Клиентские API тоже хороши.

2
19.08.2008 23:53:14

Я читал ваши посты, ребята, и это заставило меня чувствовать себя глупым.

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

Конечно, я считаю, что datagrid / gridview довольно раздутый, но так ли это отвратительно ?

15
7.03.2009 03:30:24
Не чувствуй себя глупым Тонны людей используют их. Они полезны, и с ними можно делать изящные вещи.
achinda99 4.03.2009 21:46:45

Любой, кто думает, что никто не использует * Grid, явно никогда не работал во внутреннем корпоративном веб-приложении.

49
20.08.2008 01:19:21
Я согласен ... в средах, где вы управляете пользовательской базой, имеете большой объем дискового пространства, большую пропускную способность и мощные серверы, вы часто можете воспользоваться некоторыми стандартными элементами управления asp.net для быстрой разработки.
mattruma 17.10.2008 14:23:48
согласившись, подумав об этой теме, я не мог понять, почему ненавидят сетку. Я широко использовал его во внешних приложениях, и это было здорово. Есть много событий, которые вы можете легко подключить (rowUpdating, rowEditing) и т. Д.
Dal 26.07.2010 07:47:35

Мне нравится элемент управления GridView, и я использовал его в нескольких пользовательских модулях DotNetNuke для веб-сайта моей компании. Во-первых, использование встроенных элементов управления означает меньше беспокойств по поводу зависимостей. И как только я настроил его так, как я хотел, я в основном скопировал код на другие страницы, и мне просто пришлось сделать небольшие изменения.

Я обнаружил, что с современными элементами управления сеткой (Infragistics, Telerik и т. Д.) Существует так много вариантов, что настройка сетки занимает больше времени, чем что-либо еще. Средства управления MS довольно просты, но они могут делать практически все что угодно.

2
20.08.2008 02:00:51

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

2
20.08.2008 02:38:46

Каждое приложение, которое мы разрабатываем в моей компании, имеет сетку (все приложения находятся за брандмауэром). Это включает как веб-приложения, так и приложения Winform. Для веб-приложений это хороший старый вид сетки с пользовательской сортировкой для приложений winform, которые мы используем сетку Janus. Я пытаюсь заставить разработчиков / пользователей думать о лучших пользовательских интерфейсах, но это сложно изменить. Я должен признать, что это все еще лучше, чем альтернатива пользователей, создающих свои "собственные" приложения с помощью Access, которые мне тогда нужно будет поддерживать!

4
20.08.2008 02:42:26

Использование элементов управления, таких как GridView, отлично подходит для простых приложений. Даже если вы серверный HTML-ниндзя, он может сделать разработку простых вещей намного менее трудоемкой. Проблема в том, что они обычно начинают со временем обнаруживать свои недостатки, и в конечном итоге вам приходится тратить время на их настройку. Но, по крайней мере, вы можете быстро встать и начать.

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

В любом случае, дело в том, что готовые компоненты хороши . Они помогают. Но, как обычно, это зависит от того, что вам нужно сделать.

4
20.08.2008 03:24:46

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

1
23.08.2008 16:28:07

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

Однако встроенная функциональность подкачки и сортировки работает хорошо, и в 2008 году появился новый элемент управления ListView, который нацелен на решение некоторых из этих проблем и более жесткий контроль над выводимым html.

1
23.08.2008 17:07:07

Я задавался вопросом об этом в течение длительного времени. Здесь, кажется, существует консенсус в отношении того, что элементы управления сеткой являются вредоносными программами. Но может ли кто-нибудь окончательно назвать стоимость использования этих элементов управления? Чрезмерный HTML отправляется в браузер? Слишком много ресурсов пожирается на сервере? Быстрее ли генерируется таблица HTML (при условии, что она хорошо написана)?

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

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

Без сомнения об этом, все же. Трудно превзойти причудливые элементы управления сеткой для быстрой разработки, если вы можете просто жить в рамках их ограничений.

1
17.10.2008 14:20:38

Для моих корпоративных проектов в интранете сетки являются обязательными. Они являются основой для удобной отчетности на платформе веб-форм ASP.NET.

Простота дизайна Вставьте сетку на страницу. Вставьте объекты BoundField для простой привязки. asp:HyperlinkField для легкой ссылки.

переплет

Вы можете связать сетки несколькими способами:

  • совокупность объектов ( List, ArrayList, Hashtable, или любой набор простых)
  • SqlDataReader в вашем коде (да, это потребовало бы SQL на вашем уровне представления)
  • SqlDataSource(укажите сохраненный процесс. Все столбцы в наборе результатов сопоставляются непосредственно со столбцами сетки. Это очень быстро и грязно, если отчет плохо имитирует объект вашего домена. То есть суммирование разных вещей.)
  • objectDataSource (привязка к методу вашего BL)

Для тех, кто может кричать SqlDataSourceи ObjectDataSource, вам не всегда нужно объявлять их в ваших .aspx.cs или .aspx.vb. Я не защищаю их здесь, просто указываю на возможности.

Я не думаю, что вы можете сбрасывать со счетов преимущества RAD встроенного GridView и других сторонних сетей. Типы управления любят и хотят табличные данные.

2
30.07.2009 13:50:34

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

Если вы приближаетесь к DataGrids или GridViews с 10-футовым шестом на общедоступном веб-сайте, тогда вы ДОЛЖНЫ использовать дружественные к CSS адаптеры управления. (В этот момент вам может оказаться проще сделать это в повторителе.) До появления адаптеров управления я бы считал эти элементы управления нестандартными.

Я считаю, что слишком многие разработчики .NET не имеют хорошего понимания дизайна, доступности, CSS, javascript, стандартов и т. Д., Поэтому они уступают GridViews, ObjectDataSources и т. Д.

1
12.11.2008 13:09:02

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

GridViews в UpdatePanel с AJAX CRUD и нумерацией страниц работают молниеносно. Одна из более крупных систем, настроенных таким образом (для внутреннего / внешнего применения), имеет небольшую базу данных в бэкэнде. Существует много полей nvarchar (2000), и переходы и обновления великолепны.

В любом случае, если вы написали свою собственную версию отображения данных, вы можете продолжить использовать ее, если она работает. (Можно привести такой же аргумент в пользу написания собственного компилятора, написания собственной версии HTML, написания собственной версии двоичных файлов доступа к данным ...) Преимущество использования GridView состоит в том, что есть много людей, которые знакомы с ним и что MSFT абстрагировал / смоделировал класс, чтобы сделать много вещей, которые мы обычно делали вручную.

13
12.11.2008 13:20:32

GridView - это прекрасный и очень мощный элемент управления, который хорошо работает с CSS или темами. Единственное, что меня раздражает, это то, что свойство VirtualCount было удалено, когда старый DataGrid 1.1 был заменен на GridView в asp.net 2.0, и это было полезно для реализации пользовательской подкачки страниц. Однако то же самое можно сделать через адаптеры данных.
Хотя работа с повторителями, возможно, более понятна, и вы имеете полный контроль над отображаемым html, я бы не советовал идти по этому пути, потому что его сложнее реализовать и поддерживать.

1
12.11.2008 13:31:06

Мы используем Infragistics UltraWebGrid + LinqDataSource в наших приложениях для внутренней сети.

Это дает нам ajax, сортировку, фильтрацию, пейджинг на всю серверную часть.

«Экспорт в Excel» также является убийственной функцией.

У нас более 5000 пользователей, много данных, отличная производительность.

2
12.11.2008 13:44:06

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

0
23.11.2008 01:27:00

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

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

Исключение составляют аналитические приложения. Но их относительно немного, и они в основном доступны только для чтения.

2
23.11.2008 02:57:39

Я также хотел бы видеть расширенный ответ о том, почему GridView и др. Считаются «раздутым ПО». Я широко использовал GridView, а также сторонние продукты (Telerik и т. Д.) И обнаружил, что для большинства внутренних и некоторых внешних проектов они отлично работают. Они быстрые, простые в использовании, настраиваемые - и ЛУЧШИЕ - я могу передать их кому-то, кто знает GridViews, который затем может легко подобрать то, где я остановился. Если бы я должен был вручную написать код для всех многочисленных приложений / элементов управления, затраты следующего человека, выясняющего, что происходит, были бы огромными даже в самых лучших обстоятельствах.

Для меня я вижу, что некоторые из сторонних продуктов являются раздутыми (но все же иногда полезными), но простой GridView, как я обнаружил, довольно быстр с умеренными запросами.

2
4.03.2009 21:43:28

Я пытаюсь посмотреть на все это в контексте. У меня есть страница, которая имеет хороший вид сетки (отображает 10 строк за раз, 6 столбцов, сортировка и разбиение на страницы), и если я просто смотрю на HTML-таблицу, которая создается вместе с viewstate, я вижу только 29k кода ,

Стоит ли 29К против 18К для использования ретранслятора или списка просмотра действительно стоит всех усилий в эти широкополосные времена?

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

0
5.03.2009 18:20:06

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

В настоящее время я работаю с Silverlight 3 и RIA Services и не могу представить, что пытаюсь создать то, что мы делаем, без элементов управления DataGrid и DataForm. Экономия времени значительно перевешивает любые накладные расходы.

1
30.07.2009 14:03:24

Компоненты, такие как GridView / FormView / DataGrid, следуют правилу 80/20.

Это означает, что в 80% случаев, когда вы используете их для простых целей, они выполняют свою работу и чрезвычайно просты в реализации.

Но в 20% случаев вы будете пытаться создать что-то сложное (или странное), и вам придется прыгать через дюжину обручей и разными способами изгибать код, пытаясь реализовать решение.

Хитрость заключается в том, чтобы узнать, является ли проблема проблемой 80 или 20, если вы можете определить проблему 20 на ранней стадии, вам гораздо лучше писать код с нуля и отказаться от «экономии времени».

2
9.03.2010 17:40:50

Я широко их использую в корпоративной среде, в которой я работаю, и сейчас я работаю с ней. Люди, которые их не используют, напоминают мне обо всех тех разработчиках «Я построил это с помощью Блокнота» прошлых лет. Какой смысл использовать asp.net, если вы не собираетесь использовать экономию времени?

2
16.07.2010 19:04:38

Просто читаю ваши посты. Я согласен, что PHP легче, чем asp. но я только начал использовать визуальную студию для просмотра формы и сетки. Не может быть намного проще для программистов VB или C #. ASP по-прежнему имеет проблемы с загрузкой больших файлов. PHP это совсем несложно. Я запускаю PHP под IIS 7.5

0
11.10.2012 07:06:29