次の方法で共有


ASP.NET Web フォーム開発者向けの Blazor の概要

ヒント

このコンテンツは電子ブック、Azure の「ASP.NET Web Forms 開発者向け Blazor」からの抜粋です。これは .NET Docs から閲覧するか、オフラインで読める無料ダウンロードの PDF としても入手できます。

Blazor-for-ASP-NET-Web-Forms-Developers 電子ブックのカバー サムネイル。

ASP.NET Web フォーム フレームワークは、.NET Framework が 2002 年に初めて出荷されて以来、.NET Web 開発の主要な機能です。 Web がまだほとんど初期段階にあった当時、ASP.NET Web Forms では、デスクトップ開発に使用されていたパターンの多くを採用することで、Web アプリの構築が簡単で生産性が高くなっていました。 ASP.NET Web フォームでは、再利用可能な UI コントロールから Web ページをすばやく構成できます。 ユーザーの操作は、イベントとして自然に処理されます。 Microsoft とコントロール ベンダーによって提供される Web フォーム UI コントロールの豊富なエコシステムがあります。 このコントロールにより、データ ソースに接続し、豊富なデータ視覚化を表示する作業が容易になります。 視覚に訴えるものとして、Web フォームデザイナーはコントロールを操作するためのシンプルなドラッグアンドドロップインターフェースを提供します。

長年にわたり、Microsoft は新しい ASP を導入してきました。Web 開発の傾向に対処するための NET ベースの Web フレームワーク。 このような Web フレームワークには、ASP.NET MVC、ASP.NET Web ページ、最近では ASP.NET Core などがあります。 新しいフレームワークごとに、ASP.NET Web フォームの減少が差し迫っていることを予測し、時代遅れの時代遅れの Web フレームワークとして批判している人もいます。 これらの予測にもかかわらず、多くの .NET Web 開発者は、ASP.NET Web Forms の作業を簡単で安定した生産性の高い方法で実現し続けます。

執筆時点では、約 50 万人の Web 開発者が毎月 ASP.NET Web Forms を使用しています。 ASP.NET Web Forms フレームワークは、10 年前のドキュメント、サンプル、書籍、ブログの投稿が引き続き役立ち、関連性が高い点で安定しています。 多くの .NET Web 開発者にとって、"ASP.NET" は 、.NET が最初に考え出されたときと同様に、"ASP.NET Web フォーム" と同義です。 ASP.NET Web フォームの長所と短所が他の新しい .NET フレームワークと比較されて議論が続けられる可能性があります。 ASP.NET Web フォームは、Web アプリを作成するための一般的なフレームワークです。

それでも、ソフトウェア開発のイノベーションは遅くはありません。 すべてのソフトウェア開発者は、新しいテクノロジと傾向を常に把握する必要があります。 特に、次の 2 つの傾向を考慮する必要があります。

  1. オープンソースとクロスプラットフォームへの移行
  2. アプリ ロジックからクライアントへの移行

オープンソースおよびクロスプラットフォームの .NET

.NET と ASP.NET Web Forms が最初に出荷されたとき、プラットフォーム エコシステムは現在とは大きく異なって見えました。 デスクトップとサーバーの市場は、Windows によって支配されていました。 macOS や Linux などの代替プラットフォームは、引き続き牽引力を得るために苦労していました。 ASP.NET Web フォームには、Windows 専用コンポーネントとして .NET Framework が付属しています。つまり、ASP.NET Web フォーム アプリは Windows Server コンピューターでのみ実行できます。 多くの最新の環境では、多くのユーザーに対するクロスプラットフォーム サポートが絶対の要件になるように、サーバーと開発マシンにさまざまな種類のプラットフォームが使用されるようになりました。

ほとんどの最新の Web フレームワークもオープンソースになり、多くの利点があります。 ユーザーは、バグの修正や機能の追加において、特定の1人のプロジェクト所有者に依存する必要はありません。 オープンソース プロジェクトにより、開発の進行状況と今後の変更に関する透明性が向上します。 オープンソース プロジェクトは、コミュニティ全体からの貢献を享受し、協力的なオープンソース エコシステムを促進します。 オープンソースのリスクにもかかわらず、多くの消費者や共同作成者は、オープンソースエコシステムの利点を安全かつ合理的な方法で享受できる適切な軽減策を見つけました。 このような軽減策の例としては、共同作成者ライセンス契約、フレンドリ ライセンス、血統スキャン、サポート基盤などがあります。

