Entradas

Mostrando las entradas de julio, 2022

Eliminar namespace de Procedures

Imagen
Necesitaba utilizar Procedures que estaban expuestos como SOAP desde otra KB, que venian con un namespace incorrecto.  En mi KB debia usar el Namespace default, pero habia algunos que tenian un namespace fijo.  Lo que hice, fue procesar el archivo de export para eliminar el tag en el XML.  <Properties> <Property><Name>Name</Name><Value>Movimientos</Value> </Property> <Property><Name>ExternalNamespace</Name><Value>http://tempuri/Incorrecto</Value></Property> <Property><Name>IsDefault</Name><Value>False</Value> </Property> </Properties>     </Object>     <Object parentGuid="17460adf-89c4-f141-237b-252d2ccfdd60" user="" ..... Para cambiarlo, use Notepad++ y busque la expression regular <Property><Name>ExternalNamespace<\/Name>[\s\S]*?<\/Property> Volvi a importar y con eso logré eliminar esa propiedad en muc

Cohesión, acoplamiento e intereses separados en grupos de trabajo.

Imagen
  Quienes estudiamos computación en algún momento de la carrera nos han enseñado de la importancia de la cohesion, el acoplamiento y la separación de intereses. * Esas características tienen fuerzas en algún sentido opuestas, y la práctica nos ha enseñado a que cuando se logra hacer programas, clases, módulos, servicios, sistemas enteros, etc que tengan ALTA COHESIÓN, BAJO ACOPLAMIENTO e INTERESES SEPARADOS, es mucho más fácil mantener y agregar cambios a los sistemas. En conclusión, se tiene mayor productividad, se pueden hacer más cosas, con menos esfuerzo.  Esto es algo un poco contraintuitivo, pues lograr esto en los sistemas, da más trabajo al principio, pero se paga con creces en lo que se ahorra en el futuro.  En lo que no me había puesto a pensar nunca, era en aplicar estos conceptos, a los grupos humanos que producen software. Estudiando porque algunos grupos logran una alta productividad y otros no tanto, veo que muchas veces los grupos que tienen problemas de productividad e

Cambiar propiedades no exportables por script MSBUILD.

Imagen
 En el foro de la Beta de GeneXus, se quejaban que era una tarea engorrosa el cambiar propiedades de las conexiones a base de datos.  Es una tarea sumamente engorrosa y se comenten muchos errores en el proceso.  Estoy en un proyecto, donde vamos a necesitar unificar muchas propiedades de al menos 5 KB y ademas, personalizar muchas propiedades, por lo que valia la pena dedicarle un tiempo a automatizar dicha tarea.  Una de las contras que planteaban, era que no se puede exportar e importar las propiedades, pues hay muchas que son NO EXPORTABLES.  Desde hace tiempo, se tienen tareas MSBUILD para poder cambiar propiedades de la KB / Version / Ambientes / Generadores / Repositorios de Datos.   Había hecho varios scripts para cambiar propiedades, pero mi problema siempre había sido que tenia que encontrar el nombre de la propiedad, para poder implementarlo.   Para esto, exportaba las propiedades, abría el archivo XML, adivinaba cual era la propiedad, buscaba el nombre y ponía el valor que