Galería

A tool for #Resource #Microsoft library #Governance / Una herramienta para el gobierno de bibliotecas de recursos

solutiontree-thumb1Quienes me leen de manera regular sabrán que hace muy poco comencé Rompiendo la resistencia a #Microsoft C# construyendo un Programa de Consola c/Menú.

Pues bien, una de las cosas a las que me he tenido que enfrentar desde entonces es a la enorme deficiencia que a mi gusto existe respecto del manejo de dependencias.

Gradle1Si claro que existe NuGet, de hecho ya me toco pelearme con aquello de la Restauración del paquete #NuGet. Pero la verdad, no hay nada que se parezca al Gradle para Java, ni siquiera Maven, o aunque fuera Ivy. En el mundo Microsoft, parece que amigable no necesariamente significa simple. De manera que sufrir parece la norma.

Pues bien, no pienso aburrirlos con mucha palabrería, los que ya conocen C#, Visual Studio y todo lo referente a la tecnología .NET no me dejarán mentir. El governance de un portafolio de soluciones es una verdadera pesadilla. Y mientras más grande el protafolio, la cosa se pone peor. De hecho, la verdad es que el ciclo de vida de las distintas librerías de Microsoft tampoco ayuda mucho.

Apenas el día de ayer levantaba la mano en mi trabajo solicitando apoyo al equipo de producto de HDInsight respecto de algunas situaciones con las dependencias entre sus recursos.

2017-04-12_184257.png

El caso es que, cuando te encuentras del lado de operaciones y debes cuidar por el mantenimiento de un amplio número de soluciones y proyectos que han venido siendo liberados de manera progresiva, casi nunca resultan coherentes entre las versiones de sus dependencias y acabas con un verdadero caos.

Y ante las debilidades del governance pues, el manejo de riesgos se va tornando cada más ineficiente; lo que hace que los tiempos de los ciclos de liberación de versiones, salida de soporte y puesta en “deprecated”, se hagan cada vez mucho más próximos.

Como el referido caso de HDI, para el cual nos quedan escaso 3 meses:

“The support for HDI 3.3 cluster expired on 06/27/2016 and it will be deprecated on 07/31/2017.”

Como ya sabrán, no queda de otra, más que procurar gestionar de manera manual los recursos de las soluciones. Pero aún para eso, la tarea podría resultar en extremo pesada si no contamos con un mecanismo que nos permita al menos llevar el inventario de las dependencias que están siendo utilizadas.

Afortunadamente Puneet Ghanshani nos compartió en su blog el código que nos permite realizar el inventario de los NuGet package de multiples soluciones contenidas en un repositorio.

Pues bien, el merito del código claro que no es mío sino del buen Puneet; sin embargo, me he tomado la tarea de construir con el código una solución a la cual le he incorporado varias mejoras, las cuales por supuesto me han servido para continuar practicando con esta tecnología.

Por ejemplo, la capacidad de definir un path para depositar el reporte distinto al de escaneo, así como configurar los paths y el nombre del archivo de reporte a través de definiciones en el App.config.

<?xml version=1.0 encoding=utf-8 ?>

<configuration>

<startup>

<supportedRuntime version=v4.0 sku=.NETFramework,Version=v4.6.2 />

</startup>

<!– Configuration settings area –>

<appSettings>

<clear />

<!– no debe tener el caracter ‘\’ al final del path –>

<add key =pathScanBegin value =C:\TFS\CFDI-Explotacion\Cod/>

<!– no debe tener el caracter ‘\’ al final del path –>

<add key =pathReporting value =C:\Governance\Libraries\Reports/>

<!– no debe tener extension –>

<add key =reportName value =Inventory-Packages/>

</appSettings>

</configuration>

 

github

En lugar de ponerme a listar las características originales y las mejoras incorporadas, prefiero dejarles el enlace a mi repositorio de GitHub para que tomen el código y asuman el reto de hacerlo funcionar con sus soluciones.

https://github.com/sphera5/ScanPackageUtility

Ojala se animen y que les sea útil.

 

Finalmente, expreso mi reconocimiento y agradecimiento a por su artículo: https://blogs.msdn.microsoft.com/modernarchitecturedevops/2017/01/20/nuget-packages-inventory-across-multiple-solutions/

Un material bastante útil que me fue de excelente ayuda.

Espero te haya sido útil este post.

………….

Quiero man.tener.me informado: Seguir en Twitter @eldavid_oficial https://twitter.com/eldavid_oficial

Regálame un ME GUSTA. Y si eres solidario, COMPARTE para que otros puedan aprovecharlo.

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s