sábado, abril 07, 2007

Generics, ¿no Generics?

Generics es posiblemente la característica mas importante que se agrego al .NET 2.0 – desde mi punto de vista -, es por esta razón que el uso de Generics en un desarrollo en el que actualmente estoy trabajando, tiene un papel importante en el mismo, ya que me permite realizar algunas cosas de una forma muy simple, y sobre todo me permite una gran reducción en las lineas de código dentro del desarrollo, ayudándome a tener consistencia y sobre todo a reducir errores.

Debido a lo mencionado arriba, revisando cierta parte de mi código encontré que se repetía bajo cierto patrones, lo revise mas a fondo y me decidí a realizar una refactorización con la finalidad poder reutilizar de una forma mas efectiva esas partes de mi código.

Cuando finalice y quise realizar pruebas, me encontré con una limitante del VS.NET 2005, ya que parte del código que refactorice incluida UserControls (Controles de Usuario) y algunas Forms (formas que me sirven de base), la limitante consiste que el editor de interfase gráfica para Windows Forms no soporta Generics, y de acuerdo a este reporte de Microsoft  parece que no va a haber solución a corto plazo, debido a que actualmente no existe la infraestructura para necesaria en el diseñador de formas para dar soporte a Generics, y posiblemente va a ser necesario esperar hasta la siguiente versión del VS.NET.

También ya me había dado cuenta que no es posible crear un DataSource a partir de una colección de objetos, si la colección implementa Generics.

Desafortunadamente en mi proyecto es importante el poder utilizar el diseñador de forma, así que tuve que darle la vuelta a esta limitación, reimplemente el código de forma que pudiese ser reusable y extensible, y que además evitara el tener controles de usuario y formas que requieran Generics.

Aun y con esta limitante del VS.NET, Generics simplemente Rocks !

2 comentarios:

Zeithgeist dijo...

hola, yo estoy con un rpoblema similar. Cual fue tu solucion?

Mario Alberto Chavez dijo...

Bueno el problema raiz es que Microsoft no soporta Generics en Windows Forms, no se si en la nueva version de .NET 3.5 lo soporten, pero me inclinaria pensar que no.

La unica solucion que encontre al respecto es modificar mi codigo para evitar tener formas genericas.