GNU/Linux >> Tutoriales Linux >  >> Fedora

Configuración del entorno de desarrollo y las herramientas de .NET en Fedora 35

En 2014, Microsoft declaró la plataforma de desarrollo .NET de código abierto bajo la licencia MIT. Culminó con el lanzamiento de .NET Core que los desarrolladores de .NET pueden usar para desarrollar aplicaciones en Linux usando lenguajes como C#. Mono ha sido la plataforma de desarrollo de código abierto para .NET framework.

Puede usar .NET o Mono para desarrollar aplicaciones usando lenguajes como C#, F#, Visual Basic y Vala. Las aplicaciones se pueden entregar a Linux, BSD, Windows, macOS, Tizen de Samsung (sistema operativo de televisión), Android, iOS y algunas consolas de juegos.

Configuración del entorno .NET en Fedora 35

Este artículo es para desarrolladores de .NET que desean usar Fedora Linux como su estación de trabajo principal. En primer lugar, destacaré la configuración de un entorno de desarrollo completo para .NET en Fedora Linux, incluido un IDE/Editor de texto, Azure Functions y un certificado SSL para un sitio HTTPS seguro.

Instalar SDK de .NET

Fedora ha agregado los paquetes dotnet a sus repositorios, lo que hace que la instalación del SDK de .NET sea bastante simple. Anteriormente, se le pedía que agregara repositorios de Microsoft a la lista de fuentes para instalar dotnet a través del administrador de paquetes DNF.

Abra su terminal y ejecute el siguiente comando para instalar los últimos paquetes dotnet.

sudo dnf instalar dotnet

El SDK de .NET incluye Runtime y le permite desarrollar aplicaciones utilizando la plataforma .NET. Sin embargo, si solo necesita ejecutar aplicaciones, instale Runtime. Si solo está instalando el tiempo de ejecución, se recomienda que instale el tiempo de ejecución de ASP.NET Core, ya que incluye los tiempos de ejecución de ASP.NET Core y .NET.

Instalar .NET 5

La última versión de .NET disponible en los repositorios de paquetes predeterminados de Fedora es .NET 5.

Instalar el SDK

Si instala .NET SDK, no necesita instalar el Runtime correspondiente.
Ejecute el siguiente comando para instalar .NET SDK.

$ sudo dnf install dotnet-sdk-5.0

Instalar el tiempo de ejecución

Instalar tiempo de ejecución de ASP.NET Core

El tiempo de ejecución de ASP.NET Core le permite ejecutar aplicaciones que no proporcionaron el tiempo de ejecución durante el desarrollo. Es el Runtime más compatible para .NET y es ampliamente utilizado por los desarrolladores de .NET.
Ejecute el siguiente comando para instalar ASP.NET Core Runtime.

$ sudo dnf install aspnetcore-runtime-5.0
Instalar tiempo de ejecución de .NET

Puede instalar .NET Runtime como alternativa a ASP.NET Core Runtime. Abre tu terminal y ejecuta el siguiente comando:

$ sudo dnf install aspnetcore-runtime-5.0

Tenga en cuenta que .NET Runtime no incluye compatibilidad con ASP.NET Core.

Instalar NodeJS

Necesita NodeJS en Fedora Linux para desarrollar Azure Functions o usar Azurite para emular el almacenamiento.

Instalar Node.js a través de nvm

El método requiere que primero instale nvm para permitir la instalación de Node.js en un espacio de usuario de Linux. Esto significa que puede instalar paquetes globales como un usuario normal sin privilegios de sudo. Nvm es un administrador de versiones de node.js para administrar múltiples versiones de Node.js en un solo sistema. Se invoca por shell y funciona en varios shells como sh, ksh, dash, zsh y bash.

Para instalar o actualizar nvm, debe ejecutar su script de instalación. Luego, puede descargar y ejecutar el script manualmente o ejecutar los siguientes comandos Wget o cURL para obtener la última versión (0.39.1).

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bashcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Una vez que tenga nvm instalado y ejecutándose en su sistema, ejecute nvm install lts/* para instalar la última versión LTS de Node.js.

instalación nvm lts/*

Tenga en cuenta que aún puede instalar cualquier versión de Node.js junto con la última versión. Ejecute nvm install con el número de versión de Node.js requerido para su proyecto.

instalación de nvm v15

También puede instalar varias versiones de Node.js ejecutando el comando varias veces.

instalación de nvm v16

Instalar Node.js desde el repositorio de paquetes predeterminado de Fedora

Los repositorios de paquetes predeterminados de Fedora contienen una versión estable de Node.js. Para instalar npm y Node.js, abra una terminal en su sistema y ejecute el siguiente comando.

$ sudo dnf instalar nodejs

Instalará una versión estable pero no necesariamente la última versión. Esto instalará el motor Javascript V8, el tiempo de ejecución de Node.js y el administrador de paquetes npm y las dependencias.

Versiones alternativas

También puede obtener versiones alternativas como módulos de Fedora. Antes de instalar el módulo deseado, primero puede enumerar todos los módulos disponibles con el siguiente comando.

Muestra todas las versiones disponibles.

Lista de módulos $ dnf

Instale una versión alternativa con el siguiente comando.

$ módulo sudo dnf instalar nodejs:15

Compruebe la versión instalada de Node.js

$nodo -v

Instalar Node.js desde el repositorio oficial de Node.js

El equipo de desarrollo oficial de Node.js proporciona un repositorio para instalar los paquetes más recientes para Fedora. Puede optar por instalar la versión más reciente o estable de Node.js.
Abra su terminal y ejecute el siguiente comando para instalar la versión estable:

$ sudo dnf install -y gcc-c++ make$ curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -

Con el siguiente comando, ahora puede instalar NPM, Node.js y otras dependencias.

$ sudo dnf instalar nodejs

Abra su terminal y ejecute el siguiente comando para agregar el repositorio requerido e instalar la última versión:

$ sudo dnf install -y gcc-c++ make$ curl -sL https://rpm.nodesource.com/setup_16.x | sudo -E bash -

A continuación, instale Node.js, NPM y las dependencias con el siguiente comando.

$ sudo dnf instalar nodejs

Instalar un IDE de .NET

Código de Visual Studio

Para instalar un Visual Studio Code estable, debe importar la clave de Microsoft y agregar el repositorio antes de instalar los paquetes correspondientes.

Importar clave de Microsoft.

sudo rpm --importar https://packages.microsoft.com/keys/microsoft.asc

Agregar repositorio de vscode.

sudo sh -c 'echo -e "[código]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://paquetes.microsoft.com/claves/microsoft.asc"> /etc/yum.repos.d/vscode.repo'

Actualice su caché de paquetes de Fedora e instale un código VS estable de 64 bits.

$ dnf check-update$ sudo dnf código de instalación

Instalar VS Code usando un paquete instantáneo

Primero, asegúrese de tener Snap instalado en su sistema Linux. De lo contrario, instálelo ejecutando el siguiente comando:

Habilite snapd y Habilite la compatibilidad con snap clásico creando un enlace simbólico entre /var/lib/snapd/snap y /snap.

$ sudo dnf install snapd $ sudo ln -s /var/lib/snapd/snap /snap

Ahora ejecute el siguiente comando para instalar VS Code:

$ sudo snap install --código clásico # o código-insiders

Una vez completada la instalación, el demonio Snap actualizará automáticamente VS Code.

Instala VS Code como un paquete rpm

Puede descargar e instalar manualmente el paquete .rpm de VS Code. Ejecute los siguientes comandos para descargar e instalar el archivo .rpm usando el administrador de paquetes DNF:

$ wget https://go.microsoft.com/fwlink/?LinkID=760867$ sudo dnf install .rpm

Instalar extensión C#

Para instalar extensiones c#, inicie VS Code, haga clic en (Ctrl+P), pegue el siguiente comando y presione Entrar.

ext install ms-dotnettools.csharp

La extensión C# es conveniente para los desarrolladores de .NET. Proporciona las siguientes características adicionales en VS Code.

  • La compatibilidad con la edición de C# incluye resaltado de sintaxis, búsqueda de todas las referencias, IntelliSense, Ir a definición y mucho más.
  • Proporciona soporte de depuración para .NET Core (CoreCLR).
  • Cuenta con herramientas de desarrollo livianas para .NET Core.
  • Compatibilidad con proyectos project.json y csproj en Linux, Windows y macOS.
Configurar VS Code como el editor de texto predeterminado

xdg-open
Puede configurar el editor de texto predeterminado para archivos de texto (texto/sin formato) que usa xdg-open con el siguiente comando:

xdg-mime default code.desktop text/plain

Piloto de JetBrains

La forma más fácil de instalar Rider es instalar JetBrains Toolbox y administrar el proceso de instalación.

Instalar caja de herramientas de JetBrains

Paso 1:Descargue el archivo .tar.gz de Jetbrain Toolbox para la instalación de Linux desde la página de descarga de Toolbox.
Paso 2:Extraiga el archivo jetbrains-toolbox-xxxx.tar.gz.
Abra su terminal y cambie el directorio donde descargó el archivo .tar.gz. Luego extraiga el contenido del archivo con los siguientes comandos:

cd /jetbrains/download/directory/tar -xzvf jetbrains-toolbox-1.22.10970.tar.gz

Paso 3:agregue permisos de ejecución a AppImage
Cambie su directorio de trabajo actual a la carpeta donde extrajo sus archivos y agregue permisos de ejecución a AppImage con los siguientes comandos:

cd jetbrains-caja de herramientas-1.22.10970chmod +x jetbrains-caja de herramientas

Paso 4:Ejecute AppImage.

./jetbrains-caja de herramientas

Tenga en cuenta que los números de versión que estoy usando pueden diferir de los suyos. Sería útil si los cambiara en consecuencia.

Espere unos minutos hasta que se abra una pequeña ventana de la Caja de herramientas. Después de lo cual, puede eliminar los archivos descargados. Ahora, puede abrir JetBrains Toolbox desde el menú de su aplicación. De forma predeterminada, AppImage instala aplicaciones en ~/.local/share/JetBrains.

Instalar anexo

En la caja de herramientas de JetBrains, busque la aplicación Rider y haga clic en Instalar. Puede cambiar dónde instalar y otras opciones desde el menú de configuración en la esquina superior derecha.
Cuando finalice la instalación, abra Rider y elija las preferencias que desee hasta que se complete el proceso de configuración. Ahora tiene Rider instalado. Tenga en cuenta que siempre puede cambiar las opciones de configuración yendo a Configurar -> Configuración en la pantalla inicial o Archivo -> Configuración en el editor.

Extensiones de Visual Studio

VS Code es un excelente editor de código. Sin embargo, puede mejorar su funcionalidad con extensiones. Puede incluir varias extensiones de lenguaje de programación que necesite para sus proyectos. Los siguientes ejemplos incluyen algunas extensiones que uso para el desarrollo de C#.

Extensión VS Code ESLint

Si eres un programador experimentado, probablemente hayas oído hablar de ESLint. Es una herramienta esencial que analiza su código para encontrar problemas rápidamente. ESLint está integrado en la mayoría de los editores de texto y también puede incluirlo en VS Code como una extensión. La extensión utiliza la biblioteca ESLint instalada en el directorio del espacio de trabajo actual. La extensión busca una versión de instalación global si el directorio no proporciona una.
Puede instalar ESLint local o globalmente ejecutando los siguientes comandos:
Para una instalación local en su directorio de trabajo:

npm instalar eslint

Para una instalación global:

npm install -g eslint

Para instalar la extensión ESLint de VS Code, inicie VS Code, haga clic en (Ctrl+P), pegue el siguiente comando y presione Intro.

instalación externa dbaeumer.vscode-eslint

PowerShell

La extensión de idioma de PowerShell en VS Code proporciona una gran compatibilidad con el idioma de PowerShell. Puede escribir y depurar secuencias de comandos de PowerShell utilizando la excelente interfaz similar a IDE que proporciona Visual Studio Code. Incluye PowerShell ISE, resaltado de sintaxis, fragmentos de código, IntelliSense para cmdlets, Ir a definición de variables y cmdlets, depuración de script local y mucho más.
Para instalar la extensión de PowerShell, inicie VS Code, haga clic en (Ctrl+ P), pegue el siguiente comando y presione enter.

ext install ms-vscode.PowerShell

Importador de configuración y mapa de teclas de Sublime Text

La extensión Sublime Importer importa combinaciones de teclas y configuraciones desde el editor de texto Sublime a Visual Studio Code. Esta extensión puede ser útil, ya que transfiere atajos de teclado populares de Sublime Text a VS Code.
Inicie VS Code, haga clic en (Ctrl+P), pegue el comando a continuación y presione Intro para instalar la extensión.

ext install ms-vscode.sublime-keybindings

Azurita y funciones de Azure

Azurite es un servidor compatible con la API de almacenamiento de Azure de código abierto. Se basa en Node.js y brinda experiencias multiplataforma para los usuarios que desean implementar Azure Storage en un sistema local. Una característica fundamental del paquete Azurite es que simula la mayoría de los comandos de Azure Storage.

Instalar el paquete de nodos de Azurite

Necesita el paquete de nodos azurite para desarrollar Azure Functions. Puede instalarlo con el siguiente comando:

npm install -g azurita
Código de Visual Studio

Si está desarrollando Azure Functions con VSCode, debe instalar el paquete azure-functions-core-tools. Al momento de escribir este artículo, la última versión es v3.
Ejecute el siguiente comando si desea instalar v3.

npm i -g azure-functions-core-tools@3 –unsafe-perm true

Ejecute el siguiente comando para instalar v2.

npm i -g azure-functions-core-tools@2 –unsafe-perm true

El siguiente paso es instalar la extensión de Azure Functions desde el mercado de Microsoft Visual Studio. Inicie VS Code, haga clic en (Ctrl+P), pegue el siguiente comando y presione Intro para instalar la extensión.

ext install Azurite.azurite

Una vez completada la instalación, busque el icono de Azure en el panel izquierdo para crear una nueva función de Azure a partir de las plantillas disponibles.

Piloto de JetBrains

Si está desarrollando Azure Functions en Rider, primero debe instalar Azure Toolkit para el complemento de Rider. Una vez que el complemento esté instalado, reinicie el IDE y luego vaya a Configuración -> Herramientas -> Azure -> Funciones.
Si desea que Rider administre las actualizaciones de paquetes automáticamente, haga clic en Descargar la última versión. Además, asegúrese de que la opción "Comprobar actualizaciones para las herramientas de Azure Function Core al inicio" esté marcada.
Luego vaya a Herramientas -> Azure -> Azurite y en el menú desplegable de la ruta del paquete de Azurite, seleccione su instalación de Azurite. Mi ejemplo se parece al siguiente comando.

~/.nvm/versions/node/v14.18.2/lib/node_modules/azurite.

Finalmente, haga clic en Guardar. Ahora está listo para crear Azure Functions en Rider.

Cree un certificado SSL para sus aplicaciones .NET

El desarrollo de .NET con HTTPS en su sistema Fedora requiere la creación de sus certificados SSL. Para eso, debe crear su autoridad de certificación (CA), configurar su sistema Fedora para que confíe en él, firmar el certificado y configurar .NET para usar el certificado.
Tenga en cuenta que estamos creando nuestros certificados SSL porque ganó No podrá confiar en el certificado .NET generado por dotnet dev-certs https –trust. El comando no afecta a un sistema Fedora.

Instalar la herramienta easy-rsa
El primer paso es instalar la herramienta easy-rsa.

sudo dnf install easy-rsa

Configure un directorio de trabajo (fossrsa) con los siguientes comandos:

cd ~mkdir .fossrsachmod 700 .fossrsacd .fossrsacp -r /usr/share/easy-rsa/3/* ././fossrsa init-pki

Cree un nuevo archivo llamado vars para editar los detalles de su CA. Puede cambiar los detalles según sus requisitos.

cat < varsset_var EASYRSA_REQ_COUNTRY "US"set_var EASYRSA_REQ_CITY "NewYork"set_var EASYRSA_REQ_ORG "FOSS"set_var EASYRSA_REQ_EMAIL "[email protected]"set_var EASYRSA_REQ_OU "LocalDevEnvironment"set_var EASYRSA_2ALGO_EASYec "sha5 

El siguiente paso es construir la CA y confiar en ella.

./fossrsa build-ca nopass

Cuando ejecute el comando anterior, le pedirá el nombre de la CA. Presione Intro para usar el valor predeterminado.
sudo cp ./pki/ca.crt /etc/pki/ca-trust/source/anchors/easyrsaca.crt

sudo update-ca-trust

El siguiente paso es crear la solicitud de nuestra CA y firmarla. Después de ejecutar el último comando, escriba sí y presione enter.

mkdir reqcd reqopenssl genrsa -out localhost.keyopenssl req -new -key localhost.key -out localhost.req -subj /C=US/L=Nueva York/O=FOSS/OU=LocalDevEnvironment/CN=localhostcd ... /fossrsa import-req ./req/localhost.req localhost./fossrsa sign-req server localhost

A continuación, coloque todos los archivos necesarios en un directorio común y cree el certificado pfx. Después del comando final, se le pedirá una contraseña. Escriba una contraseña segura y asegúrese de recordarla y mantenerla en secreto.

cd ~mkdir .certscp .fossrsa/pki/issued/localhost.crt .certs/localhost.crtcp .fossrsa/req/localhost.key .certs/localhost.keycd .certsopenssl pkcs12 -export -out localhost.pfx -inkey localhost.key -in localhost.crt

Para completar su configuración, edite el archivo ~/.bashrc y agregue variables de entorno de la siguiente manera.

cat <> ~/.bashrc# .NETexport ASPNETCORE_Kestrel__Certificates__Default__Password="SU_PASSWORD"export ASPNETCORE_Kestrel__Certificates__Default__Path="/home/USERNAME/.certs/localhost.pfx"EOF

Nota:Reemplace YOUR_PASSWORD con su contraseña existente y USERNAME con su nombre de usuario real.
Ahora reinicie su sistema para que los cambios surtan efecto.

Cree una aplicación de consola Hello World .NET

Ahora que tiene instalado .NET Core, es justo crear una aplicación de consola simple "Hello World". El comando dotnet proporciona la aplicación de muestra como una aplicación "hola mundo".

Cree un directorio de proyectos y la infraestructura de código necesaria. Luego, use el siguiente comando dotnet con las opciones new y console para crear una nueva aplicación solo para consola. La opción de marca -o especifica el nombre de su proyecto.

$ dotnet nueva consola -o holaFOSS

El comando anterior creará un directorio de trabajo llamado "helloFOSS".

Cambie a su directorio de trabajo y mire los archivos generados.

$ cd helloFOSS$ lshelloFOSS.csproj obj Programa.cs

El archivo Program.cs es un código de aplicación de consola C# que contiene una aplicación Hello World simple. Ábralo en VS Code o en cualquier editor de texto favorito para verlo y editarlo. Todo es sencillo.

El archivo Helloworld.csproj es el archivo de proyecto compatible con MSBuild. En nuestro caso, el archivo no tiene mucho que ver. Sin embargo, el archivo es importante cuando se desarrolla un sitio web o un servicio web.

El código repetitivo de una nueva aplicación de consola .NET.

usando el Sistema; espacio de nombres helloFOSS{class Program{static void Main(string[] args){Console.WriteLine("¡Hola mundo!");}}}

Puede editar el código repetitivo de acuerdo con los requisitos de su aplicación.

using System;namespace helloFOSS{class Program{static void Main(string[] args){Console.WriteLine("¡Hola mundo! Es FOSSLINUX.COM");Console.WriteLine("FOSSLINUX.COM:Obtenga toda la información sobre ¡¡Software gratuito de código abierto!!");}}}

Para ejecutar el programa, use el comando dotnet run:

$ dotnet run¡Hola mundo! Es FOSSLINUX.COMFOSSLINUX.COM::¡Obtenga toda la información sobre el software gratuito de código abierto!

Notas:comando de ejecución dotnet

  • El comando dotnet run generó el código y ejecutó el código recién creado.
  • Siempre que invoque dotnet run, comprueba si el archivo *.csproj se ha modificado antes de ejecutar el comando de restauración de dotnet.
  • Comprueba si se ha alterado algún código fuente. Si hay nuevos cambios, ejecuta el comando dotnet build para compilar el ejecutable.
  • Finalmente, ejecutará el ejecutable.

Cuando crea una aplicación dotnet, crea un ensamblaje, una biblioteca y, sí, un archivo DLL. Como tal, cuando invoca el comando dotnet run, el proceso dotnet invoca su archivo DLL y se convierte en su aplicación. La DLL que acaba de crear es portátil y se ejecutará en cualquier sistema con .NET Core instalado, ya sea Linux, macOS o Windows.

Plantillas .NET Core para sitios web y servicios web

Las plantillas de .NET Core son esenciales para los desarrolladores de C# e incluyen compatibilidad con C#, F# y Visual Basic. Puede obtener una lista de plantillas integradas en .NET Core usando el comando dotnet new –list.
Algunas plantillas de .NET Core son creadas por terceros y están disponibles con el comando dotnet new. Puede consultar algunas de estas plantillas para hacer su vida de desarrollo un poco más fácil.

Componentes de desarrollo .NET adicionales

Dado que está utilizando Visual Studio Code para el desarrollo de C#, es posible que haya explorado algunas extensiones para potenciar su desarrollo. Un entorno de desarrollo completo requiere herramientas adicionales para la automatización de compilaciones, las pruebas, la implementación y la creación de contenedores. La siguiente lista incluye herramientas que puede explorar más y tener en su arsenal de herramientas de desarrollo de C#.

Herramientas de automatización de compilaciones: Cake Build

Cake (C# Make) es una versión C# multiplataforma de la herramienta de automatización de compilación Make de código abierto. Utiliza un C# DSL para compilar código, ejecutar pruebas unitarias, comprimir archivos, copiar archivos y crear paquetes.
Sus características clave incluyen soporte para herramientas de construcción como MSBuild, xUnit, MSTest, ILMerge, NUnit, NuGet, WiX y SignTool. Consulte la página de inicio de Cake Build para obtener instrucciones y documentación completa.

Automatización de la implementación

OctopusDocker.DotNet

Octopus es líder en una herramienta de automatización de implementación para C#. Permite automatizar implementaciones de aplicaciones complejas. Algunas de sus características clave incluyen:

  • Puede aprovisionar y configurar rápidamente nuevas máquinas para implementar su aplicación.
  • Se integra con servidores de CI para ampliar la automatización de compilación y los procesos de CI.
  • Garantiza implementaciones repetibles y confiables que fomentan los lanzamientos entre diferentes entornos.
Jenkins

Jenkins es una de las herramientas de servidor, implementación y entrega de CI más populares. Algunas de sus características clave incluyen:

  • Una extensa colección de extensiones para adaptarse a la mayoría de las pilas de desarrollo.
  • Proporciona una solución integral desde la construcción hasta la implementación.
  •  Ofrece complementos para admitir la creación, la implementación y la automatización.

Contenerización:Docker.DotNet

Docker.DotNet es una biblioteca cliente de C# para la API de Docker. Puede usarlo para interactuar con la API remota de Docker mediante programación. Sus características clave incluyen:

  • Puede instalarlo a través del administrador de la biblioteca NuGet para Visual Studio.
  • Habilita código completamente asíncrono, sin bloqueo y orientado a objetos en .NET

Conclusión

El artículo es una ilustración detallada de cómo configurar un entorno de desarrollo .NET y herramientas en Fedora 35. Los desarrolladores usan C#, F# y ASP.NET para crear servicios web, sitios web, aplicaciones de escritorio y juegos. También he incluido algunas extensiones esenciales de VS Code y otras herramientas para crear un entorno de desarrollo .NET sólido.

Para los principiantes de C#, puede consultar la aplicación de la consola Hello World para comenzar.


Fedora
  1. Cómo instalar Eclipse IDE en Fedora 16 “Verne” y CentOS 6 / RHEL 6

  2. Instalar Fedora con Windows 8 | Arranque dual Windows 8 y Fedora 16

  3. Cómo instalar Android SDK 4.0.3 y Eclipse ADT en Fedora 16 / Fedora 15

  4. Cómo instalar y configurar Redis 6 en Fedora 34

  5. Cómo instalar y configurar Ansible en Fedora 35

Cómo instalar PostgreSQL y phpPgAdmin en Fedora 34

Cómo instalar Pantheon y Deepin DE en Fedora 30 Workstation

Cómo instalar herramientas de desarrollo en Linux

Cómo instalar y configurar Jenkins en Fedora 35

Cómo instalar y usar Telnet en Fedora 35

Las mejores herramientas de desarrollo web y php ide en ubuntu