2008-08-19 11 views
9

Curioso si los demás sienten lo mismo que yo. Para mí, controles como datagrid/gridview/formview/etc. son excelentes para presentaciones o demostraciones solamente. Tomarse el tiempo y ajustar estos controles, anular su comportamiento predeterminado (conectar sus tontos eventos, etc.) es un gran dolor de cabeza. El único control que uso es el repetidor, ya que me ofrece la mayor flexibilidad sobre los demás.¿Quién realmente usa DataGrid/GridView/FormView/etc en aplicaciones de producción?

En resumen, son bastante bloatware.

Prefiero tejer mi propio html/css, usar mis propias consultas personalizadas de paginación.

De nuevo, si necesita lanzar una página rápida estos controles son geniales (especialmente si está tratando de atraer a la gente a la facilidad de desarrollo .NET).

yo debía estar en la minoría, de lo contrario no habría MS dedicado tanto tiempo de desarrollo de este tipo de controles ...

+0

Todos los controles de asp.net son así. Abstracciones horribles y extremadamente extrañas en torno a lo que debería ser una interacción HTML y JS muy simple. Elimínalos por un lenguaje de plantillas feliz y regular. No sé por qué las personas usan voluntariamente cosas que paralizan sus opciones de desarrollo y tienen problemas de casos extremos. –

Respuesta

2

me gusta mucho el RadGrid telerik. Su producto no es barato, pero obtienes muchos controles y características. Y el soporte de enlace de datos es bastante bueno, tanto en una forma simple de enlace de fuente de datos asp.net como en una forma más personalizada de manejar su propio enlace de datos.

17

Escribo mi propio código HTML - Estoy usando ListView y Masterpages, pero ya no uso mucho los controles. Mi ListView se ríe de tu viejo y tonto repetidor, por cierto.

Sin embargo, bloatware no es necesariamente algo malo. Si necesitaba una aplicación de intranet de bajo volumen, prefiero pagar a un desarrollador menos experimentado para que arrastre y suelte los controles que para un twiddler HTML (como tú o yo) para crear cada etiqueta. Definitivamente hay un lugar para el enfoque rápido y simple. ¿Cuál es el costo de "bloatware" en ese escenario, siempre y cuando el código basado en el control esté escrito de manera mantenible? A menudo, los controles de cableado juntos requieren menos código personalizado, lo que significa un mantenimiento simple.

El único lugar en el que tengo que estar en desacuerdo contigo, más o menos independientemente de la aplicación, es crear tus propias consultas de paginación. Es posible que desee hacer ese tipo de cosas, pero no tiene absolutamente ningún valor comercial. Hay varias herramientas DAL de nivel profesional que generalmente escribirán consultas más rápidas y fáciles de mantener que la mayoría de los desarrolladores. Incluso si elabora con amor la consulta de búsqueda perfecta, no se mantendrá actualizado con los cambios en el esquema a menos que continúe lanzando horas después. Creo que un mejor uso de esas horas es construir un sistema liviano y poner esas horas en el monitoreo y la reparación de cuellos de botella específicos, en lugar de saltar de inmediato al nivel de "lenguaje de ensamblaje de la base de datos".

3

De hecho, he usado GridView extensamente para una consola administrativa. Incluso creé un DataFieldControl personalizado que establece el texto del encabezado del campo y ordena la expresión según el campo de datos, crea una fila Insertar en la parte inferior y automáticamente recoge los valores en la fila y los reenvía al método de inserción de la fuente de datos y genera un cuadro de lista si se especifica una fuente de datos de lista adicional. Ha sido muy útil, aunque una gran inversión de tiempo para construir.

También tengo otro control que generará un nuevo formulario de datos basado en los metadatos de los campos cuando no haya registros (en EmptyDataTemplate).

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

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

</asp:GridView> 
+0

Estoy muy interesado en el GridView que ha descrito aquí donde ha agregado expresiones de ordenación personalizadas en el encabezado. ¿Estás en posición de compartir tu código? –

2

