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

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

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

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

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

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

Ответы [ 26 ]

49 голосов
/ 20 августа 2008

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

17 голосов
/ 20 августа 2008

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

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

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

15 голосов
/ 20 августа 2008

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

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

Конечно, я нахожу, что сетка данных / сетка выглядит раздутой, но разве они настолько ужасны?

13 голосов
/ 12 ноября 2008

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

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

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

4 голосов
/ 20 августа 2008

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

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

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

4 голосов
/ 20 августа 2008

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

3 голосов
/ 20 августа 2008

Я на самом деле широко использовал 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>
2 голосов
/ 20 августа 2008

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

2 голосов
/ 20 августа 2008

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

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

2 голосов
/ 20 августа 2008

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

...