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

2022-07-10 15:15:30 +08:00
 formulahendry

最近,微软在 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 Server 允许开发者以新的方式使用 VS Code ,例如:

注册申请

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

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


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

15923 次点击
所在节点    Visual Studio Code
124 条回复
Jakarta
2022-07-11 17:23:33 +08:00
@lingxi27 jetbrains 的 ide 的远程,看似代码在本地,实际上是代码一更新就上传到远端,有时候能感觉到这个上传的过程。vsc 的远程,代码和环境都在远程,但是跟在本地感觉一样。
daveh
2022-07-11 17:33:26 +08:00
@leeyuzhe 网速不行还是服务器没配置好? projector 就一个远程桌面投屏而已,先保证远程 X11 时使用是否正常?它就一个原生 Linux X11 app 投屏,如果没配置好远程 X11 环境,在 X11 桌面如 GNOME 下看起来也会有问题。
其次开启 https 、保证浏览器 websocket 功能正常。很多所谓问题都是外部因素。

gateway 还是 beta 阶段,有问题可以去提。语法语义高亮,这是最基本功能,从没碰到过,先保证远程服务器 maven 能使用正常。其实我好奇你用 vscode remote ,是怎么开十个实例的?

IDEA 也支持 wsl ,都是像本地一样无感使用,无感到你可能都不知道有这个功能存在,它也不像 vscode 一样归类到 remote 。
吹 vscode remote 是远程开发的最高境界,这真是吹牛皮了,就前面我问的那个场景,比如有个远程文件,你要用本地三方软件工具处理,你该怎么办?也感知不到远程的存在吗?用 JB 的 remote 方式,本质上本地还有文件存在,所以直接三方工具打开处理就行,改完自动同步到远程。
tomari
2022-07-11 17:33:52 +08:00
我能想到的为数不多的使用场景就是。。。用 ipad 做开发。。
daveh
2022-07-11 17:45:44 +08:00
@rebeccaMyKid 你看来没用过 JB 的远程工具链,本地代码是自动同步到远程的,不需要人工干预和感知,编译都是发生在远程服务器。你首次设置远程工具链,对应的系统头文件本地会缓存,后续只有头文件变化才会更新缓存。
你在代码中,CTRL+鼠标点击头文件名,就能直接打开 unistd.h 了,不需要去哪个目录选,而且打开的就是你用的对应工具链的,不会其他的。
你改 glibc 头文件,可以直接改远程,或者改本地缓存。
imKiva
2022-07-11 17:46:06 +08:00
@leeyuzhe #73
> 最后 vscode wsl 目前没有遇到任何影响使用的 bug ,也没遇到任何 remote 特有而本地使用没有的 bug 。remote 的使用体验跟本地完全一致。我认为远程开发的最高境界就是感觉不到你的项目在远程,vscode remote 做到了。


如果远端是 WSL ,JB 系的 ide 是可以直接用 \\wsl$ 这样的路径打开的,wsl 和 Windows 本地的路径映射做的非常好,体验上和打开 Windows 目录里的项目一模一样,并不需要 gateway 或者 projector 。

远端不是 WSL 的情况我还没怎么用过,就不瞎说了。
daveh
2022-07-11 18:07:14 +08:00
@rebeccaMyKid #76 #77 楼回答了你这个问题。
leeyuzhe
2022-07-11 18:42:14 +08:00
@imKiva @daveh 我从 2021.1.3 开始使用的 idea + wsl 。期间提过无数 bug ,有时候简直气得想打人。实在没办法只能换回 wlsg ,另外 wsl2 也天天一堆 bug ,就不在这里展开了。

我真不知道有什么好争的,idea 功能性,易用性上确实秒杀 vscode ,但是承认远程开发就是一坨屎这么难吗?

自从 idea 上线 wls 功能整整一年多了,截止到今天还有两个致命 bug 影响我的使用。
https://youtrack.jetbrains.com/issue/IDEA-297004/WSL2-Cannot-assign-requested-address-bind-when-etcresolvconf-changed-Cannot-obtain-Windows-host-IP-alternatively-failed-to

https://youtrack.jetbrains.com/issue/IDEA-293604/IntelliJ-is-hanging-during-build-process-and-indexing-process-when-working-on-the-WSL-projects

还有一个 git 一直-1 的问题,只有临时解。
https://youtrack.jetbrains.com/issue/IDEA-276250/WSL2-The-Git-process-exited-with-the-code-1
leeyuzhe
2022-07-11 18:45:12 +08:00
@imKiva wsl 还有一个问题,一旦换过 sdk 位置或者重装过 idea ,反正搞坏了之前 idea 中 maven 插件对应的 jdk 位置,就会打不开项目,闪退。唯一的解法是禁用 maven 插件,打开项目,设置项目 sdk ,然后启用 maven
lingxi27
2022-07-11 19:18:42 +08:00
@Jakarta 这就是优点啊,可以在本地编辑代码,随时方便切换不同的 remote
开发环境,跨平台开发很舒服
MasterMonkey
2022-07-11 20:00:41 +08:00
太过份了,把我家 jetbrains 往死了打!
daveh
2022-07-11 20:16:42 +08:00
@leeyuzhe 网络、本地文件性能等等,这些都是微软 WSL 2 的问题,以及 WSL 1/2 都存在的执行 wsl.exe 结果随机不一致问题 ,微软祖传 BUG ,JB 这也属于躺枪,只能尽量去适配。
要怪只能怪微软不去积极修复,他自家 vscode 不用 wsl.exe 这个模式,也不去修复问题,阴谋论讲微软是故意留这些 BUG 的。