En mi empresa usamos rejillas en todas partes, sobre todo ComponentArt cuadrícula (http://www.componentart.com/).Sí, es bloatware pero obtienes mucha funcionalidad que no sería muy divertido reinventar: clasificación, paginación, agrupación, reordenamiento de columnas, edición en línea, creación de plantillas (del lado del servidor y del lado del cliente). Las API del lado del cliente también son agradables.

15

He estado leyendo sus mensajes chicos y me hizo sentir tonto.

Quiero decir en cada aplicación que hice donde trabajo hay al menos una cuadrícula de datos/vista de cuadrícula en ella. Y no tenía la sensación de que me estaba perdiendo algo.

Claro que encuentro grid/datos gridg un poco hinchado, pero ¿son eso mucho repugnante para usar?

+3

No se sienta tonto. Toneladas de personas los usan. Son útiles y es posible hacer cosas bastante ingeniosas con ellos. – achinda99

49

Cualquiera que piense que nadie usa * Los controles de cuadrícula claramente nunca funcionó en una aplicación web corporativa interna.

+5

Acepto ... en entornos donde controla la base de usuarios, tiene grandes cantidades de espacio en disco, gran ancho de banda y servidores potentes, a menudo puede beneficiarse del uso de algunos de los controles asp.net estándar para desarrollarse rápidamente. – mattruma

+2

de acuerdo, al reflexionar sobre este hilo no pude entender por qué había odio por una vista de cuadrícula. Lo he usado extensamente en aplicaciones externas y ha sido genial. Hay muchos eventos en los que puede acceder fácilmente (rowUpdating, rowEditing), etc. – Dal

2

Me gusta el control GridView y lo he usado en varios módulos DotNetNuke personalizados para el sitio web de mi compañía. Por un lado, usar los controles integrados significa menos dependencias de las que preocuparse. Y una vez que lo configuré como lo quería, básicamente copié el código en otras páginas y solo tuve que hacer ajustes menores.

He encontrado que hay tantas opciones con los modernos controles de cuadrícula (Infragistics, Telerik, etc.) que lleva más tiempo configurar la grilla que cualquier otra cosa. Los controles de MS son bastante simples, pero pueden hacer casi cualquier cosa.

2

Son uno de los beneficios de asp.net. Hasta hace poco los odiaba, pero cuanto más los utilizas, más fáciles se vuelven, una vez que aprendes qué configuración debes cambiar para qué instancias. Principalmente me gusta la vista de formulario y la vista de lista, la vista de cuadrícula todavía necesita algo de trabajo.

4

Cada aplicación que desarrollamos en mi empresa tiene cuadrículas (todas las aplicaciones están detrás del firewall). Eso incluye aplicaciones web y aplicaciones de Winform. Para las aplicaciones web, es la buena vista de grid de ole con clasificación personalizada para las aplicaciones winform que utilizamos Janus grid. Estoy tratando de hacer que los desarrolladores/usuarios piensen en mejores interfaces de usuario, pero es difícil de cambiar. ¡Debo admitir que es aún mejor que la alternativa de que los usuarios construyan sus "propias" aplicaciones con Access que yo necesitaría entonces!

4

El uso de controles como el GridView es ideal para aplicaciones simples. Incluso si eres un ninja del twiterdling del corchete HTML del lado del servidor, pueden hacer que el desarrollo de cosas simples consuma menos tiempo. El problema es que generalmente comienzan a exponer sus deficiencias eventualmente, y terminas teniendo que perder tiempo ajustándolos de todos modos. Pero al menos puede levantarse y ponerse en marcha rápidamente para comenzar. Por ejemplo, la paginación predeterminada en un GridView no soporta paginación en la base de datos (usted tiene que cargar todas las filas antes de que las pagine), así que una vez que comience a sentir ese pellizco en el rendimiento, es posible que necesite pensar en rodar el suyo o, quizás mejor, encontrar un control de red más capaz.

De todos modos, el punto es que los componentes preconstruidos son buenos. Ellos ayudan. Pero, como de costumbre, depende de lo que necesite que haga.

1

Nunca lo he usado. Estoy completamente de acuerdo, es bloatware. Suelo terminar usando el repetidor con controles personalizados que hice.

1

Para cualquier cosa a largo plazo, trataría de evitar la cuadrícula de datos/gridview, a veces se vuelve demasiado hacky haciendo exactamente lo que quiere, después de un cierto número de estos ajustes, comienza a darse cuenta de que no ahorra tiempo y es posible que no obtenga el control sobre el marcado que necesita.

Sin embargo, la función integrada de paginación y clasificación funciona bien y en 2008 hay un nuevo control ListView que tiene como objetivo resolver algunos de estos problemas y proporcionarle un control más estricto del html que se genera.

1

Me he preguntado sobre esto durante mucho tiempo. Parece que hay un consenso aquí en cuanto a que los controles de cuadrícula son bloatware. Pero, ¿alguien puede citar definitivamente el costo de usar estos controles? ¿Hay un HTML excesivo enviado al navegador? Demasiado recurso devorado en el servidor? ¿Está generando la tabla HTML más rápido (suponiendo que esté bien escrita)?

Además del problema de bloatware, a menudo he enloquecido cuando los requisitos de UI se han mejorado para incluir funciones que van más allá del alcance de los controles estándar. Por ejemplo, en las primeras versiones de ASP.Net, tuve problemas para poner imágenes en los encabezados de las columnas. Y, creo que sigue siendo un desafío agregar una segunda fila de encabezado de nivel superior que abarca varias columnas. En algún momento, se vuelve realmente difícil luchar con el control para lograr el efecto deseado. Y es frustrante si conoces el HTML que deseas, pero simplemente no puedes hacer que el control lo haga.

En un proyecto, finalmente me rendí y escribí una clase de tabla HTML para generar una grilla muy complicada. Me tomó un par de días para hacerlo bien. Pero, ahora tengo el código básico, y será mucho más eficiente ajustarlo para futuras grillas.

Sin duda, sin embargo. Es difícil superar los sofisticados controles de cuadrícula para un desarrollo rápido, si puedes vivir dentro de sus limitaciones.

2

Para mis proyectos corporativos de intranet, las redes son indispensables. Son la base para generar informes fácilmente en la plataforma de formularios web de ASP.NET.

Fácil de diseñar Pegue la cuadrícula en la página. Inserte objetos BoundField para un enlace simple. asp:HyperlinkField para un fácil enlace.

Encuadernación

puede enlazar las redes en un puñado de maneras:

  • una colección de objetos (List, ArrayList, Hashtable, o cualquier colección sencilla)
  • SqlDataReader en su código subyacente (por ejemplo, eso requeriría SQL en su nivel de presentación)
  • SqlDataSource (especifique un procedimiento almacenado Todas las columnas en el mapa de resultados dire ctly a las columnas de la grilla. Es muy muy rápido y sucio si el informe no imita muy bien el objeto de tu dominio. es decir, sumas de diferentes cosas.)
  • ObjectDataSource (que se unen a un método en su BL)

Para aquellos que pudieran llamar a SqlDataSource y ObjectDataSource, que no siempre tienen que tener los declararon en su .aspx .cs o .aspx.vb. No los defiendo aquí, solo señalando las posibilidades.

No creo que pueda descontar los beneficios de RAD del GridView incorporado y otras cuadrículas de terceros. Los tipos de gestión adoran y desean datos tabulares.

1

Si trabajas mucho con diseñadores en sitios web públicos, entonces debes abandonar los GridViews y mantener los repetidores.Esa es mi opinión de todos modos: he tenido que separar cientos de GridViews y convertirlos en repetidores simples para cumplir con los requisitos de diseño.

Si se acerca a DataGrids o GridViews con un poste de 10 pies en un sitio web público, entonces TIENE que usar los adaptadores de control compatibles con CSS. (En este punto, puede que le resulte más fácil simplemente hacerlo en el repetidor). Antes de que los adaptadores de control estuvieran disponibles, habría considerado estos controles fuera de la caja.

me parece que demasiados desarrolladores .NET no tienen una buena comprensión del diseño, la accesibilidad, CSS, Javascript, normas, etc., que es por eso que sucumben a GridViews, etc. ObjectDataSources

13

creo que se necesita aprenda a usar GridViews antes de condenarlos. Los uso extensivamente. Al principio era un poco difícil descubrir ciertas cosas, pero ahora son indispensables.

GridViews dentro de UpdatePanel con AJAX CRUD y la paginación son muy rápidas. Uno de los sistemas más grandes configurados de esta manera (para aplicaciones internas/externas) tiene un db de tamaño moderado en el back-end. Hay muchos campos nvarchar (2000) y las transiciones y actualizaciones son geniales.

En cualquier caso, si ha escrito su propia versión de visualización de datos, puede seguir utilizándola si funciona. (Se podría hacer el mismo argumento para escribir su propio compilador, escribir su propia versión de HTML, escribir su propia versión de binarios de acceso a datos ...) La ventaja de usar GridView es que hay muchas personas que están familiarizadas con él y que MSFT ha abstraído/modelado la clase para hacer muchas cosas que solíamos hacer manualmente.

1

GridView es un control fino y muy potente que funciona bien con css o theme. Lo único que me molesta es que la propiedad VirtualCount se eliminó cuando el antiguo 1.1 DataGrid fue reemplazado por GridView en asp.net 2.0 y fue útil para implementar paginación personalizada. Sin embargo, lo mismo se puede hacer a través de adaptadores de datos.
Aunque trabajar con repetidores es quizás más claro y tienes un control total sobre el html renderizado, no recomendaría seguir así porque es más difícil de implementar y mantener.

2

Usamos Infragistics UltraWebGrid + LinqDataSource en nuestras aplicaciones de intranet.

Nos da ajax, clasificación, filtrado, paginación todo el lado del servidor.

La "exportación a Excel" también es una característica decisiva.

Tenemos más de 5000 usuarios, muchos datos, el rendimiento es excelente.

0

soy un desarrollador de nivel moderado que puedo decir sin estos controles que nunca pude aprender a desarrollar. Simplemente tiene que admitirlo por un tiempo hasta que encuentre la manera de personalizarlo y el resultado final será genial

2

En gran medida abandoné las grillas una vez que comencé a diseñar a partir de historias de usuario, en lugar de los requisitos de la tabla de la base de datos. Y nunca rejillas editables. La vieja era simplemente cómo coaccionaba a los usuarios a hacer el mantenimiento de entrada/tabla de datos para nuestros sistemas, y nunca coincidía con su flujo de trabajo: cualquier trabajo real terminaba saltando de un formulario maestro/secundario a otro.

Y los usuarios nunca lo descubrieron, pero seguramente sabían que nuestras aplicaciones eran más difíciles de usar de lo que deberían ser.

Una excepción son las aplicaciones analíticas. Pero hay relativamente pocos de ellos, y son principalmente de solo lectura.

2

También me gustaría ver una respuesta ampliada sobre por qué GridView y otros se consideran "bloatware". He utilizado ampliamente GridView, así como productos de terceros (Telerik, etc.) y encuentro que para la mayoría de los proyectos internos y algunos externos, funcionan muy bien. Son rápidos, fáciles de usar, personalizables y MEJOR - Puedo entregárselos a alguien que conozca GridViews y que luego puedan retomar fácilmente donde lo dejé. Si tuviera que codificar manualmente todas las aplicaciones/controles, la sobrecarga de la próxima persona que averigüe qué está pasando sería enorme incluso en las mejores circunstancias.

Para mí, puedo ver que algunos de los productos de terceros son bloatware (pero a veces son útiles), pero el escueto GridView he encontrado que es bastante rápido con consultas moderadas.

0

Estoy tratando de verlo todo en contexto. Tengo una página que tiene una buena vista de cuadrícula (muestra 10 filas a la vez, 6 columnas, clasificación y paginación) y si solo miro la tabla html que se crea junto con viewstate, solo estoy viendo 29k de código .

¿Vale la pena el esfuerzo en estos tiempos de banda ancha 29k vs. 18k para usar un repetidor o lista de lista?

Personalmente me quedo con las vistas de la red, sin embargo, el chico del diseño con el que trabajo a veces se resiste a tratar de darle estilo a través de CSS.

1

Nunca utilicé la grilla estándar de WinForms antes, pero en mi último trabajo utilizamos ComponentOne FlexGrid extensivamente y funcionó muy bien. Todavía había algunas molestias al tratar de obtener toda la personalización que queríamos, pero en general nos ahorró muchísimo tiempo y produjimos hermosos resultados.

Actualmente estoy trabajando con Silverlight 3 y RIA Services y no me puedo imaginar tratando de producir lo que estamos haciendo sin los controles DataGrid y DataForm. El tiempo que se ahorra supera con creces cualquiera de los gastos generales.

1

Los componentes como el GridView/FormView/DataGrid siguen la regla 80/20.

Esto significa que el 80% de las veces cuando los usa para fines simples, hacen el trabajo y son extremadamente fáciles de implementar.

Pero el 20% del tiempo intentarás construir algo complejo (o raro) y te verás obligado a saltar por una docena de aros y doblar el código de muchas maneras para tratar de implementar una solución.

El truco está en saber si el problema es un problema 80 o 20, si puede identificar el problema temprano, es mejor escribir el código desde cero y abandonar el que ahorra tiempo.

2

Los uso ampliamente en el entorno corporativo en el que trabajo y ahora estoy trabajando con uno. Las personas que no los usan me recuerdan a todos los desarrolladores de "Lo construí con el Bloc de notas" de años pasados. ¿De qué sirve utilizar asp.net si no va a aprovechar el ahorro de tiempo?

0

Solo leyendo sus publicaciones. Estoy de acuerdo en que PHP es más fácil que asp. pero acabo de empezar a usar Visual Studio para las vistas de formulario y las vistas de cuadrícula. No puede ser mucho más fácil para los programadores vb o C#. ASP todavía tiene problemas para cargar archivos de gran tamaño. PHP es muy fácil. Ejecuto PHP bajo IIS 7.5

Cuestiones relacionadas