Usando .NET 7 en Fedora linux

.NET 7 ya está disponible en Fedora linux Este artículo describe brevemente qué es .NET, algunas de sus funciones recientes e interesantes, cómo instalarlo y presenta algunos ejemplos que muestran cómo se puede utilizar.

.NET 7

.NET es una plataforma para crear aplicaciones multiplataforma. Le permite escribir código en C#, F# o VB.NET. Puede desarrollar fácilmente aplicaciones en una plataforma e implementarlas y ejecutarlas en otra plataforma o arquitectura.

En particular, puede desarrollar aplicaciones en Windows y ejecutarlas en Fedora ¡Linux en su lugar! Este es un obstáculo menos si desea pasar de una plataforma propietaria a Fedora linux También es posible desarrollar en Fedora e implementar en Windows. Tenga en cuenta que en este último escenario, algunos tipos de aplicaciones específicas de Windows, como las aplicaciones GUI de Windows, no están disponibles.

.NET 7 incluye varias características nuevas y emocionantes. Incluye una gran cantidad de mejoras de rendimiento para el tiempo de ejecución y las bibliotecas .NET, mejores API para trabajar con permisos de archivos Unix y archivos tar, mejor soporte para la observabilidad a través de OpenTelemetry y compilación de aplicaciones con anticipación. Para obtener más detalles sobre todas las características nuevas de .NET 7, consulte https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-7 .

Fedora Las compilaciones de Linux de .NET 7 pueden incluso ejecutarse en la arquitectura IBM Power (ppc64le). Esto se suma a la compatibilidad con ARM/Aarch64 de 64 bits (que Fedora Linux llama aarch64 y .NET llama a arm64), IBM Z (s390x) y plataformas Intel/AMD de 64 bits (que Fedora Linux llama a x86_64 y .NET llama a x64).

.NET 7 es una versión de soporte de término estándar (STS), lo que significa que el upstream dejará de mantenerlo en mayo de 2024. .NET en Fedora Linux seguirá esa fecha de finalización. Si desea utilizar una versión de soporte a largo plazo (LTS), utilice .NET 6 en su lugar. .NET 6 llega al final de su vida útil en noviembre de 2024. Para obtener más detalles sobre el ciclo de vida de .NET, consulte https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core .

Si está buscando configurar un entorno de desarrollo para desarrollar aplicaciones .NET en Fedora Linux, eche un vistazo a https://fedoramagazine.org/set-up-a-net-development-environment/.

