Popularity
8.0
Growing
Activity
9.6
Growing
2,703
65
363

README

.NET Interactive

Discord Build Status Binder

.NET Interactive takes the power of .NET and embeds it into various interactive experiences. Share code, explore data, write, and learn across your apps in ways you couldn't before.

.NET Interactive IS .NET UNLEASHED

Notebooks with .NET

Visual Studio Code

The .NET Interactive Notebooks extension for Visual Studio Code brings support for polyglot notebooks to Visual Studio Code, powered by .NET Interactive. We encourage you to try it out. If you'd like to contribute, you can start [here](CONTRIBUTING.md).

newnotebook


Features

Polyglot notebooks

.NET Interactive enables users to mix languages in a single notebook or cell without a wrapper. The multi-language experience enables users to use the best language for the task at hand.

Languages supported

  • C# and F#
  • PowerShell, built in collaboration with the PowerShell team ๐Ÿ’™
  • JavaScript
  • HTML
  • Mermaid
  • SQL and KQL (Kusto), built in collaboration with the Azure Data / SQL team ๐Ÿ’™

What languages are we exploring?

  • Python, Julia, and R

Variable Sharing

.NET Interactive enables you to write code in multiple languages within a single notebook and in order to take advantage of those languages' different strengths, you might find it useful to share data between them. Read more here.

Notebooks-variable-sharing

The gif above showcases the following:

  • Variable sharing across C#, HTML and JavaScript cells.
  • Multi-language cells.

For more examples on multi-language notebooks and variable sharing check out our polyglot samples.

Visualization

Low code visualization

In just a single line of code easily visualize data with Microsoft SandDance and nteract DataExplorer. For example the code snippet below will render an interactive Microsoft SandDance.

housingData.ExploreWithSandDance().Display();

low-code-visualization

For more low code visualization examples, check out our samples.

Works with your favorite visualization libraries

d3js

The image below showcases the following:

  • C# cell: Define a variable in C#
  • JavaScript cell: Use RequireJS to import d3.js
  • HTML cell: Visualize the data

Full example here.


Jupyter and nteract

Project Jupyter is a popular platform for creating interactive notebooks that can be used for data science, documentation, DevOps, and much more.

There are several ways to get started using .NET with Jupyter, including Jupyter Notebook, JupyterLab, and nteract.

  • [Try sample .NET notebooks online using Binder](docs/NotebooksOnBinder.md). This also allows you try out our daily builds, including preview features.
  • [Install .NET Interactive](docs/NotebookswithJupyter.md) to create and run .NET notebooks on your machine.
  • [Share your own .NET notebooks with others online using Binder](docs/CreateBinder.md).
  • Use .NET Interactive with nteract
  • [Use .NET Interactive on Raspberry Pi and pi-top](docs/small-factor-devices.md)

Documentation

You can find additional documentation [here](./docs/README.md).

Packages

We provide a number of packages that can be used to write custom [extensions](./docs/extending-dotnet-interactive.md) for .NET Interactive or to build your own interactive experiences.

Package Version Description
Microsoft.dotnet-interactive Nuget The dotnet-interactive global tool
Microsoft.DotNet.Interactive Nuget Core types for building applications providing interactive programming for .NET.
Microsoft.DotNet.Interactive.Formatting Nuget Convention-based and highly configurable .NET object formatting for interactive programming, including support for mime types suitable for building visualizations for Jupyter Notebooks and web browsers.
Microsoft.DotNet.Interactive.FSharp Nuget Microsoft.DotNet.Interactive.Kernel implementation for F#
Microsoft.DotNet.Interactive.CSharp Nuget Microsoft.DotNet.Interactive.Kernel implementation for C#
Microsoft.DotNet.Interactive.PowerShell Nuget Microsoft.DotNet.Interactive.Kernel implementation for PowerShell

Contribution Guidelines

You can contribute to .NET Interactive with issues and pull requests. Simply filing issues for problems you encounter is a great way to contribute. Contributing code improvements is greatly appreciated. You can read more about our contribution guidelines [here](CONTRIBUTING.md).

Customers & Partners

Azure Synapse Analytics Azure HDInsight (HDI)
Azure Synapse Analytics uses the .NET kernel to write and run quick ad-hoc queries in addition to developing complete, end-to-end big data scenarios, such as reading in data, transforming it, and visualizing it You can launch Jupyter notebooks from your HDInsight cluster to run big data queries against the compute resources in that cluster.