VS Code多语言笔记本扩展插件 Polyglot Notebooks
早在2022年12月12日,微软就发布了VS Code的多语言笔记本扩展插件 Polyglot Notebooks,所使用的引擎为. NET Interactive,目前支持包括C#、F#、PowerShell、JavaScript和SQL等多种语言。让数据科学家能够简单执行跨语言任务,就像是使用SQL查询SQL Server数据库,并将表格结果共享至JavaScript和HTML,创建可互动可视化的应用。
Notebooks是一种方便使用的交互式程序开发工具,可用于执行代码、可视化数据、执行方程式,或是编写纯文字,Notebooks的特性是让用户能以增量的和分段的方式,执行单元格内的程序。最有名的Notebooks来自Jupyter项目,多数人会结合Python和Jupyter Notebooks一起使用,快速迭代代码,以创建具有文字和数据可视化的内容,也可成为学习程序编程语言,或快速制作概念原型的工具。在2019年,微软通过创建支持C#、F#、PowerShell等.NET语言的Jupyter核心,将.NET带入Jupyter生态系统,而微软所开发的Polyglot Notebooks,则进一步扩展Notebooks的优点,过去开发者要在Notebooks上使用多种语言非常麻烦,难以使用一般IDE语法高亮显示和自动完成等功能。
Polyglot Notebooks扩展插件使用.NET技术所开发的.NET Interactive引擎,由于该引擎可充当笔记本中不同编程语言的核心,因此使得Polyglot Notebooks能够顺畅以多种语言进行开发,就像是连接SQL Server数据库和Kusto集群,并使用SQL或是KQL编写和执行查询。
开发者可在同一个笔记本中使用多种语言,并获得良好的开发体验,而不需要在使用多种语言时,在不同的工具间切换,当以一种语言完成工作时,开发者便可以将需要的变量共享给另一种语言,继续在同一个文件里进行开发。
安装
Polyglot Notebooks是一个 Visual Studio code 扩展。要使用它,您需要:
- 安装.NET 7
- 安装 Visual Studio Code (VS Code)
- 启动VS Code 并安装"Polyglot" 插件.
安装完毕之后,我们可以有两种开启方法:
- 新增 ipynb 文件再切换到 .NET Interactive 引擎
(ipynb 文件是用于编写 IPython Notebook 的文件,也就是 Jupyter Notebook 在使用的文件。 而微软把 .NET Interactive 引擎让 Jupyter Notebook 可以支持 C#, F#, SQL 等语言,让 Notebook 可以支持多语言的编写) - 使用 Polyglot Notebooks 的指令或快捷键,直接建立 dib 或 ipynb 文件
增一个 ipynb 文件:
现在我们已经可以看到让我们编码的单元格了,这样就完成准备工作啦!首先当然要从 Hello world 开始啦,让我们直接在单元格里面开写:
单元格的右下角可以让我们切换语言:
例如说我们可以来个 JavaScript:
当然我们并不是只有这一个小小的单元格能用,可以按下左上角的「+code」来添加代码单元格,或是把鼠标移到单元格最底部,会出现执行之后帮你往下新增一格的按钮:
现在我们可以同时放上两个语言:
我们也可以针对某一格来执行,或是用鼠标选择指定的单元格,就可以选择执行指定的单元格以上或以下的部份,如果有修改某一格,然后要从修改的部分重跑一次的时候还挺方便的。此外还有复制贴上单元格、合并单元格等等操作,可以在下图右边红框的「...」找到,这边就不再赘述。
插入 Markdown 单元格
眼尖的朋友应该发现了,上面新增单元格的地方除了「+ code」以外,还有「+Markdown」的选项,毕竟 Polyglot Notebooks 这东西还是一本「笔记本」,只能贴 Code 不能写笔记还算什么笔记本呢,对吧?
因此我们可以在代码区块之间适当地加入 Markdown 区块,来提供需要的信息,或是纪录需要的笔记。 让我们编写的过程可更有条理,之后回来阅读也可以更快掌握内容。
除了在最底下新增单元格的做法以外,我们也可以对指定的区块上下来插入新单元格:
我们很多情况并不会只用内置的语法就完成,通常还会安装一些 Nuget 组件来直接帮我们解决问题,在 Polyglot Notebooks 里面,我们要安装 Nuget 组件,要使用 #r “nuget:{套件名称}”
的指令
例如我想要安装 这个套件包Microsoft.SemanticKernel,我就可以这样写:
小结
这篇记录了 Polyglot Notebooks 的基本用法,能像 Python 的 Jupyter NoteBook 逐步对资料进行处理,又有 C# 的 Linq 能用,用这东西写个爬虫之类的小脚本,边跑随改实在是舒适的体验,用来学习算法之类的就很不错了。
VS Code多语言笔记本扩展插件 Polyglot Notebooks的更多相关文章
- visual studio code开发代码片段扩展插件
背景 visual studio code编辑器强大在于可以自己扩展插件,不仅可以去插件市场下载,也可以按照官方的API很方便的制作适合自己的插件: 自己最近在开发一个手机端网站项目,基于vant项目 ...
- 创建VS Code 扩展插件
VS Code提供了强大的扩展功能,我们可以通过开发插件实现自己的业务模型编辑器.这里我们快速介绍一下插件的创建.开发和发布过程. 创建插件开发模板 首先需要确认系统中安装了node.js,并且可以使 ...
- vscode简单使用介绍及个人常用扩展插件
vscode全称Visual Studio Code 是微软开发一款IDE,官方地址 vscode 作为一款前端编辑器功能很强大,灵活,可以根据个人喜好选择扩展插件,而且还支持多种开发语言, 关于v ...
- Sublime Text 前端开发常用扩展插件推荐
Sublime Text 前端开发常用扩展插件推荐 Sublime Text Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能 更重要的是,Sublime Text ...
- 100个精选zencart扩展插件
100个精选zencart扩展插件 特别推荐 1. 数据库备份 2. 产品横向布局. 3. 邮件订阅Newsletter Subscribe. 4. google 翻译google_translate ...
- vs2010(vs2012)好用的扩展插件介绍
一直以来只使用番茄vs助手(https://www.wholetomato.com/downloads/default.asp)辅助写代码,也都忘了是谁介绍的,不过确实好用. 相比原始的vs,它提供了 ...
- 五十八.Kibana使用 、 Logstash配置扩展插件
1.导入数据 批量导入数据并查看 1.1 导入数据 1) 使用POST方式批量导入数据,数据格式为json,url 编码使用data-binary导入含有index配置的json文件 ]# ...
- vs code的使用与常用插件和技巧大全总结
vs code的使用与常用插件和技巧大全总结 Author:3# 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@ 极客小俊,CSDN官方首发 ...
- BlazeMeter发布chrome扩展插件,支持JMeter脚本创建
BlazeMeter发布chrome扩展插件,支持JMeter脚本创建http://www.automationqa.com/forum.php?mod=viewthread&tid=3898 ...
- Sharepoint 2013列表视图和字段权限扩展插件(免费下载)!
记得2014年春节期间,有博客园的网友通过QQ向我咨询Sharepoint 2013列表视图和字段权限扩展,因为之前他看到我博客介绍Sharepoint 2010列表视图和字段的权限控制扩展使用,问有 ...
随机推荐
- 20192305 王梓全Python程序设计实验一报告
20192305 王梓全Python程序设计实验一报告 课程:<Python程序设计> 班级: 1923 姓名: 王梓全 学号:20192305 实验教师:王志强 实验日期:2021年4月 ...
- STM32中遇到的一些关键字
3.在STM32编程中遇到的一些关键字 STM32是基于RAM的架构,学习它可以是嵌入式的一个基础部分.因此对于一些关键字也必须了解,在STM32学习过程中,遇到过如下变量,对其有疑问 关键字 功能 ...
- Treewidget 节点的遍历
父节点的遍历 // Treewidget遍历操作 // 只遍历父节点 int nParentNodeCount = ui->treeWidget->topLevelItemCount(); ...
- 从NCBI中下载各物种参考基因组
1. 打开NCBI 2. 输入物种名,以HPV为例: 搜索,到genomes分栏下面选择Assembly点击进去 3. 进去下面的界面,再点击RefSeq进入下载界面 4. 进入下载界面: HPV参考 ...
- Transformer_Detection-(DETR) 引入视觉领域的首创DETR (ECCV2020)
End-to-End Object Detection with Transformers paper: https://link.zhihu.com/?target=https%3A//arxiv. ...
- jmeter之【报错记录】
{ "code": "E0001", "success": false, "description": "Co ...
- bootstrap栅格系统,排版,代码,表格表单
一.栅格系统 栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局. 实例: <!DOCTYPE html> <html lang="zh-CN&q ...
- C语言中的循环
1我觉得循环就是程序一直重复的执行一些语句,直到当符合条件时停止.循环总体分为while循环,do while循环和for循环. 2while循环和do while循环的区别:while是先判定是否符 ...
- node.js 数据模拟
Node: js在服务端的一个运行环境 node框架:express koa egg (本文采用express) express: 是基于node的一个web框架 restful api:是目前流 ...
- nojejs 弹出子窗口,取值后返回
1.主窗口: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...