多年来Jupyter Notebooks在交互式开发领域一直充当着重要角色。并且陆续发布了Python,Python 3,R,Julia,Scala等语言的支持,并且推动着这些语言的持续流行。交互式编程平台为用户提供了一个轻量级的工具,用于语言学习,迭代开发以及数据科学和数据操作。随着微软线上平台Try .NET对F#和C#支持越来越好,可运行的代码片段越来丰富,Jupyter Notebooks对C#的支持现在也成了现实。
安装
Jupyter Notebooks支持在本地或者SaaS方式运行.net脚本。
前提条件:
.NET Core 3.0 SDK
Jupyter:可以是Anaconda打包或者通过conda或pip安装的JupyterLab。
可通过以下命令测试是否成功安装Jupyter:
jupyter kernelspec list
安装.NET内核
打开命令行终端,安装dotnet try o dotnet
dotnet tool install --global dotnet-try
请注意:如果此前已经安装了dotnet try全局工具,需要先卸载旧版本的软件再安装。
在Anaconda提示符下通过命令安装.NET内核:
dotnet try jupyter install
然后通过jupyter kernelspec list测试内核是否安装成功:
列表中如果出现如上图所示的.net-csharp和.net-fsharp,则表示.net核心安装成功。
在线方式
所有Jupyter .net功能都可以通过在线方式Binder演示。大家如果没有演示环境或者懒得安装,都可以通过直接访问Binder在线操作。
使用
首先启动JupyterLab,可以通过Anaconda提示符下键入jupyter lab或者使用Anaconda Navigator。
通过浏览器中打开Jupyter Lab之后,就可以选择创建C#或F# notebook了:
打开C#或者F# Notebook后就可以交互式编写对应的语言的.net程序了。
功能介绍
为了.net Notebook附带很多方便的功能可以方便的使用。
HTML解析和输出
默认情况下,.NET Notebook附带对HTML格式文档解析和输出的方法,可以对HTML函数的html格式的字符串使用display函数输出。
使用JavaScript方法渲染JS语法,下面语句会弹出一个消息框。
可以用更高级的pocketView对象,下面是对pocketView的调用
也支持对makrdown格式的渲染
类库导入
可以支持对c# 类库的导入使用,使用#r语法,从nuget导入包:
#r "nuget:[,]"
比如:
#r "nuget:System.Reactive.Linq, 4.1.5"
请注意,当使用#r倒入软件包时将要等待,如下面的...详细输出所示。
对象格式化
默认情况下,.NET Notebook使用户能够以表格式显示有关对象的有用信息。比如对一个Ienumerable对象display显示如下:
也可以使用Formatter API。 通过此API,自定义特定类型的格式。比如:
绘图
当然最后也躲不了Jupyter最强大的绘图功能了。.net notebook的绘图功能都使用XPlot.Plotly 可视化包。
更多功能比如统计、机器学习等高级功能可以参考官方的文档和实例。
总结
Jupyter Notebooks交互式的在线平台给广大码农学习语言、给非程序进行编程研究提供了便捷强大的工具。.net notebook支持,给广大.net爱好者和C#程序员提供了一个很好的平。台.net,C#是一个非常优秀的编程生态系统,借助微软的开发实力提供了强大稳定的开发生态,但是往往由于平台限制让一些人望而却步,近年来随着.net core,VS code的开源、跨平台战略,对开源社区越来越友好,而.net 的notebook支持则顺势推舟,将进一步扩大该生态系统壮大。