14:59 0 0
Como usar librerias marcadas como depreciadas

Como usar librerias marcadas como depreciadas

  DrUalcman |  junio 172023

Ultimamante he notado que hay muchas veces que tengo nuget instalados de Microsoft que de un momento a otro me los marca como depreciados. Esto es porque Microsoft revisando su framework, se da cuenta de muches pequeños paquetes individuales, y los mete todos en un mega paguete.

Por ejemplo, el que he puesto en la imagen principal de este blog, Microsoft.AspNetCore.Hosting.Abstractions Version 2.2.0. Entre otros, este es un paquete que ahora se incluye dento del Framework Microsoft.AspNetCore.App. El tema está entonces en incluir ese mega paquete, llamado Framework Microsoft.AspNetCore.App dentro de nuestro proyecto. Pero también tendremos que tener en consideración de si es compatible con nuestro proyecto existente.

Primer paso.

Primero hay que saber dónde se define el Framework que estoy utilizando. Cuando creamos un proyecto desde Visual Studio, o desde línea de comando, se crea un archivo con el nombre del proyecto y extensión csproj, imagino que muchos conocereis este tipò de archvos. En este archivo se define que tipo de proyecto, sus propiedades y es dónde se incluirán las rutas de los nuget, projectos o archivos y configuraciones relacionados con nuestro proyecto en cuestion.

Entonces, ¿dónde está definido el Framework que estoy utilizando? Pues muy fácil, es el typo de proyecto. La primeralínea de este archivo, si has creado un proyecto tipo Librería (DLL) tendrás un SDK llamado Microsofy.NET.Sdk. Pues bien, ese es el Framework que estas utilizando en tu proyecto. Si hubieras creado una web api, tu SDK sería Microsoft.NET.Sdk.Web. Y así con cada tipo de proyecto.

Cómo usar un Framework adicional

Ahora vamos a lo que nos interesa. Si yo estoy creando una librería, que necesito, por ejemplo, que exponga un endpoint, o que reciba peticiones GET, o sencillamente que reciba un  objecto IHttpContextAccessor, para poder acceder al HttpContext (por continuar con mi ejemplo de la captura de imagen), tradicionalmente agregaríamos el paquete nuget Microsoft.AspNetCore.Hosting.Abstractions, que ahora esta marcado como Depreciated, o lo que es lo mismo, despreciado y no se debería de utilizar ya que no va a tener mantenimiento por parte de Microsoft. ¿Y como lo soluciono? Agregando una referencia al Framework que contiene todas las librerias relacionadas con una WebApi, o  una App.

Este Framework se llama Microsoft.AspNetCore.App y sería tan simple como agregar a nuestro archivo de projecto algo como estoÑ

	< ItemGroup >
< FrameworkReference Include="Microsoft.AspNetCore.App" / >
< / ItemGroup >

* Recuerden que en mi blog tengo problemas con los TAG de HTML y hay que quitar los espacios extra que le he puesto andtes de los signos de mayor y menor que.

Una vez realizado esto, ya tendremos acceso a nuestro IHttpContextAccessor y a nuestro HttpContext, que al ginal y al cabo es lo que necesitabamos.

Pero aquí es donde hay podrías tener un ¨pequeñito¨problema, y es con la compatibilidad entre Frameworks, por ejemplo. Si estas dentro de un proyecto Blazor WebAssembly, no se puede agregar esta referencia porque recibirás un mensaje de erorr de incompatibilidad de Framework, y es obvio, estas del lado del cliente y no peudes acceder al HttpContext entre otras muchas cosas que se incluyen en este mega paguete y no se pueden ejecutar del lado del cliente.

Dónde encontrar a que mega paquete o framework esta incluido un paque depreciado

Ya para terminar, lo más importante, casi diría yo, de este blog es, ¿y dónde puede saber cual es el mega paquete o framework que debe utilizar? La respues es bastante sencilla, pero ya dependeremos un poco de nuestro amigo llamado Documentación que se encuentra en la red de redes, Internet.

Primero busca la documentación del objeto que te interesa, en nuestro caso IHttpContextAccessor, debes de llegar a la web de Microsoft Learn. Ya en esta web, en la sección de Definition puedes conocer el nombre del namespace que lo contiente, el nombre de la libreria que lo contiene, y lo que nos interesa a nosotros ahora mismo, el nombre del paquete que lo contiene. En este caso podremos ver que nos dice que esta en Microsoft.AspNetCore.App.Ref v7.0.5 y esa es la referencia que podemos poner. 

Pero como ya habreis podrido comprobar en mi ejemplo, solo necesitamos el nombre del paquete, desde Ref no es necesario al 100%, salvo que quieras una versino en concreto y no la última disponible.

Conclusiones

Bueno espero que este pequeño truco os ayude en algo y como siempre, no dides en comentar cualquier cosa.

Happy codding.


0 Comentarios

 
 
 

Archivo