Blazor アプリケーションの実行、開発はマルチプラットフォーム
"Blazor" とは、JavaScript や TypeScript ではなく、C# でリッチクライアント Web アプリケーションを開発・実行することのできる、.NET およびその上の ASP.NET Core を基盤としたフレームワーク、ツールチェイン、ランタイムです。Angular や React、Vue、Svelte といったコンポーネント指向のライブラリ、フレームワークの、C# 版に相当します。
その Blazor を含む .NET アプリケーションの実行、および開発は、macOS、Windows、それに Linux の主立ったディストリビューション上で可能です。
本記事では、Linux ディストリビューションのひとつ、Ubuntu 上で Blazor アプリケーションの開発を始める手順を解説します。本記事で対象とする Ubuntu のエディションとバージョンは、Ubuntu Desktpo のバージョン 24.04 LTS、x64 アーキテクチャとします。
Ubuntu 上では sudo apt install dotnet-sdk-8.0
すれば準備完了
解説、といっても、もっとも簡便な方法は、.NET 8 SDK の apt パッケージをインストールするだけです。つまり、以下のコマンドをターミナルで実行するだけで、それで準備完了です。
$ sudo apt install dotnet-sdk-8.0
以上でターミナル上で dotnet CLI が使えるようになります。ちなみに自分は試していませんが、apt ではなく、snap でもインストールすることが可能なようです。
せっかくなので 1 つ Blazor WebAssembly アプリを作ってみる
折角ですので、このままひとつ、Blazor WebAssembly プロジェクトを作ってみましょう。ターミナル上で、どこか適当な作業フォルダに移動し、以下のコマンドを実行します。
$ dotnet new blazorwasm -n MyBlazorApp
コマンドライン引数のうち、blazorwasm
は、Blazor WebAssembly の開発プロジェクトを作って下さい、という意味になります。および、続くコマンドラインスイッチ -n
は、そのプロジェクトの名前を続く引数で指定します、という意味になります。つまり上記例では、これから作る Blazor WebAssembly の開発プロジェクトの名前を "MyBlazorApp" とします、ということです。
無事コマンドが実行されると、作業フォルダ内に "MyBlazorApp" というサブフォルダが作成され、その "MyBlazorApp" フォルダ内に、プロジェクトファイル MyBlazorApp.csproj
をはじめ、Blazor WebAssembly アプリケーションのためのソースコード類一式が生成されています。
$ ls -l ./MyBlazorApp/
total 40
-rw-r--r-- 1 jsakamoto jsakamoto 465 App.razor
drwxr-xr-x 2 jsakamoto jsakamoto 4096 Layout
-rw-r--r-- 1 jsakamoto jsakamoto 476 MyBlazorApp.csproj
drwxr-xr-x 2 jsakamoto jsakamoto 4096 Pages
-rw-r--r-- 1 jsakamoto jsakamoto 425 Program.cs
drwxr-xr-x 2 jsakamoto jsakamoto 4096 Properties
-rw-r--r-- 1 jsakamoto jsakamoto 375 _Imports.razor
drwxr-xr-x 3 jsakamoto jsakamoto 4096 bin
drwxr-xr-x 3 jsakamoto jsakamoto 4096 obj
drwxr-xr-x 4 jsakamoto jsakamoto 4096 wwwroot
$
プロジェクトファイル (.csproj) があるフォルダに移動し、dotnet watch
コマンドを実行すれば、プロジェクトがビルドされ、開発用サーバでホストされる Blazor WebAssembly アプリケーションが既定のブラウザで開かれます。
$ cd ./MyBlazorApp/
$ dotnet watch
dotnet watch 🔥 Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload.
💡 Press "Ctrl + R" to restart.
dotnet watch 🔧 Building...
Determining projects to restore...
All projects are up-to-date for restore.
MyBlazorApp -> ~/MyBlazorApp/bin/Debug/net8.0/MyBlazorApp.dll
MyBlazorApp (Blazor output) -> ~/MyBlazorApp/bin/Debug/net8.0/wwwroot
dotnet watch 🚀 Started
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5086
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: ~/MyBlazorApp
さらに Blazor について学習を進めたい場合は、Microsoft 公式のドキュメントの他にも、以下の無償の自習書なども活用できます。
.NET 8 以外のバージョンを使いたい場合、あるいは Ubuntu 以外のディストリビューションの場合
先日 2024年11月12日に、.NET 9 がリリースされましたが、あいにくと 2024年12月現在、.NET 8 以外のバージョンを apt コマンド一発でインストールする方法はないようです。
また、この dotnet-sdk-8.0
パッケージは、Ubuntu の開発元である Canonical のリポジトリで配布されているようです。つまり、同じ apt コマンドを使用する Debian 系の他の Linux ディストリビューションであっても、Ubuntu 以外のディストリビューションでは、単に sudo apt install dotnet-sdk-8.0
などと実行しても、そのようなパッケージは見つからないというエラーになってしまいます。
他のバージョンの .NET SDK をインストールして使用したい、あるいは Ubuntu ではない他の Linux ディストリビューションを使いたい場合は、以下の Micorosft 公式のドキュメントに手順が記載されています。
多くの場合は、Microsoft 提供のパッケージリポジトリを登録追加することで対応可能になります。また、パッケージシステムに依らず、Shell スクリプトで手動インストールすることも可能です。
おわりに: どんな人が、Ubuntu、あるいは各種 Linux ディストリビューション上で Blazor アプリケーションを開発するの?
実を言いますと、どんな人が、Ubuntu、あるいは各種 Linux ディストリビューション上で Blazor アプリケーションを開発するのか、よくわかっていません。知っていたら教えてもらえると嬉しいです!