はじめに
.NETの開発はたいていの場合VisualStudioか、VSCodeにC#Developer Kitをインストールして進める方が多いと思いますが、単にHello Worldだけを試したい場合はそれらがなくても問題はありません。それが例えマルチプラットフォーム用のアプリであったとしても、です。
今回は.NETの中でもやや日本語の文献の少ない、.NET MAUIBlazor HybridアプリをIDEなし、CLIだけで作成・ビルドし、起動してみたいと思います。
(間も無く.NET9がリリースされるので今更感もありますが)
.NET MAUIBlazor Hybridとは
MAUIBlazor Hybrid は、Blazor Server と Blazor Web Assembly の機能を統合したテクノロジーで、マルチプラットフォーム用のアプリケーションを作ることのできるフレームワークです。
ざっくり要約すると、Webアプリをそのままクライアント上で動作するスタンドアロンのアプリケーションにできちゃう、さらにJavaScriptで書かなければならないフロントのプログラムも全部C#で書くこともできる(もちろんJavaScriptで書いてもOK)といった感じです。
前提
dotnetのSDKがインストール済みであること。
XCodeおよびXCodeCommandLineツールがインストール済みであること(Windowsの場合不要)。
また、実行環境は以下を想定しています。
OS | XcodeCommandLineツール | .NET | ストレージ |
---|---|---|---|
macOS 15.0.1 | 16.1 | 8.0.403 | SSD |
本稿ではMacを使用していますがdotnetコマンドが主なので、Windowsのコマンドプロンプトでも基本的にはほとんど同じ手順で実行可能です。
手順
ワークロードのインストール(所要時間10分)
下記コマンドを実行してMAUIのワークロードをインストールします。
Windowsユーザの方は管理者権限を付与してある状態で、下記コマンドのsudo
を省略してください。SDKをインストールせずにバイナリを直接配置・パスを通している場合は管理者権限なしでも実行できます。
sudo dotnet workload install maui --source https://api.nuget.org/v3/index.json
大量のデータをダウンロード・インストールするので、所要時間のほとんどは待ち時間です。のんびりお茶やコーヒーを飲みながら、しばらく待ちましょう。
タイトルで「実質」と謳っているのは、この時間を除外しているためです。
アプリの作成(所要時間1分)
任意のディレクトリで下記コマンドを実行してMAUIアプリのベースとなるソースコードを展開します。コマンド内のMyMauiApp
はお好みのプロジェクト名に適宜変更してください。
dotnet new maui-blazor -n "MyMauiApp"
コマンドが成功すると、以下のメッセージが表示されます。
テンプレート ".NET MAUI Blazor アプリ" が正常に作成されました。
アプリのビルド(所要時間2分)
カレントディレクトリをMyMauiApp
に移動して、ビルドコマンドを実行します。
Windowsユーザの場合はコマンド内net8.0-maccatalyst
をnet8.0-windows10.0.19041.0
に置き換えて実行してください。
cd MyMauiApp
dotnet build -c debug -f net8.0-maccatalyst
アプリの起動(所要時間1分)
ディレクトリMyMauiApp/bin/debug/net8.0-maccatalyst/maccatalyst-arm64/
内にMyMauiAppというアプリケーションファイルがあるので、Finder(Windowsユーザならエクスプローラ)経由でダブルクリックorコマンドラインから直接起動します。
下図のように、アプリが起動できたら完了です。
Macでビルド実行時に「Could not find a valid Xcode app bundle at '/Library/Developer/CommandLineTools'. Please verify that 'xcode-select -p' points to your Xcode installation.」というエラーが発生する場合、XCodeのCommandLineツールがきちんと設定できていないことが考えられます。
XCode側でCommandLineツールの再設定を行うとエラーは解消します。
まとめ
以降のコーディングは主にC#で進めていくことになるだろうと思いますので、VisualStudioかVSCodeを利用すると効率よく実装できますが、HelloWorld的に.NETのテンプレートを試用する場合においては、それらIDEやエディタは必要ありません。
コンソールアプリでもそうですが、やはりプログラムを即動かせる、試せる点はプログラミングにとって大きなモチベーションにつながりますので、ぜひ色々試してみてください。