皆さん、こんにちは!
ソリューションコンサルタントの狩谷です。
本記事では、Blazor を使うべき人は誰なのかについて、お話ししたいと思います。
結論
C# で開発をしており、これから SPA の開発を始めようとしているエンジニアに向けたフレームワークだと思います。これまで使ってきた C# の技術を使って、フロントエンドを構築することができます。
Blazor とは?
C# で Web UI が開発できるフレームワークで、JavaScript の代わりに .NET と C# を使って、リッチでインタラクティブな Web UI を構築可能です。Razor コンポーネント単位で画面の部品を構築していくため、再利用性が高いです。C# で実装しますが、JavaScript との相互運用も可能です。(C# から JavaScript の処理を呼び出すことができますし、その逆も可能です。)
Blazor の種類
Blazor WebAssembly
WebAssembly を利用することにより、Web ブラウザー内で .NET のコードを実行することが可能になります。ランタイムと共にバイナリコードがブラウザにダウンロードされ、UI イベントが発生するとブラウザ上で直接実行されます。サーバーサイドの構築が必要ないため、純粋な静的サイトとして展開可能です。
Blazor Server
Razor コンポーネントを ASP.NET Core サーバー上でホストして動作する Blazor アプリケーションです。 Web サーバーと WebSocket(SignalR)で通信することにより、Web UI を動的に構築します。そのため、WebAssembly をサポートしてないブラウザでも動作可能です。
Blazor WebAssembly と Blazor Server の比較
機能 | Blazor WebAssembly | Blazor Server |
---|---|---|
データベースなどサーバーリソースへの直接アクセス | ❌ | 🔵 |
初回起動速度 | ❌ | 🔵 |
オフラインで実行可能 | 🔵 | ❌ |
レスポンス速度 | 🔵 | 🔺 |
Webサーバー | 🔵静的ファイルをホスティングできれば良い | 🔺ASP.NET Core サーバーが必要 |
スケーラビリティ | 🔵 | 🔺サーバー側リソースを消費 |
Blazor のメリット
.NET、C# の既存の技術でクライアントサイドを実装可能
高機能な Visual Studio の IDE 支援や既存の NuGet パッケージなどを、Blazor アプリ開発にそのまま活かせます。Razor 構文でそのままクライアント側のビューを実装可能なので、ASP.NET MVC の知見を活かすことができます。
クライアントとサーバー間でコードの共有が可能
クライアントサイドもサーバーサイドも .NET で構築するため、コードの共有が可能です。それぞれに重複して処理を実装する必要がないため、効率的に実装することができます。
まとめ
Blazor が向いている人は誰?
Windows Forms や WPF の開発者で、Web アプリの開発を始めようとしている人
JavaScript が分からない、学習したくなかった人でも、既存の C# の知識でクライアントの処理を実装できます。 ※ただし、HTML、CSS の学習は必須。JavaScript がどうしても必要な場面もある
ASP.NET MVC の開発者で、SPA の開発に興味がある人
React、 Angular、Vue.js などの JavaScript のフロントエンドフレームワークの学習は敷居が高いと感じている人にもご利用いただけると思います。先程も書きましたが、Razor 構文で記述できるため、ASP.NET MVC の経験者は既存の技術スタックが活用できます。
Blazor を使う必要がない人は?
JavaScript に精通しており、React、Angular、Vue.js などのフロントエンドフレームワークで開発できるエンジニア
既に、JavaScript でフロントエンドの構築ができるエンジニアが、あえて Blazor に移行するメリットは少ないと思います。C# を学習するコストも必要になります。
技術サポート・無料オンライン相談会をご利用ください
インフラジスティックスのUI製品は多くの機能を備えているためドキュメントの情報量も多く、なかなかお探しの情報に辿り着けない場合もあります。そういった際はお気軽に技術サポートや、製品導入支援担当との無料オンライン相談会をご予約いただくことで検証時間を節約可能ですので、ぜひご活用ください。
技術サポートへの問い合わせ方法を確認する
無料オンライン相談会を予約する