Si todos los derechos son reservados, ¿no son todos los zurdos habladores?

Porqué no me gusta Dynamic Data (ni nada que se base en Dynamic Data) | www.orsalis.com

Porqué no me gusta Dynamic Data (ni nada que se base en Dynamic Data)

legendaryentrada publicada por legendary el 25/03/2010 a las 20:48
última actualización: 29/03/2010 a las 23:50 (3 comentarios, vista 241 veces)
categorías: Tecnologia, Internet
valoración: 2 - mala (2 votos)

logo



Supongo que muchos ya sabréis lo que es Dynamic Data. Para aquellos que no:

Dynamic Data es, además de una mierda como una casa de doce pisos, una tecnología relacionada con ASP.NET.

Esta tecnología se puede utilizar con LINQ2SQL o con ADO.NET Entity Model.

Consiste en una idea muy buena en un principio: Para abstraer la base de datos (Modelo) del core de la aplicación, utilizamos un ORM (como los mencionados arriba) y, vía Reflection, autogeneramos las pantallas de gestión de datos.

Para dotar de cierta flexibilidad al asunto (pues a nadie se le escapa que es de gilipollas pensar que algo tan simple puede funcionar sin problemas), mediante una extensión del modelo original (es decir, haciendo a mano lo que se supone que ya nos hace el ORM), podemos especificar el tipo de campo que queremos usar, tirando de plantillas predefinidas. Una vez más, una buenísima idea.

Las relaciones, si están bien hechas en el modelo, se gestionan automáticamente, y aparecen combos con el campo que indiquemos (otra vez en la extensión del modelo original) como campo descriptivo en la tabla relacionada.

¿Y por qué, si las ideas tras la tecnología son tan buenas, es una mierda el producto final?

Por lo mismo que Java fue una mierda durante años y años: Está adelantada a su tiempo. Está adelantada a su tiempo, y por tanto hay demasiadas cosas que no se pueden hacer por las carencias en el resto de tecnologías.

¿Esto es tan malo? No. No, si no se saca del tiesto a la tecnología.

Java fue una mierda por estar adelantado a su tiempo, pero sólo porque existían carencias importantes que no pertenecían al ámbito del propio Java. No existían buenas herramientas que permitieran un trabajo productivo. Surgían las tecnologías, pero las herramientas seguían yendo muy por detrás.

Java fue sacado del tiesto. Se programaba con vi, con Notepad, con UltraEdit, pero no había un depurador interactivo. No había un diseñador de pantallas. Y en web, pase, porque HTML y compañía son simples, pero una pantalla compleja en el lado del cliente y te puedes partir de risa si solo tienes para trabajar el Notepad y una hoja de papel para pintar lo que quieres antes de liarte a picar código.

¿Adivináis que pasa en muchos sitios? Que se está sacando a Dynamic Data del tiesto. Y las herramientas no están todas en su sitio.

Dynamic Data es una herramienta estupenda si se usa para administrar tablas simples. Funciona casi a la primera y da pocos problemas.

Pero si tenemos modelo un poco extraño, empieza a atragantarse. Y si necesitamos condicionar cuándo un campo se muestra o no, hay que armar la de San Quintín.

En otras palabras, no se puede elaborar un simple cuestionario utilizando Dynamic Data por el simple motivo de que no se pueden ir activando y desactivando los campos para dirigir el flujo que ha de seguir el usuario. No se pueden ocultar y mostrar secciones si todo va en la misma tabla (algo no tan raro).

En definitiva, es algo a utilizar en trozos de la aplicación. Nunca para una aplicación completa.

Estoy escuchando las voces.

"Sí, se puede hacer".

Bien, sí, se puede hacer. Es sólo que se tarda entre diez y cien veces más en terminar el desarrollo que con ASP.NET a pelo. Casi que me quedo con ASP.NET a pelo.

Por supuesto, sois libres de sufrir como más os guste. Yo prefiero ver los espantosos programas que emiten por televisión. Vosotros podéis utilizar Dynamic Data.


Comentario publicado por angeruroth el 27/03/2010 a las 21:09

angeruroth Legendary:

Había contestado a este post, pero he borrado la respuesta porque me había pasado tres pueblos.

Después de darle unas cuantas vueltas, voy a simplificar las 80 líneas de la respuesta anterior: La única alternativa que ofreces a DynamicData es seguir haciéndo las cosas como en el siglo pasado.
Creo que se entiende fácilmente que eso no tiene sentido.

