V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
formulahendry
V2EX  ›  Visual Studio Code

微软发布 VS Code Server 了~ 目前是 private preview 阶段

  •  
  •   formulahendry ·
    formulahendry · 2022-07-10 15:15:30 +08:00 · 14942 次点击
    这是一个创建于 654 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近,微软在 VS Code 官方博客中宣布了 Visual Studio Code Server !

    远程开发的过去与未来

    2019 年,微软发布了 VS Code Remote ,开启了远程开发的新时代

    2020 年,微软发布了 GitHub Codespaces —— 一个全托管的远程开发解决方案。

    如今,Visual Studio Code Server 来了!

    什么是 VS Code Server ?

    Visual Studio Code Server 是一项可以在远程开发机器上运行的服务,例如桌面 PC 或者虚拟机 (VM)。它允许开发者通过 vscode.dev URL 从任何地方安全地连接到这个远程计算机,而且不需要通过 SSH 。

    目前,微软发布了 private preview 版本的 VS Code Server ,以及一个可以轻松安装、更新、管理和连接到 VS Code Server 服务的 CLI ( code-serverCLI )。开发者可以将服务器安装在您喜欢的任何位置(比如本地的开发机器、云端的虚拟机等),并使用 VS Code for Web ( vscode.dev )通过浏览器安全地访问它,而无需进行设置 SSH 或 https 。

    目前,code-serverCLI 是区别于 codeCLI 的一个独立的 CLI 。未来,codeCLI 将会统一,让开发者可以同时管理桌面和服务器。

    架构

    VS Code Server 的 CLI 在 VS Code 客户端 (vscode.dev) 和你的远程计算机之间建立隧道。隧道( Tunneling )也被称为端口转发,将数据从一个网络安全地传输到另一个网络。

    VS Code Server 包括以下两个核心组件:

    • VS Code 服务器:运行在远程机器上的后端服务器,以及一个便于安装、更新、管理和连接到 VS Code 服务器的 CLI 。
    • Remote-Server 扩展:它会被自动加载到本地的 VS Code 客户端,方便连接到远程机器。

    使用场景

    VS Code Server 允许开发者以新的方式使用 VS Code ,例如:

    • 在 SSH 支持可能受限的远程计算机上进行开发,或者你需要基于 Web 进行访问。
    • 在不支持安装桌面版 VS Code 的机器上进行开发,比如 iPad/平板电脑 或者 Chromebook 。
    • 体验所有代码都可以在浏览器沙箱中执行的安全优势。

    注册申请

    目前 VS Code Server 还处于 private preview 阶段,可以访问下面的链接进行注册申请:

    https://aka.ms/vscode-server-signup


    原文链接: https://zhuanlan.zhihu.com/p/539411629

    124 条回复    2022-07-23 14:44:11 +08:00
    1  2  
    daveh
        101
    daveh  
       2022-07-12 19:12:35 +08:00 via iPhone
    @imKiva 用的 WSL 2 吗? WSL 2 访问本地盘文件效率非常低下,index 慢也可能是这个导致的,可以转换成 WSL 1 试试。
    byte10
        102
    byte10  
       2022-07-12 19:19:36 +08:00
    @daveh 嗯 你可以试试用一下 vscode ,真的挺牛。用来远程开发 java ,idea 就算了。
    felixcode
        103
    felixcode  
       2022-07-13 09:07:46 +08:00
    @daveh
    他用的 Mac 本地 Docker 不兼容。
    daveh
        104
    daveh  
       2022-07-13 18:37:09 +08:00 via iPhone
    @felixcode 哪方面不兼容? M1/M2 现在也可以跑 x64 容器了。
    felixcode
        105
    felixcode  
       2022-07-13 18:45:39 +08:00
    @daveh
    https://v2ex.com/t/864747
    x86 是模拟出来的,性能感人
    daveh
        106
    daveh  
       2022-07-13 20:20:35 +08:00
    @felixcode macOS Ventura 开放 Rosetta 给虚拟机用了,到时应该性能会大大提高。
    smallthing
        107
    smallthing  
       2022-07-14 22:54:41 +08:00
    @imKiva 笑死了,然而这个 P9 协议慢死。
    imKiva
        108
    imKiva  
       2022-07-15 12:02:50 +08:00
    @smallthing #107 我们知道 P9 很慢,所以我们的项目文件都在 wsl 目录里,并不经过 P9 。你仔细看我的图哈
    smallthing
        109
    smallthing  
       2022-07-15 23:26:35 +08:00
    @imKiva
    我看的就是你的图啊。vscode 操作的是原生 ext4
    你的要么就是$wsl 共享(依然是 plan9,但固态硬盘勉强可以接受)
    如果是 mnt 的 win 的文件系统就是双重慢
    imKiva
        110
    imKiva  
       2022-07-15 23:30:04 +08:00
    @smallthing #109 噢噢原来你说的是这个意思,不过还好,我还真没体验出来,闹笑话了,见谅~
    daveh
        111
    daveh  
       2022-07-16 12:37:44 +08:00 via iPhone
    @imKiva 除非你在 WSL 2 中跑 IDE ,否则绕不开 P9 ,编译时可能编译器和代码都在 WSL 中,用不上 P9 ,但如果在 Windows 中运行的 IDE ,索引代码文件时必须通过 P9 访问。文件密集访问时可能会慢,但如果机器性能够强,这点慢也基本感觉不到。
    用 WSL 最好的体验是用 WSL 1 ,因为对 IDE 来讲,就是访问本地文件,索引飞速,而 WSL 中编译器访问代码,通过 drvfs ,据说比 P9 块十几倍。
    zxCoder
        112
    zxCoder  
       2022-07-21 20:17:56 +08:00
    @daveh 我需要非常谨慎地对待文件的同步,比如定时把远程同步到本地,不然就经常会出现一团糟的情况,有的文件是本地新,有的是远程更新。
    还有比如本地创建个空文件夹,也同步不了。等等,总体体验确实不如 vscode 直接访问远程,无奈 IDE 确实是好用
    zxCoder
        113
    zxCoder  
       2022-07-21 20:18:55 +08:00
    @zxCoder 目前最接近 vscode remote 体验的应该是 gateway ,不过太卡了,体验也比较差
    daveh
        114
    daveh  
       2022-07-21 22:53:04 +08:00
    @zxCoder 用远程 Deployment 模式,你的代码文件只会在本地修改,自动同步到远程,怎么会出现远程的新呢?远程会产生编译输出文件,这些文件默认在本地并不存在,需要你手工同步到本地,可以认为这些文件本来就是远程新。
    本地空文件夹,如果需要同步远程,在 Deployment, Options 里勾选相关选项;同样也可以设置删除本地文件时,自动删除远程。这两个不是默认选项。

    如果远程服务器中断,倒是有可能导致本地代码文件新,远程的旧,此时只需要打开 Deployment, Sync 一下就行。

    从你对 gateway 描叙来看,是否远程服务器 ping 值高?否则也不会卡,gateway 还有不少界面问题、或者功能缺失,但本身卡的问题倒是没有碰到过,除非远程服务器性能比较差或者 ping 值高或者当时负载高,gateway 界面上是会实时显示远程服务器 ping 值和负载的。
    daveh
        115
    daveh  
       2022-07-21 23:38:29 +08:00 via iPhone
    @sidkang 这就尴尬了,群“雄”没一个能打的,只是尴吹 vsc 多牛 B ,不敢拿实际场景来对战。
    好歹大家也让这个儿童欢乐多一把呀。
    zxCoder
        116
    zxCoder  
       2022-07-22 09:47:56 +08:00
    @daveh 那只能说我们的使用场景确实存在很大的不同了。就我个人而言,jetbrain 的 deployment 模式确实无法满足需求,就像是存在一种很不自然的 gap
    zxCoder
        117
    zxCoder  
       2022-07-22 10:04:44 +08:00
    @zxCoder 不过其实我最近还是一直在用 deployment ,vscode 写大型代码还是不太舒坦,总感觉 jetbrain 更加智能化一点,毕竟是专业 IDE
    daveh
        118
    daveh  
       2022-07-23 11:18:16 +08:00 via iPhone
    @zxCoder 不太理解你的所谓 gap 在哪?其实就一个习惯问题而已,如果你的场景,是前面所说,写脚本,远程服务器生成输出文件,这个输出文件其实没有必要同步下载到本地,只需要打开 Browse Remote Host 就能浏览远程输出文件,双击也能在 IDE 中打开查看内容,远程文件更新后,IDE 也会提醒你是否要查看最新文件,如果本地编辑,也能同步到远程。

    我理解你用 vscode 远程,也只是在文件浏览窗口,能同时看到远程新文件名称,其实你也没有把文件下载本地,如果你要用其他三方工具处理文件,还是得下载本地才行,当远程文件更新了,本地下载文件也不会同步,需要你手工下载同步更新。

    同样,JB 的 Development 模式,是分了两个窗口来浏览文件,左侧 Project 窗口看的是本地最新文件,右侧你打开 Browse Remote Host 浏览的是远程最新文件,如要三方工具处理远程文件,也只需要下载同步就行。

    而 vs code 远程麻烦的地方是,如果你要下载文件,你得另外指定其他本地目录吧(没用过,有错可以纠正)?本地下载文件目录 vsc 中也看不到,而 JB 则不用另外指定目录,下载后,直接在与远程一致目录结构中看到远程文件。
    如果 vsc 中单独加本地目录进来,好,你添加的本地目录,是否也能看到最新的远程文件?是否也需要手工同步下载?如此一来比 JB 的优势在哪?而 JB 反而更直观,直接在左侧 Project 窗口看到下载文件。

    讲这么多,其实如前面所说,就一个习惯问题而已,以及个人会不会用的问题,工具是死的,怎么灵活运用起来看个人。

    而且 vsc 远程没有吹的那么神,因为开发时有很多任务场景,vsc 远程都很难搞定。比如前面讲的,怎么方便用三方工具处理工程文件? vsc 的吹手没一个敢回答。
    zxCoder
        119
    zxCoder  
       2022-07-23 11:35:16 +08:00
    @daveh "如果 vsc 中单独加本地目录进来,好,你添加的本地目录,是否也能看到最新的远程文件?是否也需要手工同步下载?如此一来比 JB 的优势在哪?而 JB 反而更直观,直接在左侧 Project 窗口看到下载文件。"

    vsc 不需要区分什么本地目录和远程目录,想了一下这差不多就是我说的 gap 的地方。我添加了目录就直接反映在远程目录里,不需要任何同步,更别说手工同步了
    daveh
        120
    daveh  
       2022-07-23 12:30:57 +08:00 via iPhone
    @zxCoder 那你有个远程文件,别人也发给你一个相同文件,你怎么去比较这两个文件是否有差异?
    zxCoder
        121
    zxCoder  
       2022-07-23 12:38:15 +08:00
    @daveh 所以这就是我说的我们的使用场景不同了,我倒是没有这种需求,只是单纯觉得 vsc remote 就可以直接在本地访问远程的项目很方便
    daveh
        122
    daveh  
       2022-07-23 12:54:52 +08:00 via iPhone
    @zxCoder 那你用 vscode 没有下载文件到本地诉求,文件都留远程服务器,用 JB 不也是一样的?想看远程文件,用 JB 的 Browse Remote Host 直接去看好了。

    所以,那是为何之前要纠结 JB 中怎么下载文件到本地?
    zxCoder
        123
    zxCoder  
       2022-07-23 13:08:04 +08:00
    @daveh 比如 IDE 里文件路径自动提示用过吗?如果训练的 model checkpoint 不同步到本地,IDE 就不能给我提示(这种大大小小的问题还有其他,暂时想不起来了),但是 vsc remote 或者 gateway 就不一样了,我是直接在操作远程的东西,体验是完全不一样的
    daveh
        124
    daveh  
       2022-07-23 14:44:11 +08:00 via iPhone
    @zxCoder 有依赖的文件就下载本地,点下鼠标就完成。而且你要的文件路径提示,跟文件内容是否新也没关系。

    你训练的文件是什么格式?不用查看内容或共享吗? IDE 可能有插件能看,但功能一般比专有软件弱。
    用专有软件看,你就得下载到本地。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4564 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 01:05 · PVG 09:05 · LAX 18:05 · JFK 21:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.