.NET 5 でも VB.NET の開発ができるらしいのでやってみた
仕事で VB.NET を触ることになったのですが
私の開発環境は Intel Mac (Big Sur 11.1) です。
しかし、調べてみると .NET 5 でも VB.NET はサポートされているようです。
なのでやってみました。
- マイクロソフト、.NET 5でVisual Basicをサポートするも進化計画はなし | ZDNet Japan
- 【.NET】Microsoft、Visual Basicの進化やめるってよ | Qiita
.NET 5 って何?
Microsoft の .NET フレームワーク周りの経緯はめちゃくちゃ複雑なので
細かい話は割愛しますが、ざっくりこんな感じです。
- .NET Framework
- 最新版のバージョンは .NET Framework 4.8
- Windows プラットフォームで動作するフレームワーク
- .NET Core
- 最新版のバージョンは .NET Core 3.1
- オープンソースかつクロスプラットフォームなフレームワーク
- .NET 5
- .NET Core の次のステップとして新たにバージョニングされたもの
- ナンバリングが .NET Framework 4.x 系と紛らわしいので 4 が飛んだ
- とりあえず "今のところは" これが最新で今後も .NEt 6, 7... としていく予定とだけ認識しておけばOK
このあたりはマジで .NET Framework だの .NET Standard だの
Mono だの Xamarin だのと歴史的な経緯や状況がフクザツなので
ガッツリこの辺りを追いかけようとしない限り調べ始めると沼です。
.NET 5 の直近の経緯はこのブログ記事あたりがわかりやすいですね。
- Introducing .NET 5 | .NET Blog
.NET 5 のインストール
docker で環境を用意してもよかったのですが
今回はローカルに開発環境を用意します。
ので、Microsoftのサイトから .NET 5 のSDKをダウンロードしてきてインストールします。
2021/1/11 時点の最新版は .NET 5 SDK 5.0.101 です。
- .NET | Free. Cross-platform. Open Source.
- Download .NET 5.0 (Linux, macOS, and Windows)
インストールしたらバージョン確認
.NET 5 は .NET Core と同様に CLI ツールとして dotnet
コマンドが使えます。
dotnet --version
5.0.101
インストールできてますね。
dotnet new コマンドで VB.NET の conosole アプリを作成
dotnet new
コマンドでプロジェクトを作成できます。
--language
オプションで言語を C#, F#(一部のテンプレートのみ), VB(一部のテンプレートのみ) から選べるので指定してプロジェクト作成を行います。
- dotnet new コマンド | .NET CLI | Microsoft Docs
mkdir myApp
cd myApp
dotnet new console --output . --language VB
# もしくは dotnet new console --output myApp --language VB
別に今回重要な情報でもないのですが、
上記 dotnet new
コマンドを発行するとこんな感じの出力がでますね。
.NET 5.0 へようこそ!
---------------------
SDK バージョン: 5.0.101
テレメトリ
---------
.NET ツールは、エクスペリエンスの向上のために利用状況データを収集します。データは Microsoft によって収集され、コミュニティと共有されます。テレメトリをオプトアウトするには、好みのシェルを使用して、DOTNET_CLI_TELEMETRY_OPTOUT 環境変数を '1' または 'true' に設定できます。
.NET CLI ツールのテレメトリの詳細をご覧ください: https://aka.ms/dotnet-cli-telemetry
----------------
ASP.NET Core の HTTPS 開発証明書をインストールしました。
証明書を信頼するには、'dotnet dev-certs https --trust' (Windows および macOS のみ) を実行します。
HTTPS の詳細については、https://aka.ms/dotnet-https を参照してください
----------------
最初のアプリを作成するには、https://aka.ms/dotnet-hello-world を参照してください
最新情報については、https://aka.ms/dotnet-whats-new を参照してください
ドキュメントを探索するには、https://aka.ms/dotnet-docs を参照してください
GitHub で問題の報告とソースの検索を行うには、https://github.com/dotnet/core を参照してください
'dotnet --help' を使用して使用可能なコマンドを確認するか、https://aka.ms/dotnet-cli にアクセスしてください
--------------------------------------------------------------------------------------
Getting ready...
The template "Console Application" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on ./myApp.vbproj...
復元対象のプロジェクトを決定しています...
myApp/myApp.vbproj を復元しました (74 ms)。
Restore succeeded.
.gitignore はどうするか
本筋とは外れてしまうのですが、
.gitignore は gitignore.io で "DotNetCore" を選択して生成されたものを使っておけばOKと思います。
- gitignore.io | Create Useful .gitignore Files For Your Project
# Created by https://www.toptal.com/developers/gitignore/api/dotnetcore
# Edit at https://www.toptal.com/developers/gitignore?templates=dotnetcore
### DotnetCore ###
# .NET Core build folders
bin/
obj/
# Common node modules locations
/node_modules
/wwwroot/node_modules
# End of https://www.toptal.com/developers/gitignore/api/dotnetcore
生成されたコードを確認する
上記の .gitignore が有効な状態であれば、git 管理の対象になるファイルは2つです。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RootNamespace>vbdotnet_practice01</RootNamespace>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>
Imports System
Module Program
Sub Main(args As String())
Console.WriteLine("Hello World!")
End Sub
End Module
Visual Studio Code で VB.NET の開発をする
VB.NET をやるなら Visual Studio Community なり Visual Studio for Mac なりを
使う方がいいのですが、簡易に開発する程度なら VSCode でも十分です。
この拡張機能を入れておけば開発しやすいと思います。
- VB.NET Grammars and Snippets | Visual Studio Marketplace
生成されたプロジェクトを実行する
dotnet run
コマンドで実行できます。
- dotnet run コマンド | .NET CLI | Microsoft Docs
$ dotnet run
Hello World!
できましたね。
おつかれさまでした。
今回のリポジトリはこちらです。
Discussion
気になったのでコメントさせていただきます。
今のタイミングで.NET 5でVB.NETにかかわる業務を行うということであれば、基本的にはWindows向けデスクトップ系アプリケーション(WinForms or WPF)を扱うということが多そうに思えます。
もしそうであれば、WindowsのVisual Studio 2019で開発したほうが何かと効率が良いのではないかと思います。
詳細は後述のリンクに記載がありますが、現時点では.NET 5のVB.NETでサポートされているのは以下となります。
・コンソールアプリケーション
・WPFアプリケーション(Windowsで動作)
・WinFormsアプリケーション(Windowsで動作)
・クラスライブラリ(DLL)
・テストプロジェクト
ただ、Intel Macと記載がございますのでバックエンド部分やコンソールアプリケーションを作成する目的である、ということであれば見当違いのコメントとなりますので申し訳ありません。
.NET 5 での Visual Basic サポート方針について最初の発表
.NET 5 発表時の Visual Basic サポートに関する公式ブログ
公式ドキュメントでの Visual Basic サポートに関する記述
@tfukumori さん
コメントありがとうございます!
そうですね、基本的にはWindowsのVisual Studioがいいと私も思います。
今回はコンソールアプリケーションが作れればよかったので記事の .NET 5 で実施しました 👍