Ubuntu で Blazor するなら "sudo apt install dotnet-sdk-8.0" すれば準備 OK

## 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 パッケージをインストールするだけです。つまり、以下のコマンドをターミナルで実行するだけで、それで準備完了です。

```shell
$ sudo apt install dotnet-sdk-8.0
```

以上でターミナル上で dotnet CLI が使えるようになります。ちなみに自分は試していませんが、apt ではなく、snap でもインストールすることが可能なようです。

## せっかくなので 1 つ Blazor WebAssembly アプリを作ってみる

折角ですので、このままひとつ、Blazor WebAssembly プロジェクトを作ってみましょう。ターミナル上で、どこか適当な作業フォルダに移動し、以下のコマンドを実行します。

```shell
$ dotnet new blazorwasm -n MyBlazorApp
```

コマンドライン引数のうち、`blazorwasm` は、Blazor WebAssembly の開発プロジェクトを作って下さい、という意味になります。および、続くコマンドラインスイッチ `-n` は、そのプロジェクトの名前を続く引数で指定します、という意味になります。つまり上記例では、これから作る Blazor WebAssembly の開発プロジェクトの名前を "MyBlazorApp" とします、ということです。

無事コマンドが実行されると、作業フォルダ内に "MyBlazorApp" というサブフォルダが作成され、その "MyBlazorApp" フォルダ内に、プロジェクトファイル `MyBlazorApp.csproj` をはじめ、Blazor WebAssembly アプリケーションのためのソースコード類一式が生成されています。

```shell
$ 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 アプリケーションが既定のブラウザで開かれます。

```shell
$ 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
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58450/d2787676-665a-94fc-44f5-514588d96db0.png)

さらに Blazor について学習を進めたい場合は、Microsoft 公式のドキュメントの他にも、以下の無償の自習書なども活用できます。

https://github.com/jsakamoto/self-learning-materials-for-blazor-jp

## .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 公式のドキュメントに手順が記載されています。

https://learn.microsoft.com/ja-jp/dotnet/core/install/linux

多くの場合は、Microsoft 提供のパッケージリポジトリを登録追加することで対応可能になります。また、パッケージシステムに依らず、Shell スクリプトで手動インストールすることも可能です。

## おわりに: どんな人が、Ubuntu、あるいは各種 Linux ディストリビューション上で Blazor アプリケーションを開発するの?

実を言いますと、どんな人が、Ubuntu、あるいは各種 Linux ディストリビューション上で Blazor アプリケーションを開発するのか、よくわかっていません。知っていたら教えてもらえると嬉しいです!