導入とホスティング

パッケージは1つ、ターゲットフレームワークも1つで、ホスティング方式ごとの設定もありません。このページでは、インストールの手順と、このライブラリが決めずに Blazor へ任せている事柄を説明します。

インストール#

dotnet add package BlazorCodeFirst --prerelease

公開しているバージョンには prerelease の接尾辞が付いています。--prerelease を外すと、コマンドは最新の安定版を探します。安定版はまだないので、パッケージは復元されません。

1つのパッケージに両方が入っています。ランタイムは lib/net10.0 に、ジェネレーターとアナライザーは analyzers/dotnet/cs に入っています。追加するパッケージは他にありません。

必要なもの#

  • .NET SDK 10.0.100 以降。
  • IDE を使うなら Visual Studio 2026 バージョン 18.0 以降。

ジェネレーターは Roslyn 5.0 のアナライザーとして配られ、それより古いコンパイラは読み込みを拒みます。

ターゲットフレームワークのベースラインは net10.0 で、全機能を備えています。

ホスティング方式はこのライブラリが決めるものではありません#

作成したコンポーネントは、通常の ComponentBase 派生クラスの RenderView オーバーライドへコンパイルされます。Blazor はそれを Razor コンポーネントと同じように差分計算します。Server、 WebAssembly、静的なサーバーサイドレンダリングは .razor の場合と同じように動作し、方式ごとの設定も不要です。

このドキュメントサイト自体が実例です。WebAssembly アプリをビルド時にプリレンダリングし、静的ファイルとして配信しています。

レンダーモードを指定する#

呼び出し側から、呼ぶコンポーネントのレンダーモードを指定できます。

Component<Counter>().RenderMode(RenderMode.InteractiveWebAssembly)

この形は、自分ではモードを宣言しないコンポーネントのためにあります。必要になるのは、同じコンポーネントをあるページからは対話的に、別のページからは静的に描くときです。自身の宣言でモードを固定しているコンポーネントは、呼び出し側からの指定を拒みます(BCF3034)。

トリミングして配信する#

実行時の UI ツリーはなく、リフレクションもなく、式のコンパイルもありません。そのためトリミングのルートも AOT のヒントも不要です。コンポーネントを書いた設計時の API は、配布物に残りません。ジェネレーターがその構文を読み、IL トリマーが本体を削ります。

実測してある唯一のコストはバインドで、増えるのは配布サイズです。バインドの個数には比例せず、一度きりのおよそ 10 KB です。双方向バインドを読んでください。

次に#

An unhandled error has occurred. Reload 🗙