Por otro lado, me doy cuenta de que ya has decidido que DynamicData no te gusta ni te va a gustar jamás. La verdad, es una pena.

Comentario publicado por legendary el 28/03/2010 a las 20:27

legendary angeruroth:

"Después de darle unas cuantas vueltas, voy a simplificar las 80 líneas de la respuesta anterior: La única alternativa que ofreces a DynamicData es seguir haciéndo las cosas como en el siglo pasado."

Error: Mi alternativa es usar Dynamic Data en los lugares donde sea útil y no usarlo en donde no. Por otro lado, ASP.NET es una tecnología de este siglo, no del anterior.

"Por otro lado, me doy cuenta de que ya has decidido que DynamicData no te gusta ni te va a gustar jamás. La verdad, es una pena."

No es que haya decidido que Dynamic Data no me guste. He decidido que no hay que sacarla del tiesto.

Toda tarea tiene unas herramientas más adecuadas que otras, y empeñarse en usar las menos adecuadas no es una buena solución. Además, en tu respuesta das por sentado de que algo es mejor sólo por ser más moderno. Error, eso puede o no ser así según las necesidades.

Dynamic Data es una buena idea mal implementada. Tal vez con tiempo acabe saliendo una versión que sea buena (al fin y al cabo, hemos llegado a Java 6 con un producto muy, pero que muy bueno). Pero, hasta entonces, hay que elegir cuándo y cuándo no usarla.

Por cierto, revisando tu entrada del 19/12/2009 (DynamicData + EDM, o el pozo sin fondo), parece que no estabas tan entusiasmado con Dynamic Data como estás ahora. Los motivos que planteas en dicha entrada para tener dudas casan exactamente con algunos de los que yo tengo para no querer Dynamic Data en toda una aplicación.

Naturalmente, no hablo desde el completo desconocimiento, sino desde dos dolorosas experiencias. Supongo que otros que hayan sufrido un poco más, tendrán algo más que decir.

Entiendo que, una vez se ha trabajado/sufrido hasta cierto punto para defender una tecnología y suplir sus carencias, que repito, se deben a que está por delante de su tiempo, es difícil encajar una crítica negativa. Se convierte en personal. Eso es un error. Un error grave. El primer crítico con la obra de uno debe ser uno mismo. Incluso cuando se está orgulloso de dicha obra.

Particularmente, no creo que haya sido tan duro como debía en la entrada original, porque entiendo que mis experiencias son muy particulares y que han llevado a Dynamic Data tan lejos del tiesto que lo necesario para hacerlo funcional ha rayado la aberración en mi última experiencia y en la primera tuve que descartar el trabajo que llevaba porque aquello iba camino de convertirse en un vía crucis.

También me contuve porque entiendo también que, cuando se usa esta tecnología para lo que está diseñada, funciona estupendamente bien, que es lo que en realidad cuenta. Es decir, el problema no es tanto Dynamic Data como los usos que se pretende dar a esta tecnología, en este momento de su desarrollo.

Y, por supuesto, no debes perder de vista que esta es una entrada de opinión. Si no la compartes, es tu derecho. Igual que el mío expresarla. No creo que haya que llegar a descalificar a una persona por un punto de vista acerca de la tecnología.

Comentario publicado por angeruroth el 29/03/2010 a las 23:50

angeruroth Nadie ha dicho que sea Dynamic Data sea algo perfecto.
No obstante, aprovechar una tecnología solo para lo que es evidente es desaprovecharla.
Por eso me parece que utilizarla solo para un trozo de aplicativo es como volver a lo que hacíamos hace 10 años (aún recuerdo los programitas que mezclaban RDO, DAO y más tarde ADO... y no megustaría volver a pasar por eso).

En VB6 había que sufrir para conseguir ciertas cosas, pero al hacerlo se entendían. Y, una vez hecho, se podía ver que no te habías salido del tiesto, sino que había aprovechado de verdad esa tecnología.

Con Dynamic Data pasa algo parecido: No es un caos como llegó a ser Java en sus tiempos, sino que restringe en exceso (de ahí la entrada a la que te refieres, que podéis ver aquí).
No obstante, ofrece herramientas para sobrepasar este límite sin perder un ápice de su esencia.
El problema, normalmente, es que primero hay que averiguar cómo hacerlo, y hoy por hoy hay poca documentación, así que básicamente es una cuestión de I+D.

Pero I+D no es necesariamente sinónimo de "salirse del tiesto".


valoración: 2 - mala (2 votos)
Añade tu comentario



 english - française - deutsche