Skip to content

VS Code: Remote Development #38

@xwcoder

Description

@xwcoder

VS Code: Remote Development

The VS Code team does a lot of effort on remote development.

Remote Development using VS Code desktop client

IMAGE

This feature allows you to use a container, remote machine, or the Windows Subsystem for Linux (WSL) as a full-featured development environment.

This feature requires Remote Development extension pack.

  1. Remote - SSH - Work with source code in any location by opening folders on a remote machine/VM using SSH.
  2. Remote - Tunnels - Work with source code in any location by opening folders on a remote machine/VM using a VS Code Tunnel (rather than SSH).
  3. Dev Containers - Work with a separate toolchain or container based application by opening any folder mounted into or inside a container.
  4. WSL - Get a Linux-powered development experience from the comfort of Windows by opening any folder in the Windows Subsystem for Linux.

Standalone "VS Code Server”

IMAGE

The VS Code now provides a standalone "VS Code Server," which is a service built off the same underlying server used by the remote extensions, plus some additional functionality, , like an interactive CLI and facilitating secure connections to vscode.dev.

Three application modes

As described in How-to-Contribute, the VS Code can be run in three modes.

Desktop

Running on Electron with extensions run in NodeJS:

macOS and Linux

./scripts/code.sh
./scripts/code-cli.sh # for running CLI commands (eg --version)

Windows

.\scripts\code.bat
.\scripts\code-cli.bat

VS Code for the Web

Extensions and UI run in the browser.

macOS and Linux

./scripts/code-web.sh

Windows

.\scripts\code-web.bat

Code Server Web

UI in the browser, extensions run in code server (NodeJS):

macOS and Linux

./scripts/code-server.sh --launch

Windows

.\scripts\code-server.bat --launch

Some speculation about the Code Server Web

IMAGE

  1. Remove the Renderer Process
  2. Provide an http server to serve web page and others web resources
  3. Use http and WebSocket (provides a WebSocket Server) for communication
  4. Provide browser based version of some services.

Some observations about the Code Server Web

Use the same WebSocket connection for command, data and terminal communication.

Open Folder

Read dir:

IMAGE

Output

IMAGE

Open File

Read File

IMAGE

Output:

IMAGE

Update File

IMAGE

Terminal command

Terminal input

IMAGE

Output

IMAGE

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions