{"id":26353,"date":"2020-02-06T09:50:06","date_gmt":"2020-02-06T16:50:06","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=26353"},"modified":"2020-02-07T08:43:19","modified_gmt":"2020-02-07T15:43:19","slug":"net-interactive-is-here-net-notebooks-preview-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/net-interactive-is-here-net-notebooks-preview-2\/","title":{"rendered":".NET Interactive is here! | .NET Notebooks Preview 2"},"content":{"rendered":"<p>In November 2019, we announced .NET support for Jupyter notebooks with both C# and F# support. Today we are excited to announce Preview 2 of the .NET Notebook experience.<\/p>\n<h2>What&#8217;s new<\/h2>\n<h3>New Name &#8211; Meet .NET interactive<\/h3>\n<p>As our scenarios grew in Try .NET, we wanted a new name that encompassed all our new experiences from the runnable snippets on the web powered by Blazor (as seen on the <a href=\"https:\/\/dotnet.microsoft.com\/learn\/dotnet\/in-browser-tutorial\/1\">.NET page<\/a>) , to interactive documentation for .NET Core with the dotnet try global tool, to .NET Notebooks.<\/p>\n<p>Today we are announcing our official name change to <strong>.NET interactive<\/strong>.<\/p>\n<p>.NET interactive is a group of CLI tools and APIs that enable users to create interactive experiences across the web, markdown, and notebooks.<\/p>\n<p>.NET Interactive Breakdown<\/p>\n<ul>\n<li><code>dotnet interactive<\/code> <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.dotnet-interactive\/\">global tool<\/a> : For .NET Notebooks (Jupyter and nteract) <\/li>\n<li><code>dotnet try<\/code> <a href=\"https:\/\/www.nuget.org\/packages\/dotnet-try\/\">global tool<\/a> : For Workshops and offline docs. Interactive markdown with a backing project. <\/li>\n<li><code>trydotnet.js<\/code> API (<em>not publicly available yet<\/em>): Online documentation. For example, on <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/csharp\/tutorials\/intro-to-csharp\/branches-and-loops?tutorial-step=1\">docs<\/a> and <a href=\"https:\/\/dotnet.microsoft.com\/learn\/dotnet\/in-browser-tutorial\/1\">.NET page<\/a>. Currently, only used internally at Microsoft.<\/li>\n<\/ul>\n<h3>New Repo &#8211; <a href=\"https:\/\/github.com\/dotnet\/interactive\">dotnet\/interactive<\/a><\/h3>\n<p>Moving forward, we have decided to split <code>dotnet try<\/code> and <code>dotnet interactive<\/code> tools into separate repos.<\/p>\n<ul>\n<li>For any issues, feature requests, and contributions to .NET Notebooks, please visit the <a href=\"https:\/\/github.com\/dotnet\/interactive\">.NET Interactive repo<\/a>. <\/li>\n<li>For any issues, feature requests, and contributions on interactive markdown and trydotnet.js, please visit the <a href=\"https:\/\/github.com\/dotnet\/try\">Try .NET repo<\/a>.<\/li>\n<\/ul>\n<h3>New Global Tool &#8211; <code>dotnet interactive<\/code><\/h3>\n<h4>How Install .NET Interactive<\/h4>\n<p>First, make sure you have the following installed:<\/p>\n<ul>\n<li>The <a href=\"https:\/\/dotnet.microsoft.com\/download\">.NET 3.1 SDK<\/a>.<\/li>\n<li>\n<p><strong>Jupyter<\/strong>. Jupyter can be installed using <a href=\"https:\/\/www.anaconda.com\/distribution\">Anaconda<\/a>.<\/p>\n<\/li>\n<li>\n<p>Open the Anaconda Prompt (Windows) or Terminal (macOS) and verify that Jupyter is installed and present on the path:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"console\">&gt; jupyter kernelspec list\n  python3        ~\\jupyter\\kernels\\python3\n<\/code><\/pre>\n<ul>\n<li>Next, in an ordinary console, install the <code>dotnet interactive<\/code> global tool:<\/li>\n<\/ul>\n<pre><code class=\"console\">&gt; dotnet tool install --global Microsoft.dotnet-interactive\n<\/code><\/pre>\n<ul>\n<li>Install the .NET kernel by running the following within your Anaconda Prompt:<\/li>\n<\/ul>\n<pre><code class=\"console\">&gt; dotnet interactive jupyter install\n[InstallKernelSpec] Installed kernelspec .net-csharp in ~\\jupyter\\kernels\\.net-csharp\n.NET kernel installation succeeded\n\n[InstallKernelSpec] Installed kernelspec .net-fsharp in ~\\jupyter\\kernels\\.net-fsharp\n.NET kernel installation succeeded\n\n[InstallKernelSpec] Installed kernelspec .net-powershell in ~\\jupyter\\kernels\\.net-powershell\n.NET kernel installation succeeded\n<\/code><\/pre>\n<ul>\n<li>You can verify the installation by running the following again in the Anaconda Prompt:<\/li>\n<\/ul>\n<pre><code class=\"console\">&gt; 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<\/code><\/pre>\n<p><em>Please Note: If you are looking for <code>dotnet try<\/code> experience please visit <a href=\"https:\/\/www.nuget.org\/packages\/dotnet-try\/\">dotnet\/try<\/a>.<\/em><\/p>\n<h3>New language support &#8211; PowerShell<\/h3>\n<h4>PowerShell Notebooks<\/h4>\n<p><img src = \"https:\/\/user-images.githubusercontent.com\/2546640\/73879788-1321d780-482b-11ea-9a39-7d3906d49c66.png\" style=\"align:center\"\/><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/public-preview-of-powershell-support-in-jupyter-notebooks\/\" rel=\"noopener noreferrer\" target=\"_blank\">PowerShell notebooks<\/a> combine the management capabilities of PowerShell with the rich visual experience of notebooks. The integration of PowerShell&#8217;s executable experience with rich text and visualization open up scenarios for PowerShell users to integrate and amplify their teaching, and support documents. As an example, this demo of a new PowerShell feature was easily transformed into a shareable, interactive teaching tool.<\/p>\n<p><img src = \"https:\/\/user-images.githubusercontent.com\/2546640\/73611937-62f76900-45b5-11ea-864c-711ae83406b4.png\" style=\"align:center\" \/><\/p>\n<p>With the multi-kernel experience provided by the .NET interactive kernel a single notebook, now with PowerShell support, can efficiently target both the management plane and the data plane.<\/p>\n<p>DBAs, sysadmins, and support engineers alike have found PowerShell notebooks useful for resource manipulation and management. For example, this notebook teachers the user how to create an Azure VM from PowerShell.<\/p>\n<p><img src = \"https:\/\/user-images.githubusercontent.com\/2546640\/73611950-815d6480-45b5-11ea-8527-fc819eb09c39.png\" style =\"align:center\"\/> We look forward to seeing what our customers to do with this experience. Read the <a href=\"https:\/\/devblogs.microsoft.com\/powershell\/public-preview-of-powershell-support-in-jupyter-notebooks\/\" rel=\"noopener noreferrer\" target=\"_blank\">PowerShell blog post<\/a> for more information.<\/p>\n<h3>Run .NET Code in nteract.io<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/cloud.githubusercontent.com\/assets\/836375\/15271096\/98e4c102-19fe-11e6-999a-a74ffe6e2000.gif\" alt=\"nteract animated logo\" style=\"text-align:center\" width =50% \/><\/p>\n<p>In addition to writing <a href=\"https:\/\/nteract.io\/\">.NET Code<\/a> in Jupyter Notebooks, users can now write their code in nteract. nteract is an open-source organization that builds SDKs, applications, and libraries that helps people make the most of interactive notebooks and REPLs. We are excited to have our .NET users take advantage of the rich REPL experience nteract provides,including the nteract desktop app.<\/p>\n<p><img src = \"https:\/\/user-images.githubusercontent.com\/2546640\/73761514-f7d89e80-473c-11ea-859b-2d8e05bef48d.PNG\" style=\"text-align:center\"\/><\/p>\n<p>To get started with .NET Interactive in nteract please download the <a href=\"https:\/\/nteract.io\/\">nteract desktop app<\/a> and install the <a href=\"https:\/\/nteract.io\/kernels\/dotnet\">.NET kernels<\/a>.<\/p>\n<h3>Resources<\/h3>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/interactive\/blob\/master\/docs\/NotebooksOnBinder.md\">Try sample .NET notebooks online using Binder<\/a>. This also allows you try out .NET Interactive daily builds.<\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/interactive\/blob\/master\/docs\/NotebooksLocalExperience.md\">Create and run .NET notebooks on your machine<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/interactive\/blob\/master\/docs\/CreateBinder.md\">Share your own .NET notebooks with others online using Binder<\/a>.<\/li>\n<li><a href=\"https:\/\/nteract.io\/kernels\/dotnet\">.NET Interactive with nteract<\/a><\/li>\n<\/ul>\n<p>Our team can&#8217;t wait to see what you do with .NET Interactive. Please check out our repo to learn more and let us know what you build.<\/p>\n<p>Happy interactive programming !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In November 2019, we announced .NET support for Jupyter notebooks with both C# and F# support.  Today we are excited to announce Preview 2 of the .NET Notebook experience.  Preview 2 includes C#, F#, and PowerShell support.<\/p>\n","protected":false},"author":3344,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685],"tags":[],"class_list":["post-26353","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet"],"acf":[],"blog_post_summary":"<p>In November 2019, we announced .NET support for Jupyter notebooks with both C# and F# support.  Today we are excited to announce Preview 2 of the .NET Notebook experience.  Preview 2 includes C#, F#, and PowerShell support.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/26353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/3344"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=26353"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/26353\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=26353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=26353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=26353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}