Jupyter Czym są te interaktywne notatniki? Dlaczego ostatnio jest o nich głośnio? Dlaczego ta moda doszła do środowiska .NET? Zacznijmy od początku. Interactive Notebooks i rozwiązanie Jupyter zaczęły swoją przygodę w środowisku Python.

Python to fantastyczny język programowania do tworzenia sztucznej inteligencji i pięknych wykresów. Ktoś pomyślał, że fajnie by było tworzyć interaktywne dokumenty, które będą zawierać kod, który wygeneruje coś na tym dokumencie.

Dlaczego ta moda doszła do środowiska .NET? C# nie jest na razie językiem programowania stworzonym do pisania sztucznej inteligencji, czy tam do tworzenia kolorowych wykresów, ale Microsoft chciałby, aby tak było w przyszłości.

Tak C# jako drugi Python. W końcu chcemy, aby C# stał się popularny wśród wielu programistów.

.NET Interactive Notebook powstało na bazie dwóch rzeczy :

  • .NET Interactive : środowisko, które pozwala pisać kod C# w oknie interaktywnym
  • Jupyter notebook : interaktywne dokumenty stworzona dla Pythona

Alternatywna nazwa .NET Interactive to "Try .NET". Jego użycie można zauważyć w wielu miejscach np. tutaj w tym tutorialu do C#, który może być uruchomiony z poziomu przeglądarki :

https://dotnet.microsoft.com/learn/dotnet/in-browser-tutorial/1

Jupyter notebook pochodzi ze środowiska Python. Te dokumenty są kombinacją sformatowanego testu w Markdown, który opisuje co twój kod ma zrobić, a samym kodem, który można interaktywnie uruchomić.

Jupyter notebook uruchamiają aplikacje "klient-serwer", która zazwyczaj lokalnie jest na twojej maszynie. Kod z tego interaktywnego notatnika jest wysłany do serwera i przetworzony, a jego rezultat wyświetla się w notatniku.

Rozwiązanie  .NET Interactive Notebook to sumie dodanie możliwości kompilacji języków .NET jak C#, F# do tych notatników. Co więcej, pod tym linkiem możesz znaleźć wszystkie obsługiwane języki w tych notatnikach.

https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

Jak to wszystko zainstalować?

Podobno wystarczy zainstalować dodatek ".NET Interactive Notebooks Extension" do Visual Studio Code, aby zacząć swoją przygodę, ale w moim przypadku to nie zadziałało i musiałem zrobić to wszystko standardową drogą.

Jak jest standardowa droga?

Najpierw musisz zainstalować Anaconda, która wymaga zainstalowanego Pythona. Potem zgodnie z dokumentacją uruchomiłem wiersz poleceń Anaconda. 

Anaconda Prom

Wpisałem następujące polecenia :

python --version conda update --all --yes

Sprawdziłem, czy Python jest zainstalowany poprawnie, a potem dodałem aktualizację wszystkiego.

python --version
conda update --all --yes

Teraz mogłem już uruchomić Jupyter notebook

jupyter notebook

Teraz jak pisać taki notatnik w Visual Studio Code. Instalujesz następujący dodatek "Jupyter":

Jupyter rozszerzenie do Visual Studio

Potem wciśnij "CTRL + SHIFT+ P" i poszukaj w oknie opcji : Jupyter: Create New Blank Notebook

Jupyter: Create New Blank Notebook

Teraz napiszmy jakiś podstawowy kod w Pythonie, aby zobaczyć, jak ten notatnik działa.

Jak widzisz pliki notatnika mają rozszerzenie ipynb.

Plik ipynb Visual Studio Code

Jeśli chce uruchomić kod to wciskam symbol PLAY.

Python w interaktywnym notatniku

Każdy element może zostać zmieniony na tryb tekstowy Markdown.

Przejść na tryb tekstowy Markdown

Oto przykład dodanie treści tekstowej. 

dodanie treści tekstowej. w Interactive Notebook

Jak widzisz taki interaktywny notatnik w Pythonie robi wrażenie. Teraz jak do tego dodać środowisko .NET.

C# w notebook

Dla pewności sprawdź, czy masz zainstalowany .NET Interactive w wierszu poleceń.

dotnet tool install --global Microsoft.dotnet-interactive

Potem instalujemy kernel .NET do notatników przy pomocy następującej komendy:

dotnet interactive jupyter install

Potem w Anaconda Prompt sprawdź, czy ten kernel został dodany: 

jupyter kernelspec list

jupyter kernelspec list

Teraz gdy to wszystko masz możesz w Visual Studio Code tworzyć swój interaktywny notatnik w C#, F# i w sumie w Pythonie też.