.NET コミュニティでは、クロスプラットフォームサポートとオープンソースの両方が採用されています。 .NET Core は、Windows、macOS、さまざまな Linux ディストリビューションなど、多数のプラットフォームで実行される .NET のオープンソースおよびクロスプラットフォーム実装です。 Mono は、Android、iOS、および時計やスマート テレビなど、さまざまなフォーム ファクターで実行される .NET のオープンソース バージョンです。 2020 年、Microsoft は .NET Core と Mono を調整した .NET 5 をリリースし、"あらゆる場所で使用でき、ランタイム動作と開発者エクスペリエンスが統一された単一の .NET ランタイムとフレームワーク" にしました。

ASP.NET Web フォームは、オープンソースとクロスプラットフォームのサポートへの移行の恩恵を受けますか? 残念ながら、答えはノーです。少なくともプラットフォーム全体と同じ程度にはなりません。 .NET チームは、ASP.NET Web フォームが .NET Core または .NET 8 に移植されていないことを 明らかに しました。 なぜでしょうか。

.NET Core の初期には、Web フォーム ASP.NET 移植する作業がありました。 必要な破壊的変更の数が極端すぎることが判明しました。 また、Microsoft の場合でも、同時にサポートできる Web フレームワークの数には制限があることを認めます。 おそらく、コミュニティの誰かが、ASP.NET Web フォームのオープンソースおよびクロスプラットフォーム バージョンを作成する原因を取り上げるでしょう。 ASP.NET Web フォームのソース コードは、参照フォームで公開されています。 しかし、当分の間、Web フォーム ASP.NET は Windows 専用であり、オープンソースのコントリビューション モデルは存在しないようです。 クロスプラットフォームのサポートまたはオープンソースがシナリオで重要になる場合は、新しいものを探す必要があります。

これは、ASP.NET Web フォームが 停止 し、使用されなくなったということですか? もちろんそうじゃないです! .NET Framework が Windows の一部として付属している限り、ASP.NET Web フォームはサポートされるフレームワークになります。 多くの Web フォーム開発者にとって、クロスプラットフォームとオープンソースのサポートの欠如は問題ではない。 クロスプラットフォーム のサポート、オープンソース、または .NET Core または .NET 8 のその他の新機能の要件がない場合は、Windows 上の ASP.NET Web フォームを使用しても問題ありません。 ASP.NET Web フォームは、今後も Web アプリを作成するための生産的な方法です。

しかし、検討する価値のあるもう 1 つの傾向があり、それがクライアントへの移行です。

クライアント側の Web 開発

すべての.ASP.NET Web フォームを含む NET ベースの Web フレームワークには、サーバー レンダリングという 1 つの共通点がありました。 サーバーでレンダリングされた Web アプリでは、ブラウザーがサーバーに要求を行い、応答を生成するためにいくつかのコード (ASP.NET アプリの .NET コード) を実行します。 その応答は、処理するためにブラウザーに返されます。 このモデルでは、ブラウザーがシン レンダリング エンジンとして使用されます。 UI の生成、ビジネス ロジックの実行、および状態の管理のハード ワークは、サーバー上で発生します。

しかし、ブラウザーは汎用性の高いプラットフォームになっています。 ユーザーのコンピューターの機能へのアクセスを許可するオープン Web 標準の数が増え続けるのです。 クライアント デバイスのコンピューティング能力、ストレージ、メモリ、その他のリソースを活用してみませんか? 特に UI の操作は、少なくとも部分的または完全にクライアント側で処理された場合に、より豊かでインタラクティブな操作性の恩恵を受けることができます。 サーバーで処理する必要があるロジックとデータは、引き続きサーバー側で処理できます。 Web API 呼び出しや、WebSocket などのリアルタイム プロトコルも使用できます。 これらの利点は、JavaScript を記述する場合に Web 開発者が無料で利用できます。 Angular、React、Vue などのクライアント側 UI フレームワークにより、クライアント側の Web 開発が簡素化され、人気が高まっています。 ASP.NET Web Forms 開発者は、クライアントを活用することでメリットを得ることができ、ASP.NET AJAX などの統合 JavaScript フレームワークですぐに使用できるサポートも提供できます。