从技术上讲,本地软件调用执行 WSL 中程序,JB 采用的 wsl.exe 模式更合理,不用一直挂后台占内存,而且对各种 WSL distro 兼容性更好; JB 以前对 WSL 也使用 sshd ,这种也属于挂后台,而且配置麻烦,但不会触发 wsl.exe 的 BUG 。而微软 vscode 采取的是往 WSL 中上传自家闭源二进制文件方式,规避了 wsl.exe 的 BUG ,但兼容性不好,不知你用过非标准的 Linux 比如不用 glibc 用 uClibc 的 WSL distro 没有,明显 vscode 不支持,但 JB 的方式就没有问题。

对你的建议是,如果不是特别要求某些 WSL 2 才支持的特性,请切换成 WSL 1 ,你会发现不再有网络问题,本机文件访问性能大增,还能直接用 Windows 版的 git ,再配置 git 忽略 fileMode ,从此不再有 git 问题。
如果强依赖 WSL 2 ,还不如搞个远程服务器,但你用 IDEA ,我想不到哪个特性要强依赖 WSL 2 。
rebeccaMyKid
2022-07-12 01:08:47 +08:00
@daveh 嗯我确实没仔细用过远程工具链,不过你既然说了那我就信了。我记得我用那个 remote IDE 的时候,就是挺卡。可能 vscode 还是胜在不要配置任何东西吧。装个 plugin 就行了。people would make their choices.
imKiva
2022-07-12 01:29:05 +08:00
@leeyuzhe #86

> 我真不知道有什么好争的,idea 功能性,易用性上确实秒杀 vscode ,但是承认远程开发就是一坨屎这么难吗?


没有在争谁更好用,也没有不承认 JB 远程开发一坨屎。我只是在分享我开发的时候的体验,至少我的体验很好罢了,可能是我的 workflow 跟你不一样造成的。我们组的项目没有用到需要跟网络有关的,遇到 indexing 也是文件太多 index 起来很慢(我设置了存储 index 到本地,但是 IDEA 似乎并不听话;并且组内经常有人怒喷 IDEA 性能低下),我们更依赖命令行工具( Makefile 或者 gradlew )进行编译而 IDEA 只作为代码提示工具和调试窗口等等…… 不同的工作流程会有很不一样的体验,我看你提到 WSL 就顺手把自己的体验说一下而已。
ghostheaven
2022-07-12 10:40:51 +08:00
vim 天下第一[doge]
ghostheaven
2022-07-12 10:56:35 +08:00
刚才用 code-server serve-local 简单体验了一下,跟 VSCode 原生的环境非常接近,Terminal 、Extension 都有。就发现了一个问题,缺少了自动端口转发功能,前后端开发都受限。不知道 VSCode 将来会不会提供通过 Remote 扩展连接到 code server 的功能,这样只要安装一个 VSCode ,配好 Server ,一个办公电脑就可以搞前后端开发了。

如果 VSCode 再做的极致一点,把 Server 的多用户环境也管理起来,团队的人都可以通过一台或几台 XX 云服务器集群来开发,如果性能不足就升级云主机规格,甚至可以搞成 serverless 那种按需启动的的服务,用的时候启动,断开以后就关闭服务。存储通过 NAS 共享。

只要保证有一个比较好的宽带,一个可以收发邮件的轻薄本,哪里都可以 coding 。
byte10
2022-07-12 14:54:41 +08:00
@daveh 远程快发很强大的。我讲一个使用场景,最近很多学生经常要搭建环境运行项目,而我只要在我的云服务器搭建好服务器就可以直接给他们使用了。遇到问题,我只要在这台服务器上看到并修复即可。如果没有这个玩意,每个人都帮他们搭建一个服务器。那得多头疼。每个人都要搭建一个 mysql ,搭建一个 mongodb ,在搭建 nodejs ,搭建 jdk 。这是一个使用场景。而最场景的就是在公司开发,然后回家也能继续开发,上次也有人说用远程开发桌面开发啊,不一样的概念。
@devtiange 对!快捷键头疼,应该可以用一个浏览器,去掉所有快捷键来使用。
@lanlanye 自己用就很舒服啊。远程开发配置和环境都一样。
3282361
2022-07-12 17:49:52 +08:00
@christin 朋友,Fleet 的代码配色方案你可以访问到吗,能不能帮忙导出一份,谢谢了
christin
2022-07-12 18:08:00 +08:00
@3282361 在哪里能找到?
3282361
2022-07-12 18:23:28 +08:00
@christin 抱歉我也不知道。。也许设置界面里、也许有配置文件,找不到就算了
daveh
2022-07-12 19:10:01 +08:00
@byte10 你这种适合用 Docker ,跟是否远程开发也关系不大,本机一样可以开发,JB 系 IDE 支持直接使用 Docker 工具链。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX