Hace un tiempo vengo trabajando en uno de esos proyectos que uno hace, y empieza a crecer y crecer y se tiene que terminar para ayer. Que luego reza para no tener que seguir y se lo pasen a otro, bueno en este caso yo soy el “otro”.
Me llegó el proyecto, bastante complejo por cierto, y lo analicé por un rato. Luego voy a ver las tablas de la DB a ver si me “contaban” un poco como estaba hecha la solución y…. OHHHHH!!!! las tablas no tenían ni primary keys ni foreign keys!!!, no empezamos bien no?…
Luego de modificar las tablas y agregar las relaciones para mantener una integridad referencial, voy a modificar el código para soportar algunos valores nulos que surgieron de este refactoring de la DB. Que me encuentro??? Cáda módulo (aprox 12) tenía su propia capa de acceso a datos!!!!, había que modificar los 12 módulos!!!!!!!, y todo mezclado código generado a mano con otro autogenerado con CodeSmith :’(. Veo unas clases parciales, LA SALVACIÓN!, digo bueno los métodos creeados a mano estan en las clases parciales que decían <Clase>.exteder.vb, reviso y…. EN BLANCO!, si los métodos creados a mano estaban en las mismas partial clases que los autogenerados.
Bueno, luego de renegar, hacer un único acceso a datos y refactortizar un poco, me contré con esto, que fue el motivo del post:
If isPageIndexChanging And 1 < 0 Then dv.Sort = String.Format("{0} {1}", Me.SortExpression, Me.SortDirection)Else dv.Sort = String.Format("{0} {1}", Me.SortExpression, Me.SortDirection)End If
Donde vemos la hermosa coparación lógica 1 < 0, y que las dos sentencias del If son iguales
Excelente!!!
PD: No hagan esto en sus aplicaciones…