Un blog con consejos y sugerencias sobre programación en Csharp que he aprendido a lo largo de los años

martes, 1 de marzo de 2022

Versionamiento NET vs Core

marzo 01, 2022 Posted by Uriel Martínez , , No comments

 Versionamiento NET vs  Core

Hoy por hoy estamos conviviendo entre 2 tecnologías, el monstruo Framework NET y el cada vez más presente NET Core.

Para ambas el versionamiento;  no hablo de tener un repositorio e ir subiendo tus cambios, eso es más que obligado, te estoy hablando de la forma en la que un EXE, Dll, Servicio Web, Etc, tenga su número de versión en producción y su formato

De lo que te estoy hablando es cuando un archivo en sus propiedades tiene el número de versión, así como se muestra a continuación



Es muy necesario conocer su descripción para llevar una buena identificación de tu producto

Formato básico

El formato más básico es el siguiente

Compilado . Corrección o Ajuste . Revisión

Y significan lo siguiente:

Compilado.- Es la versión de tu compilado cuando ya ha sido aprobado y es la más importante, deberá incrementar siempre y cuando exista un modulo nuevo, un cambio que afecte a su estructura o flujo principal

Corrección o ajuste.- Generalmente se incrementa cuando existe una solución a un error y que no haya existido la necesidad de algún modulo nuevo o la modificación al flujo o estructura

Revisión.- Se refiere a que se detectó alguna mejora, algún agregado o adecuación menos significativa;  un ejemplo, colocar una nueva línea que escriba en el LOG de tu sistema, cuando inicien sesión

Existe un formato más amplio que se maneja muy a menudo en .NET

Versión principal. Versión secundaria . Número de compilación . Revisión

Que no es más que lo mismo pero con un nivel  más que es el numero final de compilación para  dar seguimiento;  en  lo personal,  me gusta  más el básico

Versión en proyecto .NET


En .NET ha sido muy fácil realizar este control debido a un archivo que viene incluido en cualquier proyecto con visual studio, me refiero a AssemblyInfo ya sea que utilicen C sharp o Visual Basic, lo podrás encontrar dentro de la carpeta Properties de tu proyecto.

Dentro de este archivo podrás encontrar las siguientes propiedades

assembly: AssemblyTitle("")] -> El titulo de tu componente  (archivo)
[assembly: AssemblyDescription("")] -> Una descripción breve  de lo que hace
[assembly: AssemblyCompany("")]   ->el nombre de tu empresa  o tu nombre  profesional
[assembly: AssemblyProduct("")] -> El nombre de tu producto
[assembly: AssemblyTrademark("")] ->  Iniciales de tu marca

y una guía de como será su versionamiento en las propiedades

[assembly: AssemblyVersion("1.0.0.0")] -> la versión de tu ensamblado o compilado
[assembly: AssemblyFileVersion("1.0.0.0")] -> La versión de tu archivo

Nota: algo importante es que en este archivo podemos dejar comentarios sobre cada liberación al final, les recomiendo mucho esta practica para saber qué se está liberando en cada ocasión, un buen ejemplo sería

//Autor         Fecha         Versión     Descripción
//@UMB      26/02/21    1.0.0.0     Se Inicia el proyecto integrando las capas necesarias


Versión en proyecto .NET Core


Aquí es muy distinto dado que desaparecen muchos archivos para optimizar el peso y velocidad, por lo que debemos hacer nuestro control internamente. Aclaro, microsoft menciona que para eso existe la librería descargable por NuGet de nombre Microsoft.AspNetCore.Mvc.Versioning pero aquí muestro la forma que para mi es más sencilla, consistente y que me ha funcionado por años

Consiste en abrir las propiedades del proyecto



En la sección de paquete tendremos lo necesario para realizar nuestro control de versiones con las propiedades por defecto o bien colocamos lo que  deseamos

Edición del archivo del proyecto

De la misma  forma existe una alternativa para quienes desean llevar un control más exhaustivo, se trata de editar el archivo  .csproj. Cabe mencionar que la sección a continuación es de donde proviene la información de la imagen anterior

<PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <UseWindowsForms>true</UseWindowsForms>
    <ImplicitUsings>enable</ImplicitUsings>
    <PackageReleaseNotes></PackageReleaseNotes>
    <Company>UMB</Company> 
    <Version>2.1.0</Version>
    <Description>alguna descripcion</Description>
    <Copyright>UMB</Copyright>
    <AssemblyVersion>1.0.0</AssemblyVersion>
    <FileVersion>1.0.0</FileVersion>  
  </PropertyGroup>

Como podrás apreciar es un tanto distinto pero no deja de ser sencillo cuando sabemos organizarnos.


Espero esto te haya sido de ayuda, nos vemos en el siguiente POST

Saludos

0 comentarios:

Publicar un comentario