GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Visual Studio Code Remote Development puede cambiarlo todo

OK, eso es un poco de clickbaity pero seguramente me impresionó mucho. Puede leer más sobre el desarrollo remoto de VS Code (en el momento de escribir este artículo, disponible en las compilaciones de VS Code Insiders), pero aquí hay un poco de mi primera experiencia con él.

Las extensiones de desarrollo remoto requieren Visual Studio Code Insiders .

Desarrollo remoto de Visual Studio Code le permite usar un contenedor, una máquina remota o el Subsistema de Windows para Linux (WSL) como un entorno de desarrollo con todas las funciones. De hecho, divide VS Code por la mitad y ejecuta la parte del cliente en su máquina y el "Servidor de VS Code" básicamente en cualquier otro lugar. El paquete de extensión Desarrollo remoto incluye tres extensiones. Consulte los siguientes artículos para comenzar con cada uno de ellos:

  • Remoto - SSH - Conéctese a cualquier ubicación abriendo carpetas en una máquina/VM remota mediante SSH.
  • Remoto - Contenedores:trabaje con una cadena de herramientas de espacio aislado o una aplicación basada en contenedores dentro (o montada en) un contenedor.
  • Remoto - WSL:obtenga una experiencia de desarrollo impulsada por Linux en el subsistema de Windows para Linux.

Déjame dar un ejemplo concreto. Digamos que quiero hacer algún trabajo en cualquiera de estos idiomas, excepto que no tengo NINGUNO de estos idiomas/SDKS/herramientas en mi máquina.

Aparte: Es posible que, en este punto, ya hayas decidido que estoy exagerando y que esta publicación no tiene sentido. Sin embargo, aquí está la cosa cuando se trata de desarrollo remoto. Resiste.

En el lado de Windows, muchas personas crean máquinas virtuales de Windows en la nube de alguien y luego RDP (Escritorio remoto) en esa máquina y empujan los píxeles, dejando que la máquina virtual haga todo el trabajo mientras usted controla la pantalla de forma remota. En el lado de Linux, muchas personas crean máquinas virtuales o contenedores de Linux y luego SSH en ellos con su terminal favorito, ejecutan vim y tmux o lo que sea, y luego envían texto, dejando que la máquina virtual haga todo el trabajo mientras controla la pantalla de forma remota. En ambos escenarios no eres realmente cliente/servidor, eres terminal/servidor o thin client/servidor. VS Code es un cliente pesado con interfaces limpias y claras para servicios de idiomas que tienen transparencia de ubicación.

Escribo algún código, tal vez una instancia de objeto, luego se invoca intellisense presionando "." - ¿Quién hace ese trabajo? ¿De dónde sale esa lista? Si está ejecutando código localmente Y en el contenedor, debe asegurarse de que ambos lados estén sincronizados, los mismos SDK, etc. Es un desafío.

Bien, no tengo el lenguaje Rust ni el kit de herramientas en mi máquina.

Clonaré este repositorio:

git clone https://github.com/Microsoft/vscode-remote-try-rust

Luego ejecutaré Code, la versión Insiders:

C:\github> git clone https://github.com/Microsoft/vscode-remote-try-rust   
Cloning into 'vscode-remote-try-rust'...
Unpacking objects: 100% (38/38), done.
C:\github> cd .\vscode-remote-try-rust\
C:\github\vscode-remote-try-rust [main =]> code-insiders .

Luego, VS Code dice:oye, este es un contenedor de desarrollo, ¿quieres que lo abra?

Hay un archivo devcontainer.json que tiene una lista de extensiones que necesita el proyecto. E instalará esas Extensiones VS dentro de un Contenedor Docker de Desarrollo y luego acceder a ellos de forma remota. Esta no es una lista de extensiones que su sistema LOCAL necesita; no desea ensuciar su sistema con 100 extensiones. Desea tener solo las extensiones que necesita para el proyecto en el que está trabajando. Compartimentación. Podría hacer desarrollo y nunca instalar nada en su máquina local, pero está encontrando un punto óptimo que no implica empujar texto o píxeles.

Ahora mira esta captura de pantalla y absorbe. Está configurando un dockerfile, claro, con las herramientas de desarrollo que desea usar y luego ejecuta docker exec y trae VS Code Server.


Consulte la sección Extensiones de VS Code y consulte la esquina inferior izquierda. Esa barra de estado verde muestra que estamos en una situación cliente/servidor. Las extensiones específicas de Rust están instaladas en Dev Container y las estamos usando desde VS Code.

Cuando escribo y trabajo en mi código de esta manera (por cierto, me tomó solo unos minutos comenzar) tengo una experiencia completa con Intellisense, depuración, etc.

Aquí estoy haciendo una sesión de depuración en vivo de una aplicación de Rust sin configuración que no sea VS Code Insiders, Remote Extensions y Docker (que ya tenía).

Como mencioné, puede ejecutar dentro de WSL, contenedores o SSH. Es temprano pero está extraordinariamente limpio. Tengo muchas ganas de ver hasta dónde y sin esfuerzo puede llegar este estilo de desarrollo. ¡Hay mucho menos afeitado de yak! Elimina efectivamente toda la parte de configuración de su experiencia de codificación y lo hace directamente.

Patrocinador: Administre las solicitudes de extracción de GitHub directamente desde el IDE con el último JetBrains Rider. Un generador de perfiles de rendimiento integrado en Windows también viene al rescate.


Docker
  1. Cómo instalar el código de Visual Studio en Ubuntu 18.04

  2. Cómo instalar el código de Visual Studio en Ubuntu 20.04

  3. ¿Cómo instalar Visual Studio Code en CentOS 7?

  4. ¿Cómo usar Qt en Visual Studio Code?

  5. ¿Cómo cambiar la fuente de la interfaz de usuario de Visual Studio Code?

Cómo instalar Visual Studio Code (VS Code) en Fedora 34 / 35

Cómo instalar Visual Studio Code en AlmaLinux 8

Cómo instalar el código de Visual Studio en Manjaro 20

Cómo instalar el código de Visual Studio en Debian 11

Cómo instalar el código de Visual Studio en Ubuntu 15.04

Cómo editar código en contenedores Docker con Visual Studio Code