今年 2023 年 11 月の .NET 8 リリースにあわせ、「Blazor WebAssembly アプリケーションプログラミング自習書」も 1 年ぶりに .NET 8 対応のために更新しました。
「Blazor WebAssembly アプリケーションプログラミング自習書」について詳しくは、昨年の Blazor Adbent Calendar に投稿した下記記事を参照ください。
ということで、本記事ではこの自習書を更新した際の四方山話を徒然に書き綴りたいと思います。
1. .NET 8 への対応
まず最初に、自習書の内容を .NET 8 に対応させる作業についてです。実のところ、本自習書は Blazor WebAssembly のみを対象としていたこともあり、.NET 8 でリリースされた Blazor SSR や Auto レンダーモードに影響を受けるような領域まで手を伸ばしていませんでしたので、大した作業は必要ありませんでした。C# 12 で導入されたプライマリコンストラクタとコレクション式を使ったソースコードに更新する程度で済み、スムーズに移行できました。
2. Visual Studio Code と C# DevKit 拡張の進化
いっぽうで、1年前と比較して、macOS や Linux 環境での開発環境が大きく進化しました。特に、Visual Studio Code 用の C# DevKit 拡張がリリースされ、その使い勝手が格段に向上しました。本自習書は実質 Windows + Visual Studio の組み合わせに基づいて作業手順を解説しており、今年の更新でもその点は大きくは変わっていません。しかし今年の更新では、Visual Studio Code + C# DevKit における作業手順の解説を、一部ではありますが、追加で盛り込んでおり、macOS や Linux 各種ディストリビューション上で自習される方にもよりわかりやすく且つ快適になっていると思います。
3. GitHub Codespaces の登場
そしてもうひとつ、昨年の更新と比較して大きく飛躍したのが、"GitHub Codespaces" です。
GitHub Codespaces とは、GitHub が提供する仮想マシン上に構築される開発環境です。インターネット接続と Web ブラウザ、GitHub アカウントさえあればすぐに利用が可能です (下記リンク先参照)。
昨年の自習書更新時点では、まだ GitHub Codespaces は一般公開されていませんでしたが、それから間もなく一般公開となりました。加えて、「クイックスタート」と呼ばれる、所定の URL を開くだけで、指定の GitHub リポジトリから GitHub Codespaces のインスタンスが作成されて開発作業を開始できる、"Deep Link" の機能も提供されるようになりました。
今年の自習書更新では、この GitHub Codespaces の一般公開と機能進化にあわせて、GitHub Codespaces を利用した自習の体制も整備しました。自習書内で GitHub Codespaces を使って自習を開始する手順に言及しているほか、前述の Deep Link 機能を利用して、自習開始用の URL も提供しました (下記)。
GitHub Codespaces を利用することで、自習者は手元のPCを汚すことなく、事前の開発環境整備の手間なく自習を始められます。PC 上に .NET SDK をインストールする必要すらありません。Web ブラウザ上で Visual Studio Code 相当のコードエディタ環境が提供されるので、何となれば iPad をはじめとした PC 以外のデバイスでも作業できます。
4. 結局、今年も Microsoft Word で執筆・PDF で公開
自習書の提供フォーマットなのですが、昨年の Blazor Advent Calendar 記事で AsciiDoc や Draw.io を利用した記事作成などのご助言を頂いたものの、結局この 1 年間、そのための時間を取らずに終わってしまいました。ということで、今年も Microsoft Word で執筆継続 & PDF 形式にエクスポート、の提供形態で終わってしまいました。
折角ご助言・ご提案いただいたのにすみませんです。および、せまいデバイス幅での可読性向上を要望頂いていた皆さんのご要望にも、引き続きお応えできていないこと、ご了承ください。
以上、「Blazor WebAssembly アプリケーションプログラミング自習書」の .NET 8 対応 & 1年ぶりの更新と記事内容の進化について報告でした。
また、Blazor をご存じでない方々へは、本自習書を通して「へええ、C# で SPA が作れるって、ホントだったんだ」みたいな程度でいいので、皆さんの知見をちょっと広げる程度で構わないので、GitHub Codespaces での動作のお試しをしてもらえたらな、などと思っております。
Happy Coding! :)