ただし、2 つの異なるプラットフォームとエコシステム (.NET と JavaScript) のブリッジにはコストがかかります。 専門知識は、異なる言語、フレームワーク、およびツールを備えた 2 つの並列世界で必要です。 コードとロジックをクライアントとサーバー間で簡単に共有できないため、重複とエンジニアリングのオーバーヘッドが発生します。 また、ブレークネックスピードで進化してきた歴史を持つJavaScriptエコシステムに追いつくのも難しい場合があります。 フロントエンド フレームワークとビルド ツールの設定は、すぐに変更されます。 業界では、Grunt から Gulp から Webpack への進行状況が観察されています。 jQuery、Knockout、Angular、React、Vue などのフロントエンド フレームワークでも、同じ落ち着きのないチャーンが発生しました。 しかし、JavaScriptのブラウザ独占を考えると、この問題にはほとんど選択肢はありませんでした。 つまり、Web コミュニティが集まって 奇跡 が起こるまでです。

WebAssembly ニーズを満たす

2015 年、主要なブラウザー ベンダーは W3C コミュニティ グループに力を合わせ、 WebAssemblyという新しいオープン Web 標準を作成しました。 WebAssembly は Web のバイト コードです。 コードをコンパイルして WebAssemblyできる場合は、任意のプラットフォーム上の任意のブラウザーでネイティブに近い速度で実行できます。 C/C++ に重点を置いた最初の取り組み。 その結果、プラグインなしでブラウザで直接ネイティブの3Dグラフィックスエンジンを実行する劇的なデモンストレーションが行われました。 WebAssembly その後、すべての主要なブラウザーによって標準化および実装されています。

WebAssemblyでの .NET の実行に関する作業は、2017 年後半に発表され、.NET 5 以降のサポートを含め、2020 年にリリースされました。 ブラウザーで .NET コードを直接実行する機能により、.NET を使用したフル スタック Web 開発が可能になります。

Blazor: .NET を使用したフル スタック Web 開発

それ自体では、ブラウザーで .NET コードを実行する機能では、クライアント側の Web アプリを作成するためのエンド ツー エンドのエクスペリエンスは提供されません。 そこで、 Blazor が登場します。 Blazor は、JavaScript ではなく C# に基づくクライアント側の Web UI フレームワークです。 Blazor は、 WebAssemblyを介してブラウザーで直接実行できます。 ブラウザー プラグインは必要ありません。 または、 Blazor アプリは.NET 上でサーバー側を実行し、ブラウザーとのリアルタイム接続を介してすべてのユーザー操作を処理できます。

Blazor には、Visual Studio と Visual Studio Code で優れたツール サポートがあります。 フレームワークには、完全な UI コンポーネント モデルも含まれており、次の機能が組み込まれています。

  • フォームと検証
  • 依存関係の挿入
  • クライアント側のルーティング
  • レイアウト
  • ブラウザー内デバッグ
  • JavaScript 相互運用

Blazor には、ASP.NET Web フォームと多くの共通点があります。 どちらのフレームワークも、コンポーネントベースのイベントドリブンのステートフル UI プログラミング モデルを提供します。 アーキテクチャ上の主な違いは、ASP.NET Web フォームがサーバー上でのみ実行される点です。 Blazor は、ブラウザーでクライアントで実行できます。 しかし、ASP.NET Web フォームの背景から来ている場合は、 Blazor にはなじみのあるものがたくさんあります。 Blazor は、クライアント側開発と .NET のオープンソースかつクロスプラットフォームな未来を活用したいと考えている ASP.NET Web フォーム開発者にとって自然なソリューションです。

この書籍では、ASP.NET Web Forms 開発者向けに特化した Blazor の概要について説明します。 各 Blazor の概念は、Web フォームの機能とプラクティスに似た ASP.NET コンテキストで示されます。 この本の終わりまでに、次の内容について理解を深めます。

  • Blazor アプリをビルドする方法。
  • Blazorのしくみ。
  • Blazorと .NET の関係。
  • 必要に応じて、既存の ASP.NET Web フォーム アプリを Blazor に移行するための妥当な戦略。

Blazorを使い始める

Blazorを始めるのは簡単です。 https://blazor.netに移動し、リンクに従って適切な .NET SDK とBlazor プロジェクト テンプレートをインストールします。 また、Visual Studio または Visual Studio Code で Blazor ツールを設定する手順についても説明します。