ブレイザーとは何ですか?
Blazor(Browser + Razor)は、Microsoftによってリリースされた新しいWebフレームワークです。 HTMLとCSSに加えて、C#とRazor構文を使用してブラウザーベースのアプリケーションを作成できます。
以前は、Razorを使用する人は誰でも、サーバー上でRazorビューを起動する必要がありました。これにより、ブラウザーでレンダリングできるHTMLが生成されました。これで、Razorビューをクライアント側で実行できるようになりました。
BlazorはWebAssemblyを使用するため、対応するコードを実行するために、ブラウザーにサードパーティのプラグインやアドオンをインストールする必要はありません。その結果、Blazorを使用すると、アプリケーションのクライアント部分とサーバー部分をC#で作成できることがわかりました。クライアントとサーバーでコードとライブラリを共有する機能により、開発者の作業がはるかに楽になります。
Blazorで使用されているサンプルコードを次に示します。

ブレイザーコード
なぜブレイザーの周りにそんなに話題があるのですか?
ブレイザーはかなり短い時間でかなりの人気を得ています。彼らはそれを人気のあるJavaScriptフレームワークと比較し始めました。クライアント側のWeb開発の将来についてはインターネット上で多くの話があり、Blazorもそれらの会話の中で言及されています。これはすべて彼の人気を高めるだけです。この理由を理解し、Blazorにこれほど多くの注目が集まっている理由についてお話しすることを提案します。
前にも言ったように、Blazorの主な強みは、C#でブラウザベースのアプリケーションを開発できることです。近年、JavaScript(またはTypeScript)は、クライアント側のWebアプリケーションを開発するための主要な言語になっています。つまり、誰かが.NETプログラマーである場合、Web用のフルスタックアプリケーションを開発するには、JavaScriptを学ぶ必要があります。また、Blazorを使用すると、フロントエンドとバックエンドの両方のWebアプリケーションをC#で作成できます。個人的には、これがブレイザーの最大の強みです。
Blazor用に記述されたコードは、JavaScriptコードとは異なり、ブラウザーに到達する前に中間形式にプリコンパイルされます。この機能は、パフォーマンスを重視するブラウザアプリケーションを開発するときに、いくつかの優れた機能を提供します。さらに、Blazorアプリは、クライアントでリソースを大量に消費するタスクを解決するのに適しています。たとえば、PDFファイルを作成したり、ゲームアルゴリズムを機能させたりします。
しかし、上記とは別に、Blazorには他の興味深い機能があります。
- Blazorを機能させるためにブラウザプラグインは必要ありません。
- Blazor用に開発する場合、.NETコードを完全にデバッグできます。
- フレームワークは、最新のブラウザー機能を利用します。
- Blazorは、ユーザーフレンドリーなインターフェース開発モデルを維持しています。
- フレームワークは優れたブラウザサポートを備えています。
- Blazorは依存関係の注入をサポートしています。
- Blazorを使用すると、アプリケーションのクライアント部分とサーバー部分の間でコードを共有できます。
JavaScriptツールとBlazorの比較
そして今、私たちはこの記事の非常に主要な部分に到達しました。BlazorがJavaScriptで記述されたライブラリとフレームワークの代わりになることができるかどうかという質問に対する答えを探しましょう。JavaScriptは現在の位置を維持できますか?おそらく、フロントエンド開発の現状に興味のある人は、これらの質問に対する答えを知りたいと思うでしょう。最終的な結論を出すには、あるいはこのスコアについていくつかの仮定を立てるのは時期尚早だと思います。しかし、真実に近づくために、いくつかの主要なJavaScriptライブラリとフレームワークをBlazorと比較することができます。
▍BlazorとReactの比較
Reactは、Webコンポーネントを開発するための最良のライブラリであると多くの人に考えられています。 ReactとBlazorを比較することは困難ですが、Reactは慎重に作成されたライブラリであり、実際のプロジェクトを開発する価値があることが証明されていることを認めなければなりません。プログラマーの強力なコミュニティがReactの周りに形成されました。
Reactエコシステムには、最適化されたReactアプリの開発を容易にするライブラリとフレームワークがたくさんあります。これらのライブラリとフレームワークにより、Reactは、Web、コマンドライン、iOSとAndroid、およびデスクトップ用のアプリケーションを作成するために使用できる「ユニバーサル言語」になります。
BlazorはReactと比較して比較的新しいです。しかし、Blazorの背後にはしっかりとしたRazorシステムがあることを忘れないでください。したがって、Blazorがプログラマーにとって完全に未知のものであるとは言えません。さらに、BlazorはC#を使用するため、.NET開発者がこのフレームワークをより簡単かつ迅速に学習できるようになります。Reactは時間の経過とともに改善されましたが、開発者に多くの機会を提供します。Reactには多くの長所がありますが、Blazorは非常に若い年齢にもかかわらず、注目に値するものもあります。
- ReactプロジェクトのようなBlazorプロジェクトは、静的ファイルとしてデプロイできます。
- NuGetパッケージはBlazorアプリで使用できます。
- クライアントとサーバーでBlazorを使用する場合、同じコードを使用できます(もちろん、これはJS / TSを使用する場合にも当てはまります)。
- Blazorには、ユーザー入力を検証し、フォームを処理するためのルーティングメカニズムが組み込まれています。
これは、Blazorの機能のほんの一部です。しかし、現在の状況に注目すると、特定のチームが自信を持ってJavaScriptを使用している場合、そのチームは間違いなくReactを使用する必要があると言えます。一方、Blazorは、新しいWebプロジェクトを開始するときに、JavaScriptよりも.NETのコマンドが優れている人にとっては優れたオプションです。
▍ブレイザーと角度の比較
JavaScriptフレームワークAngularは、単一ページアプリケーションの開発にも人気があります。 Reactライブラリと比較すると、より標準的な機能が含まれていることがわかります。 Angularは、クライアントアプリケーション開発者にMVCアーキテクチャを提供して、プロジェクトの構築とテストのプロセスを簡素化します。 AngularとBlazorを比較すると、Angularは、実際のアプリケーションの構築に適した、よく知られた安定したフレームワークとして、フロントエンド開発において強力な位置を占めていることがわかります。さらに、AngularはプログレッシブWebアプリケーションを完全にサポートしていますが、Blazorのサーバー側メカニズムはまだこの方向に進化していません。さらに、AngularはTypeScriptを使用するため、このフレームワークは、JavaScriptベースのフレームワークやライブラリよりもC#プログラマーにとってより近く理解しやすいものです。Angularのすべての長所を考えると、TypeScriptに精通している人がBlazorを選択する理由はありません。
結果
ブレイザーは確かに興味深いプロジェクトであり、比較的最近登場したにもかかわらず、注目に値します。また、フロントエンド開発でJavaScriptツールを置き換えることができるかどうかという問題はまだ解決されていません。
ブレイザーを試しましたか?
