導入とホスティング
パッケージは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 です。双方向バインドを読んでください。
次に#
.razorを書いてきたなら Razor からの移行。- そうでなければはじめるから。