diff --git a/Docs/多语言笔记.0.导航目录.ipynb b/Docs/多语言笔记.0.导航目录.ipynb new file mode 100644 index 0000000..86c3e1b --- /dev/null +++ b/Docs/多语言笔记.0.导航目录.ipynb @@ -0,0 +1,47 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "b1dedd01", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "导航目录结构\r\n" + ] + } + ], + "source": [ + "Console.WriteLine(\"导航目录结构\");" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".NET (C#)", + "language": "C#", + "name": ".net-csharp" + }, + "polyglot_notebook": { + "kernelInfo": { + "defaultKernelName": "csharp", + "items": [ + { + "aliases": [], + "languageName": "csharp", + "name": "csharp" + } + ] + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Docs/多语言笔记.1.4.1.管理 NuGet包.ipynb b/Docs/多语言笔记.1.4.1.管理 NuGet包.ipynb new file mode 100644 index 0000000..f3df961 --- /dev/null +++ b/Docs/多语言笔记.1.4.1.管理 NuGet包.ipynb @@ -0,0 +1,324 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "065bfcac", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "source": [ + "管理NuGet包\n", + "===========" + ] + }, + { + "cell_type": "markdown", + "id": "0baca368", + "metadata": {}, + "source": [ + "## 浏览和查找NuGet包" + ] + }, + { + "cell_type": "markdown", + "id": "18559f3e", + "metadata": {}, + "source": [ + "VS Code 提供了查看和查找NuGet包的UI界面:打开一个`Polyglot Notebook`文件,打开一个\"终端\", 切换到 \"nuget\"项:打开一个UI管理窗口。如下图:\n", + "\n", + "![UI窗口](./assets/images/NugetUI.jpg)" + ] + }, + { + "cell_type": "markdown", + "id": "c110c37f", + "metadata": {}, + "source": [ + "## 导入 NuGet 包" + ] + }, + { + "cell_type": "markdown", + "id": "7eecdf67", + "metadata": {}, + "source": [ + "在`.NET Interactive`中,C#和F#核允许你使用`#r nuget`魔法命令将NuGet包导入到你的交互式会话中。两种语言的语法相同。" + ] + }, + { + "cell_type": "markdown", + "id": "73546727", + "metadata": {}, + "source": [ + "+ 导入最新版本的包,使用` #r nuget` 而无需指定版本号:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "ede3455f", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
Installed Packages
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#r \"nuget:Newtonsoft.Json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{\"Name\":\"张三\",\"Age\":20},{\"Name\":\"李四\",\"Age\":69},{\"Name\":\"王五\",\"Age\":82}]\r\n" + ] + } + ], + "source": [ + "//使用包:序列化一个匿名类集合\n", + "\n", + "//引入命名空间\n", + "using Newtonsoft.Json;\n", + "\n", + "{ //花括号分隔作用域\n", + " var persons = new[]\n", + " {\n", + " new {Name=\"张三\", Age = 20},\n", + " new {Name=\"李四\", Age = 69},\n", + " new {Name=\"王五\", Age = 82},\n", + " }; \n", + "\n", + " var jsonText = Newtonsoft.Json.JsonConvert.SerializeObject(persons);\n", + " Console.WriteLine(jsonText);\n", + "}\n" + ] + }, + { + "cell_type": "markdown", + "id": "da4b55e2", + "metadata": {}, + "source": [ + "+ 导入指定版本的包" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
Installed Packages
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#r \"nuget:Newtonsoft.Json,13.0.3\"" + ] + }, + { + "cell_type": "markdown", + "id": "07da3486", + "metadata": {}, + "source": [ + "+ 导入预览版本的包" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
Restore sources
Installed Packages
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#r \"nuget:System.CommandLine,*-*\"" + ] + }, + { + "cell_type": "markdown", + "id": "fe5a81be", + "metadata": {}, + "source": [ + "## 设置包源" + ] + }, + { + "cell_type": "markdown", + "id": "c8ce789d", + "metadata": {}, + "source": [ + "如果包不是Nuget官方托管包,或者想明确包的来源,使用`#i`命令指定一个nuget包源" + ] + }, + { + "cell_type": "markdown", + "id": "b2e11743", + "metadata": {}, + "source": [ + "+ 默认包源\n", + " 可以不用设置,默认使用的官方托管包" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
Restore sources
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "//默认包源:可以不设置\n", + "#i \"nuget:https://api.nuget.org/v3/index.json\"" + ] + }, + { + "cell_type": "markdown", + "id": "39096d0b", + "metadata": {}, + "source": [ + "+ 远程包源\n", + "\n", + " 组织通常会将包存储在私人或预发布源中" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
Restore sources
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "//添加dotnet项目的预发布nuget源\n", + "#i \"nuget:https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json\"" + ] + }, + { + "cell_type": "markdown", + "id": "134c7d97", + "metadata": {}, + "source": [ + "+ 本地包源\n", + "\n", + " 可以将一个本地文件夹作为nuget源" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [], + "source": [ + "//\"C:\\Users\\用户账号\\.nuget\\packages\" 是 Windows 系统中 visual studio 默认的本机 nuget 包存储位置,可以当本地包源(注意路径用户账号换成自己的)\n", + "//当然可使用任意文件夹,里面要有nuget包\n", + "\n", + "#i \"nuget:C:\\Users\\ruyu\\.nuget\\packages\"\n", + "#r \"nuget:MyOrg.MyPackage\"" + ] + }, + { + "cell_type": "markdown", + "id": "54d60e85", + "metadata": {}, + "source": [ + "+ 需要认证的包源\n", + "\n", + " 一些企业搭建有自己的nuget私有包服务器(MyGet等),使用时需要认证。\n", + "\n", + " 但是:.NET Interactive 不直接支持访问需要身份验证的包源,但你可以通过在用户级别的 nuget.config 文件中放入包源的 PAT 来访问经过身份验证的源。你可以在这里了解更多关于这种方法的信息" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".NET (C#)", + "language": "C#", + "name": ".net-csharp" + }, + "polyglot_notebook": { + "kernelInfo": { + "defaultKernelName": "csharp", + "items": [ + { + "aliases": [], + "languageName": "csharp", + "name": "csharp" + } + ] + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Docs/多语言笔记.1.4.2.使用 导入命令.ipynb b/Docs/多语言笔记.1.4.2.使用 导入命令.ipynb new file mode 100644 index 0000000..e78ba35 --- /dev/null +++ b/Docs/多语言笔记.1.4.2.使用 导入命令.ipynb @@ -0,0 +1,38 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "065bfcac", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "source": [ + "使用NuGet包\n", + "===========" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".NET (C#)", + "language": "C#", + "name": ".net-csharp" + }, + "polyglot_notebook": { + "kernelInfo": { + "defaultKernelName": "csharp", + "items": [ + { + "aliases": [], + "languageName": "csharp", + "name": "csharp" + } + ] + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Docs/多语言笔记.10.1.其它客户端.ipynb b/Docs/多语言笔记.10.1.其它客户端.ipynb new file mode 100644 index 0000000..c3475d8 --- /dev/null +++ b/Docs/多语言笔记.10.1.其它客户端.ipynb @@ -0,0 +1,56 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8b314faa", + "metadata": {}, + "source": [ + "除VS Code外,.NET Interactive 还有其它几种客户端UI和交互方式\n", + "=========================================================" + ] + }, + { + "cell_type": "markdown", + "id": "1dcfeba1", + "metadata": {}, + "source": [ + "+ REPL 交互式命令行\n", + "+ UI\n", + "+ UI2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "516a4839", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".NET (C#)", + "language": "C#", + "name": ".net-csharp" + }, + "polyglot_notebook": { + "kernelInfo": { + "defaultKernelName": "csharp", + "items": [ + { + "aliases": [], + "languageName": "csharp", + "name": "csharp" + } + ] + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Docs/多语言笔记.300.技巧与总结.ipynb b/Docs/多语言笔记.300.技巧与总结.ipynb new file mode 100644 index 0000000..1805244 --- /dev/null +++ b/Docs/多语言笔记.300.技巧与总结.ipynb @@ -0,0 +1,78 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b42c0b7a", + "metadata": {}, + "source": [ + "使用技巧与总结\n", + "============" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "5f96762c", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hello\r\n" + ] + } + ], + "source": [ + "Console.WriteLine(\"hello\");" + ] + }, + { + "cell_type": "markdown", + "id": "2d5c8cfe", + "metadata": {}, + "source": [ + "## 缺点" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "source": [ + "+ 不支持调试\n", + "+ 内置智能提示:功能弱(与VS不是一个等级)、不稳定\n", + "+ 暂时不支持 .net 项目的引用,只能引用编译过的Dll和nuget包\n", + "+ 代码折叠与显示差点意思,功能较弱" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".NET (C#)", + "language": "C#", + "name": ".net-csharp" + }, + "polyglot_notebook": { + "kernelInfo": { + "defaultKernelName": "csharp", + "items": [ + { + "aliases": [], + "languageName": "csharp", + "name": "csharp" + } + ] + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Docs/多语言笔记.4.1.使用WebApi.ipynb b/Docs/多语言笔记.4.1.使用 WebApi.ipynb similarity index 100% rename from Docs/多语言笔记.4.1.使用WebApi.ipynb rename to Docs/多语言笔记.4.1.使用 WebApi.ipynb diff --git a/Docs/多语言笔记.9.1.使用html.ipynb b/Docs/多语言笔记.9.1.使用 html.ipynb similarity index 100% rename from Docs/多语言笔记.9.1.使用html.ipynb rename to Docs/多语言笔记.9.1.使用 html.ipynb diff --git a/Docs/多语言笔记.9.2.使用python内核.ipynb b/Docs/多语言笔记.9.2.使用 python内核.ipynb similarity index 100% rename from Docs/多语言笔记.9.2.使用python内核.ipynb rename to Docs/多语言笔记.9.2.使用 python内核.ipynb diff --git a/Docs/多语言笔记.9.3.扩展 NET Interactive.ipynb b/Docs/多语言笔记.9.3.扩展 NET Interactive.ipynb new file mode 100644 index 0000000..c3475d8 --- /dev/null +++ b/Docs/多语言笔记.9.3.扩展 NET Interactive.ipynb @@ -0,0 +1,56 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8b314faa", + "metadata": {}, + "source": [ + "除VS Code外,.NET Interactive 还有其它几种客户端UI和交互方式\n", + "=========================================================" + ] + }, + { + "cell_type": "markdown", + "id": "1dcfeba1", + "metadata": {}, + "source": [ + "+ REPL 交互式命令行\n", + "+ UI\n", + "+ UI2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "516a4839", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".NET (C#)", + "language": "C#", + "name": ".net-csharp" + }, + "polyglot_notebook": { + "kernelInfo": { + "defaultKernelName": "csharp", + "items": [ + { + "aliases": [], + "languageName": "csharp", + "name": "csharp" + } + ] + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/NotebookStudy.Test/UseXunit.cs b/NotebookStudy.Test/UseXunit.cs index 071332f..8e5befe 100644 --- a/NotebookStudy.Test/UseXunit.cs +++ b/NotebookStudy.Test/UseXunit.cs @@ -13,7 +13,7 @@ namespace NotebookStudy.Test [Fact] public void Xunit_Test() { - string message = "ʹ xUnit ԪԿܣеԪ"; + string message = "使用 xUnit 单元测试框架,进行单元测试"; _testOutput.WriteLine(message);