喜大普奔,VS Code 开启远程开发新时代!

640?wx_fmt=gif

在本月初的 PyCon 2019 大会上,微软发布了 Visual Studio Code Remote,可以帮助开发者在容器、物理机器、虚拟机以及 Windows Subsystem for Linux(WSL)中实现无缝的远程开发,正式开启远程开发的新时代。

640?wx_fmt=png

来源:code.visualstudio.com

作者 | SCOTT HANSELMAN

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

虽说标题有点夸张,但是Visual Studio Code的远程开发功能确实很出色。详细信息,请点击这里阅读相关文档(https://code.visualstudio.com/docs/remote/remote-overview?WT.mc_id=-blog-scottha)。在我撰写本文的时候,VS Code Insiders版本就包含了远程开发的功能。以下是我第一次使用该功能的体验。

注:如果你想尝试远程开发的功能,则需要安装Visual Studio Code Insiders。

你可以在容器、远程计算机或WSL中将Visual Studio Code Remote Development作为功能齐备的开发环境。它可以有效地将VS Code分成两半,并在你的机器上运行客户端,而“VS Code服务器”可以在其他任何地方运行。这个远程开发的扩展包有三个扩展:

  • 远程 - SSH:通过SSH打开远程计算机或虚拟机上的文件夹,就可以连接到该机器上。

  • 远程 - 容器:在容器内部(或挂载到容器上)使用沙盒工具链或基于容器的应用程序。

  • 远程 - WSL:在Linux的Windows子系统中获得Linux支持的开发体验。

下面我们来看一个具体的例子。假设我想用编程语言编写一些东西,但我的机器上没有任何语言、SDK或工具包。

如果是Windows,很多人会在某个云中创建Windows虚拟机,然后他们利用远程桌面进入该计算机进行远程操控,虚拟机负责实际工作,而他们只负责远程查看屏幕。至于Linux的情况,很多人会创建Linux虚拟机或容器,然后使用他们喜欢的终端通过SSH连接到这些机器上,运行vim和tmux等等,然后推送文本,通过虚拟机隔着屏幕远程完成所有工作。在这两种情况下,你都不是真正的客户端/服务器模式,而是终端/服务器或瘦客户端/服务器模式。而VS Code是一个胖客户端,拥有干净、清晰的语言服务接口,其依赖的语言服务是与位置无关的。

我输入一些代码,可能是一个对象实例,然后按下“.”来调用智能提示——谁提供的智能提示?提示列表里的内容来自哪里?如果你的代码同时在本地和容器内运行,那么就需要确保双方同步,使用相同的SDK等。这可不是一件易事。

比如,我的机器上没有Rust语言或工具包。

那么,我需要克隆这个代码库:


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

然后,我需要运行VS Code(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 .
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 .

这时,VS Code会说:“这是一个开发容器, 需要打开吗?”

devcontainer.json文件会列出项目所需的所有扩展。VS Code会在一个开发用的Docker容器中安装这些VS扩展包,然后远程访问它们。这些扩展不会装到本地系统上——你不希望100个扩展来搞乱你的系统。你希望只拥有目前的项目所需的扩展。即使你的本地计算机什么也不安装,你也可以照样做开发,也不需要使用远程桌面和SSH等。

640?wx_fmt=png

仔细看看这个截图。它设置了一个dockerfile,而且还设置了你喜欢的开发工具,还运行了docker exec,还启动了VS Code服务器!

640?wx_fmt=png

看看VS Code的扩展(Extensions)栏,再看看左下角。 绿色状态栏表明我们处于客户端/服务器状态。我们在开发容器中安装了Rust独有的扩展,然后就可以在VS Code中使用它们。

640?wx_fmt=png

在这种方式下,输入代码时可以获得智能提示、调试等完整的体验。顺便说一下,设置这种方式只需要几分钟。

640?wx_fmt=png

这个截图显示,我正在做一个Rust应用程序的实时调试会话,除了VS Code Insiders、远程扩展包以及Docker(我以前就有)之外,我没有做任何额外的设置。

640?wx_fmt=png

如上所述,你可以在WSL、容器或SSH中运行VS Code远程开发功能。虽然该功能还处于早期阶段,但已经非常出色了。我十分期待看到这种风格的开发能走多远,能带来多大的优势。今后,我们不需要再依赖Yak Shaving了!VS Code远程开发无需太多设置,就能够正确地使用。

原文:https://www.hanselman.com/blog/VisualStudioCodeRemoteDevelopmentMayChangeEverything.aspx

本文为 CSDN 翻译,转载请注明来源出处。

最简单的机器学习入门指南

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

【END】

640?wx_fmt=jpeg

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

640?wx_fmt=jpeg

 热 文 推 荐 

百年 IBM 如何用代码拯救生命

索尼发布新一代 IoT 芯片,万物互联方式将改写?

首款“印度制造”的微处理器 AJIT 面世!

☞国内第一部 AI 本科专业教育培养体系出炉!

☞“再见,微软!”

服务迁移之路 | Spring Cloud向Service Mesh转变 | 技术干货

不止面基V神,今年以太坊技术及应用大会,他还期待……

☞一文获取36个Python开源项目,平均Star 1667,精选自5000个项目

史上最大规模ACL大会放榜,百度10篇NLP论文被录用!

☞大神!这段代码让程序员躺赚200W,源码简单,你怎么看?

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

展开阅读全文

没有更多推荐了,返回首页