LoginSignup
4
7

More than 5 years have passed since last update.

Windows Subsystem for Linuxでの .NET Core を使用したVisual Basic のHello World アプリケーションの構築

Posted at

はじめに

これは、Visual Basic Advent Calendar 2017の4日目の記事となります。

Windows 10 Fall Creators Updateにて、Linux向けのバイナリプログラムをそのまま実行できるようになるWSL(Windows Subsystem for Linux)機能が正式に提供されるようになりました。

.NET Coreは、LinuxやMacOS上で動かせるのが大きな特徴です。.NET Core 1ではVisual Basicがサポートされず、多くのVisual Basic開発者は落胆しましたが、.NET Core 2では一転して、Visual Basicがサポートされるようになりました。

そこで、Macは持ち合わせていないのでWSL上で「Hello World」を表示するまでをやってみます。

WSLのインストール

自分はUbuntuに馴染みがあるので、Windowsアプリのストアから「Ubuntu」をインストールしました。WSLを動かすには、Windows側の「Windowsの機能の有効化または無効化」画面で「Windows Subsystem for Linux」を有効化させる必要があります。
インストールについては、次のサイトを参考にしてください。
Windows10にUbuntuをインストールする方法(Fall Creators Update版)

バージョン確認

~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

.NET Core 2のインストール

次のサイトを参考にインストールしていきます。
* Get started with .NET in 10 minutes
* Linux で VB.NET を書いて動かそう!

1.dotnetプロダクトフィードを追加する

.NETのインストールを開始するには、Microsoft署名キーを登録し、Microsoft Productフィードを追加する必要があります。これはマシンごとに1回だけ行う必要があります。

信頼できるMicrosoft署名キーを登録します。

次のコマンドを実行します。

:~$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   983  100   983    0     0    268      0  0:00:03  0:00:03 --:--:--   269
~$ sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
[sudo] password for :

Microsoft Productフィードを登録する

Ubuntuのバージョンによって違うので、Get started with .NET in 10 minutesで確認してください。今回は「Ubuntu 16.04 / Linux Mint 18」で登録しています。
次のコマンドを実行します。

~$ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'

2.NET SDKをインストールする

.NET SDKをインストールします。
次のコマンドを実行します。

~$ sudo apt-get update
~$ sudo apt-get install dotnet-sdk-2.0.2
[sudo] password for :

アプリを作成する

テンプレート「Hello World!」が用意されています。
デフォルトはC#で作成されるので、オプションに「-lang vb」を付けてVisual Basic で作成させます。
dotnet new コマンド

~$ dotnet new console -lang vb -o myAppVB

The template "Console Application" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on myAppVB/myAppVB.vbproj...
  Restoring packages for /home/yaju/myAppVB/myAppVB.vbproj...
  Generating MSBuild file /home/yaju/myAppVB/obj/myAppVB.vbproj.nuget.g.props.
  Generating MSBuild file /home/yaju/myAppVB/obj/myAppVB.vbproj.nuget.g.targets.
  Restore completed in 1.07 sec for /home/yaju/myAppVB/myAppVB.vbproj.

Restore succeeded.

中身を確認する

~$ ls
myApp  myAppVB
~$ dir
myApp  myAppVB
~$ cd myAppVB
~/myAppVB$ dir
myAppVB.vbproj  obj  Program.vb

~/myAppVB$ more Program.vb
Imports System

Module Program
    Sub Main(args As String())
        Console.WriteLine("Hello World!")
    End Sub
End Module

アプリを実行する

次のコマンドを実行します。

~/myAppVB$ dotnet run
Hello World!

アプリを編集する

vi が標準で入っているので、メッセージを変更します。
viエディタの使い方

~/myAppVB$ vi Program.vb

~/myAppVB$ more Program.vb
Imports System

Module Program
    Sub Main(args As String())
        Console.WriteLine("Hello World! VB.NET on .NET Core!")
    End Sub
End Module

~/myAppVB$ dotnet run
Hello World! VB.NET on .NET Core!

最後に

開発自体はWindowsのVisual Studioで行って、動作確認はWSL上でも確認するのがいいのかな。
最近は、Jupyter nootbookを使えば、ブラウザ上で編集とターミナルで動作させることができますので、次回はこれを記事にしてみたいと思います。

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7