はじめに
これは、Visual Basic Advent Calendar 2017の7日目の記事となります。
前回、「Windows Subsystem for Linuxでの .NET Core を使用したVisual Basic のHello World アプリケーションの構築」を書きました。
Visual Basicアプリを編集するエディタとして vi を使いましたが、Windowsに慣れているせいでとっつきにくいです。かといって、WSLはあくまでサブシステムであり、GUIを構築してまで使わなくもいいやと思っています。
人工知能ブームでTensorFlowを使った際に「Jupyter Notebook」を使って、ブラウザ上でPythonを実装しました。
Jupyter Notebookは、Python以外の一般のテキストを編集したり保存することが可能です。ということは、Visual Basicアプリを編集するエディタとしても使えるということです。
更にWSLのJupyter Notebook上でTerminalも開けますから、ブラウザからVisual Basicアプリを実行することもできます。
環境作成
WSL上にAnacondaをインストールします。
インストールについては、次のサイトを参考にpyenvのインストールから行いました。
Bash on Ubuntu on WindowsでJupyter NotebookからTensorflowを実行する
pyenvのインストール
WSLにはデフォルトでもpythonが入っていますが、Anacondaを
使いたかったので、pyenvをインストールしました。
$ sudo aptitude install git
$ git clone https://github.com/yyuu/pyenv ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
Anacondaのインストール
pyenvのインストールが終わったら、次のコマンドを実行してAnacondaの最新のバージョンを探します。
$ pyenv install --list
この記事を書いた時点では3-5.0.1が最新だったので、3-5.0.1をインストールしてデフォルトの設定にしました。インストールは30分以上放置。
$ pyenv install anaconda3-5.0.1
$ pyenv global anaconda3-5.0.1
$ pyenv rehash
jupyterの実行
Anacondaをインストールすれば、jupyterはインストールされます。
$ jupyter notebook
JupyterLab v0.27.0
Known labextensions:
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=958935352ca737add97459f395235b7e6c45f822ab96ef61
ブラウザ上で上記で示された長いクエリ付きのURLを入力します。
次からはクエリ部分は不要でもいいようです。
http://localhost:8888/
Visual Basicアプリの編集
myAppVBフォルダを選択します。Program.vb にチェックを付けて、Editボタンをクリックします。
編集画面になります。メニューのLanguageからVB.NETを選択すればシンタックスハイライトされてコードが表示されます。
メッセージを変更して、メニューのFileからSaveをクリックします。
Visual Basicアプリの実行
NewメニューからTerminalをクリックします。
※Windows版のJupyterにはTerminalは出てきません。
ターミナル画面から次のコマンドを実行します。
すると、変更したメッセージが出力されます。
$ cd myAppVB
$ dotnet run
Hello World Test! VB.NET on .NET Core!
最後に
本格的なものにはとても使えませんが、手軽に試したいならブラウザ上で編集と実行が出来るようになったわけです。
Jupyter NoteBookにて、PythonのようにC#を即時実行するプロジェクトを見つけました。VB.NETは頑張れば作れるってことでしょう。
Interactive C# Notebook
https://github.com/zabirauf/icsharp