Docs: 文档更新

master
bicijinlian 2 years ago
parent 08d92e51d6
commit 0ccf89b8b4

@ -0,0 +1,254 @@
{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"开篇:多语言笔记 `Polyglot Notebooks` 概要与使用 \n",
"=============================================="
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 什么是 Polyglot Notebooks (多语言笔记)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 什么是 `Notebook`\n",
"Notebook(笔记)是一种混合`格式化文本`和`可执行代码`,创建`具有可运行示例`的特殊文档程序。Notebook 由多个单元格组成,它们是不同的文本区域。通常有三种:\n",
"+ 代码单元:包含可运行的代码\n",
"+ 输出单元格:包含上次执行关联代码单元格的结果\n",
"+ Markdown 单元格:用于编辑和显示格式丰富(但静态)的文本,包括超链接、图像、图表等\n",
" \n",
"Jupyter 是Notebook技术的代表它已经从科学和学术环境的起源发展成为数据分析和数据科学行业的中流砥柱。"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 什么是 `Polyglot Notebooks`"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"简言之,就是可以混合使用多种语言的 notebook, 支持混合使用以下语言:\n",
"\n",
"![支持语言](./assets/images/SupportedLanguages.png)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 体系架构"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"大体上由三部分组成前端UI(Jupyter、VSCode等)、交互协议(PMP、JMP)、执行器(.net interactive)和语言服务,如下图:\n",
"\n",
"![整体架构图](./assets/images/framework.svg)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 使用 Polyglot Notebooks(多语言笔记)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 方式一:`VS Code` + `Polyglot Notebooks 插件` + `.NET7`"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"步骤:\n",
"1. 下载安装 [.NET SDK 7](https://dotnet.microsoft.com/en-us/download)\n",
"2. 下载 [VS Code](https://code.visualstudio.com/)\n",
"3. 安装 VS Code [插件](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.dotnet-interactive-vscode) `Polyglot Notebooks `\n",
"4. 打开VS, 打开一个目录。\n",
"5. 新建一个笔记本文件ctl+Shift+p create: new Jupyter Notebook 如图:\n",
" ![创建新笔记本](./assets/images/create.png)\n",
"6. 示例\n",
" ![示例](./assets/images/demo.png)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 方式二:与 `Jupyter` 结合, 直接在 `Juptye` 中使用"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"将 .NET Interactive 注册为 Jupyter 的内核, 在 Jupyter Notebook、JupyterLab 和其他 Jupyter 前端中将 .NET Interactive 内核用于多语言笔记本使Jupyter Notebook、JupyterLab等直接支持 C# F# Powershell 语言类型。 "
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"步骤:\n",
"1. [.Net 7 SDK](https://dotnet.microsoft.com/en-us/download)\n",
"2. Jupyter 安装Jupyter的一个简单方法是通过 [Anaconda](https://www.anaconda.com/products/distribution)\n",
"3. 可以通过打开 Anaconda 提示符 Windows 或终端macOS、Linux并运行以下命令来验证安装以确保 Jupyter 和 .NET 已安装并存在于路径上:\n",
" ```shell\n",
" jupyter kernelspec list\n",
" 输出类似python3 ~\\jupyter\\kernels\\python3\n",
"\n",
" dotnet --version\n",
" 输出类似7.0.200\n",
" ```\n",
"4. 在控制台中安装全局工具dotnet interactive\n",
" ```shell\n",
" dotnet tool install -g Microsoft.dotnet-interactive\n",
" ```\n",
"5. 切换回 Anaconda 提示符并通过运行以下命令安装 .NET Interactivedotnet interactive jupyter install\n",
" ```shell\n",
" > dotnet interactive jupyter install\n",
" Installing using jupyter kernelspec module.\n",
" Installed \".NET (C#)\" kernel.\n",
" Installing using jupyter kernelspec module.\n",
" Installed \".NET (F#)\" kernel.\n",
" Installing using jupyter kernelspec module.\n",
" Installed \".NET (PowerShell)\" kernel.\n",
" ```\n",
"6. 可以通过在 Anaconda 提示符中再次运行以下命令来验证安装。现在,应会看到每种默认支持的 .NET 语言的条目kernelspec\n",
" ```shell\n",
" > jupyter kernelspec list\n",
" .net-csharp ~\\jupyter\\kernels\\.net-csharp\n",
" .net-fsharp ~\\jupyter\\kernels\\.net-fsharp\n",
" .net-powershell ~\\jupyter\\kernels\\.net-powershell\n",
" python3 ~\\jupyter\\kernels\\python3\n",
" ```"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"更新 .net interactive\n",
"+ 打开控制台并运行以下代码:\n",
" ```shell\n",
" > dotnet tool update -g Microsoft.dotnet-interactive\n",
" ```"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"运行 .NET Interactive的 Jupyter\n",
"+ 启动 Jupyter执行 Anaconda 提示符或从 Anaconda 提示符执行,或者你可以使用 Anaconda Navigator启动 jupyter 或者 labjupyter notebook\n",
"+ 在浏览器中启动 Jupyter 后,可以选择使用 C#、F# 或 PowerShell 创建笔记本,如图:![Jupyter](./assets/images/UseJupyter.png)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### 方式三:`NET Repl` + `Notebooks文件`"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"使用Net Repl交互式执行或者直接执行Notebooks文件\n",
"步骤:\n",
"1. 安装 .net tool 全局工具 [dotnet-repl](https://github.com/jonsequitur/dotnet-repl) 如图:![install](./assets/images/install.dotnet-repl.png)\n",
"2. 启动dotnet repl, 如图: ![使用REPL](./assets/images/UseReplClient.png)\n",
"3. 执行一个现有的笔记本文件,如图:![使用REPL](./assets/images/ReplRunFile.png)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".NET (C#)",
"language": "C#",
"name": ".net-csharp"
},
"language_info": {
"name": "polyglot-notebook"
},
"polyglot_notebook": {
"kernelInfo": {
"defaultKernelName": "csharp",
"items": [
{
"aliases": [],
"name": ".NET"
},
{
"aliases": [
"C#",
"c#"
],
"languageName": "C#",
"name": "csharp"
},
{
"aliases": [
"js"
],
"languageName": "JavaScript",
"name": "javascript"
},
{
"aliases": [],
"languageName": "KQL",
"name": "kql"
},
{
"aliases": [
"frontend"
],
"name": "vscode"
},
{
"aliases": [],
"name": "webview"
}
]
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 KiB

@ -0,0 +1,312 @@
<mxfile host="Electron" modified="2023-04-13T07:58:45.067Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="HCmbMISIGiuYku31IEvp" version="21.1.2" type="device">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="2595" dy="1540" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="t6ZCzsWARIrcch3DQErl-0" value="" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=4;fillColor=#fff2cc;gradientColor=#ffd966;strokeColor=#d6b656;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="271" y="40" width="200" height="650" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-1" value="" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=4;fillColor=#d5e8d4;gradientColor=#97d077;strokeColor=#82b366;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="42" y="40" width="178" height="650" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-2" value="" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=4;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="528" y="40" width="1404" height="650" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-3" value="&lt;b style=&quot;font-size: 22px;&quot;&gt;&lt;font style=&quot;font-size: 22px;&quot;&gt;用户端界面&lt;/font&gt;&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=22;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="67" y="40" width="125" height="40" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-4" value="&lt;span style=&quot;font-size: 24px;&quot;&gt;&lt;b style=&quot;font-size: 24px;&quot;&gt;消息协议&lt;/b&gt;&lt;/span&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=24;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="306.5" y="50" width="125" height="40" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-5" value="&lt;b style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 40px;&quot;&gt;交互式内核:执行代码、语言服务&lt;/font&gt;&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=24;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="700" y="50" width="632" height="40" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-11" target="t6ZCzsWARIrcch3DQErl-25">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-11" value="&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;&lt;b&gt;VS Code&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;.net Interactive&lt;/font&gt;&lt;br&gt;&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="100" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-12" target="t6ZCzsWARIrcch3DQErl-25">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-12" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;&lt;b&gt;CodeSpaces&lt;/b&gt;&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="220" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-13" target="t6ZCzsWARIrcch3DQErl-25">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-13" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;Azure Data Studio&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="160" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-14" target="t6ZCzsWARIrcch3DQErl-25">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-14" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;&lt;b&gt;Try.NET&lt;/b&gt;&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="260" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-15" target="t6ZCzsWARIrcch3DQErl-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-15" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;Jupyter&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="340" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-16" target="t6ZCzsWARIrcch3DQErl-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-16" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;Azure Notebooks&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="382" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-17" target="t6ZCzsWARIrcch3DQErl-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-17" value="&lt;font style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;VS Code&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;基于 Jupyter&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="443" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=3;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-18" target="t6ZCzsWARIrcch3DQErl-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-18" value="&lt;span style=&quot;font-size: 18px;&quot;&gt;nteract&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="505" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-68" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;strokeWidth=4;fillColor=#fad9d5;strokeColor=#ae4132;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-21" target="t6ZCzsWARIrcch3DQErl-48">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="620" y="595" />
<mxPoint x="620" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-21" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;&lt;b&gt;dotnet-repl&lt;/b&gt;&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fillColor=#f5f5f5;gradientColor=#b3b3b3;strokeColor=#666666;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="62" y="570" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-25" value="PMP&lt;br&gt;基于Json的消息协议" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.6;dx=35;strokeWidth=3;fontStyle=1" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="306.5" y="150" width="140" height="120" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-65" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=1;strokeWidth=4;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-26" target="t6ZCzsWARIrcch3DQErl-48">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-26" value="JMP&lt;br&gt;Jupyter 消息协议" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.6;dx=35;strokeWidth=3;fontStyle=1" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="299" y="373" width="140" height="120" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-36" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;glass=0;shadow=0;strokeWidth=3;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="588" y="120" width="644" height="540" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-37" value="&lt;font style=&quot;font-size: 30px;&quot;&gt;&amp;nbsp; C#&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;gradientColor=#7ea6e0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="683" y="199.5" width="183" height="90" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-38" value="&lt;font style=&quot;font-size: 30px;&quot;&gt;&amp;nbsp; F#&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=left;fillColor=#dae8fc;gradientColor=#7ea6e0;strokeColor=#6c8ebf;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="683" y="309.5" width="183" height="90" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-39" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;font style=&quot;font-size: 22px;&quot;&gt;&amp;nbsp;&lt;b&gt; Power&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 22px;&quot;&gt;&lt;b&gt;&amp;nbsp; Shell&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=left;fillColor=#dae8fc;gradientColor=#7ea6e0;strokeColor=#6c8ebf;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="683" y="419.5" width="183" height="90" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-40" value="&lt;font size=&quot;1&quot; style=&quot;&quot;&gt;&lt;b style=&quot;font-size: 32px;&quot;&gt;dotnet-interactive&lt;/b&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="772" y="120" width="322" height="70" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-41" value="&lt;b&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;连接到运行时&lt;/font&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=3;arcSize=50;strokeColor=#2B1F85;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="752" y="550" width="183" height="70" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-42" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;Roslyn&lt;/font&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="774" y="204.5" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-43" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;FSI&lt;/font&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="774" y="314.5" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-44" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;PWSH&lt;br&gt;SHELL&lt;/b&gt;&lt;br&gt;&lt;/font&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="774" y="424.5" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-45" value="&lt;font style=&quot;font-size: 30px;&quot;&gt;Mermaid&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;gradientColor=#7ea6e0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="886" y="234.5" width="140" height="60" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-46" value="&lt;b style=&quot;font-size: 20px;&quot;&gt;&lt;font color=&quot;#787878&quot;&gt;BYO&lt;br&gt;language&lt;/font&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=3;dashed=1;strokeColor=#6B6B6B;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="886" y="364.5" width="140" height="95" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-47" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1205" y="224.5" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-48" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="552" y="330" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=4;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" target="t6ZCzsWARIrcch3DQErl-48">
<mxGeometry relative="1" as="geometry">
<mxPoint x="446" y="210" as="sourcePoint" />
<mxPoint x="531" y="345" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-57" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1205" y="359.5" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-58" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;strokeWidth=4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1205" y="499.5" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-59" value="Standed&lt;br&gt;I/O" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.6;dx=35;strokeWidth=4;fontStyle=1;strokeColor=#00008A;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1313" y="100" width="140" height="120" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-60" value="PMP" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.6;dx=35;strokeWidth=4;fontStyle=1;strokeColor=#00008A;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1313" y="510" width="140" height="120" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-61" value="JMP" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.6;dx=35;strokeWidth=4;fontStyle=1;strokeColor=#00008A;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1313" y="305" width="140" height="120" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-62" value="&lt;font style=&quot;font-size: 30px;&quot;&gt;Kusto&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;gradientColor=#7ea6e0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1066" y="294.5" width="131" height="70" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-63" value="&lt;font style=&quot;font-size: 30px;&quot;&gt;SQL&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;gradientColor=#7ea6e0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1046" y="349.5" width="131" height="70" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-64" value="&lt;font style=&quot;font-size: 23px;&quot;&gt;代理内核&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=center;fillColor=#dae8fc;strokeColor=#6c8ebf;gradientColor=#7ea6e0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1044" y="567" width="131" height="70" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-69" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=3;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-48" target="t6ZCzsWARIrcch3DQErl-37">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="612" y="410" as="sourcePoint" />
<mxPoint x="652" y="-100" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-73" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeWidth=3;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-48" target="t6ZCzsWARIrcch3DQErl-38">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="612" y="410" as="sourcePoint" />
<mxPoint x="662" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-74" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeWidth=3;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-48" target="t6ZCzsWARIrcch3DQErl-39">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="612" y="410" as="sourcePoint" />
<mxPoint x="662" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-77" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;strokeWidth=3;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-41" target="t6ZCzsWARIrcch3DQErl-48">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="442" y="790" as="sourcePoint" />
<mxPoint x="492" y="740" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-78" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-41" target="t6ZCzsWARIrcch3DQErl-46">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="622" y="870" as="sourcePoint" />
<mxPoint x="672" y="820" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-81" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-63" target="t6ZCzsWARIrcch3DQErl-47">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="462" y="820" as="sourcePoint" />
<mxPoint x="742" y="760" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-83" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-41" target="t6ZCzsWARIrcch3DQErl-63">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="802" y="840" as="sourcePoint" />
<mxPoint x="1082" y="780" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-85" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-41" target="t6ZCzsWARIrcch3DQErl-64">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="926" y="805" as="sourcePoint" />
<mxPoint x="1026" y="800" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-86" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-61" target="t6ZCzsWARIrcch3DQErl-101">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="892" y="850" as="sourcePoint" />
<mxPoint x="1232" y="730" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-87" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-60" target="t6ZCzsWARIrcch3DQErl-108">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="952" y="890" as="sourcePoint" />
<mxPoint x="1292" y="770" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-88" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" target="t6ZCzsWARIrcch3DQErl-107">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1452" y="570" as="sourcePoint" />
<mxPoint x="1313" y="790" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-89" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-60" target="t6ZCzsWARIrcch3DQErl-105">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1012" y="940" as="sourcePoint" />
<mxPoint x="1352" y="820" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-90" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-59" target="t6ZCzsWARIrcch3DQErl-96">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="982" y="920" as="sourcePoint" />
<mxPoint x="1322" y="800" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-91" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-58" target="t6ZCzsWARIrcch3DQErl-60">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="992" y="930" as="sourcePoint" />
<mxPoint x="1332" y="810" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-92" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-57" target="t6ZCzsWARIrcch3DQErl-61">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1002" y="940" as="sourcePoint" />
<mxPoint x="1342" y="820" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-93" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-47" target="t6ZCzsWARIrcch3DQErl-59">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1012" y="950" as="sourcePoint" />
<mxPoint x="1352" y="830" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-94" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;entryX=1;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" target="t6ZCzsWARIrcch3DQErl-64">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1202" y="530" as="sourcePoint" />
<mxPoint x="1362" y="840" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-95" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="t6ZCzsWARIrcch3DQErl-64" target="t6ZCzsWARIrcch3DQErl-57">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1402" y="900" as="sourcePoint" />
<mxPoint x="1742" y="780" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-96" value="&lt;font style=&quot;font-size: 22px;&quot;&gt;&lt;font style=&quot;font-size: 22px;&quot; color=&quot;#787878&quot;&gt;&lt;b style=&quot;&quot;&gt;SQL Tools&lt;br&gt;&lt;/b&gt;&lt;/font&gt;Service&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=3;strokeColor=#6B6B6B;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1492" y="50" width="140" height="95" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-97" value="&lt;font style=&quot;font-size: 30px;&quot;&gt;&amp;nbsp; R&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=left;fillColor=#008a00;strokeColor=#005700;fontColor=#ffffff;verticalAlign=top;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1666" y="97" width="203" height="109.5" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-98" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;IRKernel&lt;/span&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;verticalAlign=middle;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1757" y="97.5" width="107" height="107" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-99" value="&lt;font style=&quot;font-size: 30px;&quot;&gt;&amp;nbsp; Julia&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=left;fillColor=#008a00;strokeColor=#005700;fontColor=#ffffff;verticalAlign=top;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1646" y="151.5" width="203" height="109.5" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-100" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;julia&lt;/span&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1737" y="152" width="107" height="107" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-101" value="&lt;font style=&quot;font-size: 30px;&quot;&gt;Python&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=left;fillColor=#008a00;strokeColor=#005700;fontColor=#ffffff;verticalAlign=middle;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1622" y="209.75" width="203" height="109.5" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-102" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;IPyKernel&lt;/span&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1702" y="200.5" width="107" height="107" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-103" value="&lt;span style=&quot;font-size: 30px;&quot;&gt;&amp;nbsp;HTML&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=left;fillColor=#008a00;strokeColor=#005700;fontColor=#ffffff;verticalAlign=top;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1532" y="359.5" width="203" height="109.5" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-104" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;浏览器&lt;/span&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1623" y="360" width="107" height="107" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-105" value="&lt;span style=&quot;font-size: 30px;&quot;&gt;Java&lt;br&gt;&amp;nbsp;Script&lt;br&gt;&lt;/span&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;align=left;fillColor=#008a00;strokeColor=#005700;fontColor=#ffffff;verticalAlign=top;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1492" y="432" width="203" height="109.5" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-106" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;浏览器&lt;/span&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1583" y="432.5" width="107" height="107" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-107" value="&lt;font color=&quot;#787878&quot;&gt;&lt;span style=&quot;font-size: 22px;&quot;&gt;&lt;b&gt;其它内核&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=3;strokeColor=#6B6B6B;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1710" y="509.5" width="171.5" height="95" as="geometry" />
</mxCell>
<mxCell id="t6ZCzsWARIrcch3DQErl-108" value="&lt;font color=&quot;#787878&quot;&gt;&lt;span style=&quot;font-size: 22px;&quot;&gt;&lt;b&gt;dotnet interactive&lt;br&gt;(远程)&lt;br&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=3;strokeColor=#6B6B6B;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1482" y="584" width="220" height="95" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

@ -70,7 +70,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -86,7 +86,7 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -95,16 +95,7 @@
"kernelName": "csharp"
}
},
"outputs": [
{
"ename": "Error",
"evalue": "(2,13): error CS0246: 未能找到类型或命名空间名“Person”(是否缺少 using 指令或程序集引用?)",
"output_type": "error",
"traceback": [
"(2,13): error CS0246: 未能找到类型或命名空间名“Person”(是否缺少 using 指令或程序集引用?)"
]
}
],
"outputs": [],
"source": [
"//单纯引用.cs文件不能直接使用解决方法待查找\n",
"var p = new Person()\n",
@ -123,7 +114,7 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -132,48 +123,7 @@
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>{ Name = xx, Agx = 33 }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td>xx</td></tr><tr><td>Agx</td><td><div class=\"dni-plaintext\"><pre>33</pre></div></td></tr></tbody></table></div></details><style>\r\n",
".dni-code-hint {\r\n",
" font-style: italic;\r\n",
" overflow: hidden;\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview {\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview td {\r\n",
" vertical-align: top;\r\n",
" text-align: start;\r\n",
"}\r\n",
"details.dni-treeview {\r\n",
" padding-left: 1em;\r\n",
"}\r\n",
"table td {\r\n",
" text-align: start;\r\n",
"}\r\n",
"table tr { \r\n",
" vertical-align: top; \r\n",
" margin: 0em 0px;\r\n",
"}\r\n",
"table tr td pre \r\n",
"{ \r\n",
" vertical-align: top !important; \r\n",
" margin: 0em 0px !important;\r\n",
"} \r\n",
"table th {\r\n",
" text-align: start;\r\n",
"}\r\n",
"</style>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"var x = new {Name=\"xx\",Agx=33};\n",
"display(x);"
@ -190,7 +140,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -199,48 +149,7 @@
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>NotebookStudy.ConsoleApp.Person</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Id</td><td><div class=\"dni-plaintext\"><pre>2</pre></div></td></tr><tr><td>Name</td><td>本山</td></tr><tr><td>Address</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>Age</td><td><div class=\"dni-plaintext\"><pre>55</pre></div></td></tr></tbody></table></div></details><style>\r\n",
".dni-code-hint {\r\n",
" font-style: italic;\r\n",
" overflow: hidden;\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview {\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview td {\r\n",
" vertical-align: top;\r\n",
" text-align: start;\r\n",
"}\r\n",
"details.dni-treeview {\r\n",
" padding-left: 1em;\r\n",
"}\r\n",
"table td {\r\n",
" text-align: start;\r\n",
"}\r\n",
"table tr { \r\n",
" vertical-align: top; \r\n",
" margin: 0em 0px;\r\n",
"}\r\n",
"table tr td pre \r\n",
"{ \r\n",
" vertical-align: top !important; \r\n",
" margin: 0em 0px !important;\r\n",
"} \r\n",
"table th {\r\n",
" text-align: start;\r\n",
"}\r\n",
"</style>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"//如果找不到文件,需要先生成 NotebookStudy.ConsoleApp 项目\n",
"\n",
@ -268,7 +177,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -277,26 +186,7 @@
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>newtonsoft.json, 13.0.3</span></li></ul></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"{\"Id\":2,\"Name\":\"newtonsoft类库\",\"Age\":6}"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"//安装库的最新版本\n",
"#r \"nuget:newtonsoft.json\"\n",
@ -309,7 +199,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -318,26 +208,7 @@
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>newtonsoft.json, 13.0.3</span></li><li><span>System.Text.Json, 4.7.2</span></li></ul></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"{\"Id\":2,\"Name\":\"System.Text.Json\\u7C7B\\u5E93\",\"Age\":6}"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"//安装库的指定版本\n",
"#r \"nuget:System.Text.Json,4.7.2\"\n",
@ -350,7 +221,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
@ -359,17 +230,7 @@
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>xunit, 2.4.2</span></li></ul></div></div>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"outputs": [],
"source": [
"//安装最新的预览版库\n",
"#r \"nuget:xunit,*-*\"\n",
@ -401,8 +262,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"+ 默认 Nuget 包源\n",
" > 默认包源可能是https://api.nuget.org/v3/index.json 使用默认包源的话,可以不添加包源引用。当然也可以添加。"
"+ 在线包源\n",
" > 默认包源https://api.nuget.org/v3/index.json 使用默认包源的话,可以不添加包源引用。当然也可以添加。"
]
},
{
@ -418,7 +279,8 @@
},
"outputs": [],
"source": [
"#r \"nuget:AutoFixture.Xunit2\""
"//添加包源:可以添加多个\n",
"#i \"nuget:https://api.nuget.org/v3/index.json\""
]
},
{
@ -434,8 +296,7 @@
},
"outputs": [],
"source": [
"//也可以指定默认包源\n",
"#i \"nuget:https://api.nuget.org/v3/index.json\"\n",
"//使用包源\n",
"\n",
"#r \"nuget:AutoFixture.Xunit2\""
]

@ -13,7 +13,27 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 使用C#"
"## C# 例子"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
},
"vscode": {
"languageId": "polyglot-notebook"
}
},
"outputs": [],
"source": [
"var student = new {Id=1, Name=\"张三\",Age=18};\n",
"student.Display();"
]
},
{
@ -21,7 +41,26 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 使用 F#"
"## F# 例子"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "fsharp"
},
"polyglot_notebook": {
"kernelName": "fsharp"
},
"vscode": {
"languageId": "polyglot-notebook"
}
},
"outputs": [],
"source": [
"printfn \"Hello World from F#\""
]
},
{
@ -29,7 +68,27 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## 使用Powershell"
"## Powershell 例子"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"dotnet_interactive": {
"language": "pwsh"
},
"polyglot_notebook": {
"kernelName": "pwsh"
},
"vscode": {
"languageId": "polyglot-notebook"
}
},
"outputs": [],
"source": [
"#! powershell\n",
"Write-Host \"hellow powershell\""
]
},
{

Loading…
Cancel
Save