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

来源: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等。

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

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

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

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

如上所述,你可以在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】

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

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

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

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

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

戳他了解更多↓↓↓

 热 文 推 荐 

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

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

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

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

☞“再见,微软!”

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

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

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

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

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

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

你点的每个“在看”,我都认真当成了喜欢

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

  1. 微软发布 VS Code Remote,开启远程开发新时代!

    作者 | formulahendry 责编 | 沭七 今天( 北京时间 2019 年 5 月 3 日 ),在 PyCon 2019 大会上,微软发布了 VS Code Remote,开启了远程开发的新 ...

  2. VS Code Remote 发布!开启远程开发新时代

    今天( 北京时间 2019 年 5 月 3 日 ),在 PyCon 2019 大会上,微软发布了 VS Code Remote,开启了远程开发的新时代!这次发布包含了三款核心的全新插件,它们可以帮助开 ...

  3. xterm远程连服务器连不上_VS Code Remote 发布!开启远程开发新时代

    今天( 北京时间 2019 年 5 月 3 日 ),在 PyCon 2019 大会上,微软发布了 VS Code Remote,开启了远程开发的新时代!这次发布包含了三款核心的全新插件,它们可以帮助开 ...

  4. oracle 开链,欧链OracleChain开启Dapps应用新时代

    2018年6月3日,欧链OracleChain在北京举办产品发布会,正式发布了移动端的一站式EOS生态平台--PocketEOS.该产品不仅支持EOS钱包功能,也是基于EOS的Dapp应用商店.欧链联 ...

  5. 免校准的电量计量芯片_万物互联,开启智慧计量新时代—2020年中国物联网计量创新发展论坛在济南举办...

    10月22日,2020年中国物联网计量创新发展论坛在泉城济南举办.论坛以"万物互联,开启智慧计量新时代"为鲜明主题,共同探讨了物联网计量领域新技术.新成绩,提出了新方向.新前景.浙 ...

  6. “开启IT管理新时代”惠普软件客户论坛圆满闭幕

    2012年3月8日,由惠普软件主办的"开启IT管理新时代"客户论坛在北京富力万丽酒店盛大召开,来自政府.金融.电信.制造行业的众多IT主管代表出席了本论坛.本次论坛分设运维管理和应 ...

  7. 使用 Visual Studio Code 进行远程开发

    在完成了 AT 指令入门的学习之后,接下来就要使用 AT 指令进行 Socket 通信了.问题在于,之前 .NET 的 Socket 编程只需一台电脑便可进行学习,服务器和客户端都可以在本机运行,也可 ...

  8. 三大院士、十大数据库掌门人,岳麓对话开启数字经济新时代!

    10月23日,第二届"长沙 · 中国1024程序员节"在湖南长沙盛大开幕.大会以"开源开放.算据赋能--开启数字经济新时代"为主题,囊括岳麓尖峰对话.2021技 ...

  9. 变身职场“钢铁侠”:RPA开启智能办公新时代

    变身职场"钢铁侠":RPA开启智能办公新时代 人工智能技术的不断进步与发展,已经给许多人带去了颠覆以往的体验,人们手里握着智能手机,家中遍布智能家居,就连原本略显"沉闷& ...

最新文章

  1. 3. 5种常见卷积论文、解读、使用方法、实现代码整理(conv)
  2. 《统计学习方法》资源
  3. ssm配置多数据库支持
  4. 什么是java?为什么大家都学习java技术?
  5. linux printk 源码,Printk原理简介
  6. 美观又实用,10 款强大的开源 Javascript 图表库
  7. Apache POI组件操作Excel,制作报表(四)
  8. CF #319 div 2 D
  9. STC51入门笔记(郭天祥C语言)---第九节:常见芯片和运放电路介绍
  10. python+selenium+tkinter打造网易云音乐下载器
  11. The CUDA compiler identification is unknown 解决
  12. 波及Win 11,让安全员自动放弃的零日漏洞,微软这次麻烦了
  13. 计算机期刊杂志投稿指南
  14. 远程桌面链接怎么用(win10电脑远程桌面连接工具怎么使用)
  15. oracle中的cursor属性,Oracle Cursors语法总结
  16. 浮云E绘图SDK3.0,快速开发电路图、电子图纸、工业控制流程图、工艺流程图等绘图项目
  17. conda虚拟环境pip装包总装载总环境中解决办法
  18. 2020华师c语言程序客观题作业和答案,18秋华师C语言程序设计B在线作业-3辅导资料.docx-资源下载在线文库www.lddoc.cn...
  19. 最全汉字正则校验:只允许汉字,允许带点,允许拓展汉字,生僻字,比如䶮之类的汉字
  20. 阿里钉钉总裁威武,鼓励「领导向下属写周报」

热门文章

  1. [Ubuntu] 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
  2. [论文阅读] Cost-Effective Active Learning for Deep Image Classification
  3. ajax+对号,操作成功动画效果(圆圈变成勾号)
  4. centos 更新源_centos6 更换yum源
  5. Linux下使用SSH连接远端服务器技术总结
  6. 前端组件化和模块化最大的区别是什么_7招提升你的前端开发效率
  7. win上部署基于openvino2020.2的yolov5算法
  8. 时间轴 纵向_高考最新硬货!高中历史时间轴(文字版)高能来袭,背会就能多拿分!...
  9. Dropbox 的崛起之路,创始人曾拒绝乔布斯天价收购
  10. 喜欢 TypeScript 的人,一点都不比 Python 少