Él Grupo de interés especial de .NET (DotNetSIG) mantiene .NET en Fedora linux Venga y únase a nosotros para mejorar .NET en Fedora Linux! Puede comunicarse con nosotros a través de IRC ( #fedora-devel ) o listas de correo ([email protected]) si tiene comentarios, preguntas, ideas o sugerencias.

Cómo instalar .NET 7

Para compilar código C#, F# o VB.NET en Fedora Linux, necesitará el SDK de .NET. Si solo desea ejecutar aplicaciones existentes, solo necesitará .NET Runtime.

Instale el kit de desarrollo de software (SDK) de .NET 7 con este comando:

                      sudo dnf install -y dotnet-sdk-7.0
                    

Esto instala todas las dependencias, incluido un tiempo de ejecución de .NET.

Si no desea instalar todo el SKD pero solo quiere ejecutar aplicaciones .NET 7, puede instalar el tiempo de ejecución de ASP.NET Core o el tiempo de ejecución de .NET mediante uno de los siguientes comandos:

                      sudo dnf install -y aspnetcore-runtime-7.0
sudo dnf install -y dotnet-runtime-7.0
                    

Este estilo de nombre de paquete se aplica a todas las versiones de .NET en todas las versiones de Fedora linux Para examplepuede instalar .NET 6 usando el mismo estilo de nombre de paquete:

                      sudo dnf install -y dotnet-sdk-6.0
                    

Para asegurarse de que .NET 7 esté instalado, ejecute dotnet –info para ver todos los SDK y tiempos de ejecución instalados.

Licencia y Telemetría

Los paquetes .NET en Fedora Linux está construido a partir de un código fuente completamente abierto. La licencia principal es MIT. Los paquetes .NET en Fedora Linux no contiene ningún código cerrado o software propietario. Él Fedora El equipo de .NET crea .NET sin conexión en el Fedora Sistema de compilación de Linux y elimina todos los archivos binarios presentes en los repositorios de código fuente antes de compilar .NET. Esto nos da un alto grado de confianza de que .NET está construido a partir de fuentes revisadas.

Los paquetes .NET en Fedora Linux no recopila ningún dato de los usuarios. Toda la telemetría está deshabilitada en el Fedora compilaciones de .NET. No se recopilan datos de nadie que ejecute .NET y no se envían datos a Microsoft. Realizamos pruebas para verificar esto para cada compilación de .NET en Fedora linux

“Hola Mundo” en .NET

Después de instalar .NET 7, puede usarlo para crear y ejecutar aplicaciones. Para examplepuede usar los siguientes pasos para crear y ejecutar la aplicación clásica “Hello World”.

Cree un nuevo proyecto .NET 7 en el lenguaje C#:

                      dotnet new console -o HelloWorldConsole
                    

Esto creará un nuevo directorio llamado HelloWorldConsole y creará un C# Hello World trivial que imprima hello world.

Luego, cambie al directorio del proyecto:

                      cd HelloWorldConsole
                    

Finalmente, compila y ejecuta tu aplicación:

                      dotnet run
                    

.NET 7 construirá su programa y lo ejecutará. Debería ver una salida de “Hola mundo” de su programa.

“Hola Web” en .NET

También puede usar .NET para crear aplicaciones web. Hagamos eso ahora.

Primero, cree un nuevo proyecto web, en un directorio separado (no en nuestro proyecto anterior):

                      dotnet new web -o HelloWorldWeb
                    

Esto creará una aplicación simple de estilo Hello-World basada en la plantilla web integrada de .NET (Empty ASP.NET Core).

Ahora, cambia a ese directorio:

                      cd HelloWorldWeb
                    

Finalmente, compila y ejecuta la aplicación:

                      dotnet run
                    

Debería ver un resultado como el siguiente que muestra que la aplicación web se está ejecutando.

                      Building…
info: Microsoft.Hosting.Lifetime[14]
Now listening on: https://localhost:5105
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: /home/omajid/temp/HelloWorldWeb
                    

Utilice un navegador web para acceder a la aplicación. Puede encontrar la URL en la salida en la línea “Ahora escuchando en:”. En mi caso es https://localhost:5105:

                      firefox https://localhost:5105
                    

Debería ver un mensaje “Hello World” en su navegador.

Usar .NET con contenedores

En este punto, ha creado, compilado y ejecutado exitosamente aplicaciones .NET localmente. ¿Qué sucede si desea aislar su aplicación y todo lo relacionado con ella? ¿Qué sucede si desea ejecutarlo en un entorno noFedora sistema operativo? ¿O implementarlo en una nube pública/privada/híbrida? ¡Puedes usar contenedores! Construyamos una imagen de contenedor para ejecutar su programa .NET y pruébelo.

Primero, crea un nuevo proyecto:

                      dotnet new web -o HelloContainer
                    

Luego, cambie a ese directorio del proyecto:

                      cd HelloContainer
                    

Luego agregue un Dockerfile que describa cómo construir un contenedor para nuestra aplicación.

                      FROM fedora:37
                      
RUN dnf install -y dotnet-sdk-7.0 && dnf clean all
RUN mkdir /HelloContainer/
WORKDIR /HelloContainer/
COPY . /HelloContainer/
RUN dotnet publish -c Release
ENV ASPNETCORE_URLS="https://0.0.0.0:8080"
CMD ["dotnet" , "bin/Release/net7.0/publish/HelloContainer.dll"]

Esto comenzará con un valor predeterminado Fedora Contenedor de Linux, instale .NET 7 en él, copie su código fuente y use .NET en el contenedor para construir la aplicación. Finalmente, configurará las cosas para que ejecutar el contenedor ejecute su aplicación y la exponga a través del puerto 8080.

Puede compilar y ejecutar este contenedor directamente. Sin embargo, si está familiarizado con Dockerfiles, es posible que haya notado que es bastante ineficiente. Volverá a descargar todas las dependencias y reconstruirá todo en cualquier cambio en cualquier archivo fuente. Produce una imagen de contenedor grande al final que incluso contiene el SDK de .NET completo. Una opción es usar una compilación de varias etapas para acelerar la iteración del código fuente. También puede producir un contenedor más pequeño al final que contenga solo su aplicación y las dependencias de .NET.

Sobrescriba el Dockerfile con esto:

                      FROM registry.fedoraproject.org/fedora:37 as dotnet-sdk
RUN dnf install -y dotnet-sdk-7.0 && dnf clean all

FROM registry.fedoraproject.org/fedora:37 as aspnetcore-runtime
RUN dnf install -y aspnetcore-runtime-7.0 && dnf clean all

FROM dotnet-sdk as build-env
RUN mkdir /src
WORKDIR /src
COPY *.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /publish

FROM aspnetcore-runtime as app
WORKDIR /publish
COPY --from=build-env /publish .
ENV ASPNETCORE_URLS="https://0.0.0.0:8080"
EXPOSE 8080
ENTRYPOINT ["dotnet", "HelloContainer.dll"]
                    

Ahora instale podman para que pueda compilar y ejecutar el Dockerfile:

                      sudo dnf install -y podman
                    

Cree la imagen del contenedor:

                      podman build -t hello-container .
                    

Ahora, ejecute el contenedor que acabamos de crear:

                      podman run -it -p 8080:8080 hello-container
                    

Una nota sobre los argumentos. El puerto está configurado con el indicador -p para que el puerto 8080 del interior del contenedor también esté disponible como puerto 8080 del exterior. Esto le permite conectarse a la aplicación directamente. El contenedor se ejecuta de forma interactiva (-it) para que pueda ver el resultado y cualquier error que surja. La ejecución interactiva no suele ser necesaria cuando se implementa una aplicación en producción.

Finalmente, conéctese al contenedor utilizando un navegador web. Para example:

                      firefox https://localhost:8080
                    

Debería ver un mensaje de “Hola mundo”.

¡Felicidades! Ahora tiene una aplicación .NET ejecutándose dentro de un Fedora ¡envase!

Conclusión

Esta fue una descripción general relámpago de .NET 7 en Fedora Linux y cubre la construcción y ejecución de una aplicación usando Fedora paquetes RPM, así como la creación de una aplicación para una aplicación .NET utilizando sólo Fedora linux

Si tiene interés en usar o mejorar .NET en Fedora ¡Linux, únase a nosotros!

Related Posts