2/30

2/30

著者のウェブサイトの認識はフロントエンド、バックエンド、データベースであり、ユーザーがブラウザのページでボタンやフォームリクエストを押すとフロントエンドイベントがトリガーされ、収集された条件がバックエンドにパッケージ化されます。

最后更新 2021/12/09 23:04
StrayaWorker
预计阅读 3 分钟
分类
Blazor
专题
ブレザーシリーズを学ぶ
标签
.NET C# ASP.NET Core Blazor

フロントエンド、バックエンド、データベースとしてのウェブサイトの著者の認識は、ブラウザのページでユーザーがボタンまたはフォームリクエストを押し、フロントエンドイベントをトリガーし、収集された条件をバックエンドにパッケージ化し、バックエンドは条件を受信した後、データベースに行って判断し、ユーザーが望むデータを取り出し、バックエンドはページ、データをフロントエンドに戻し、フロントエンドは対応するデータをページに提示し、これが最も元のフロントエンドとバックエンドのコミュニケーションです。

その後、誰かがページをリフレッシュするたびに面倒すぎることを発見し、非同期で実行できるAjax技術を開発しました。イベントAが完了していない場合、他のイベントB、CはAが完了するのを待たず、自分で行うので、ユーザーがフォームリクエストを送信すると、ウェブページはリフレッシュを待つために小さな円を走り続けませんが、最初にユーザーにページを見てもらい、ユーザーが見えない場所で他のことが処理され続けます。ユーザーエクスペリエンスが大幅に向上します。

動的ウェブページの仕様は後に強く型付けされたTyepScriptが登場してもJSで統一された。(つまり、Angular、React、Vueなどのフロントエンドフレームワークで使用される言語)は、最終的にはブラウザが認識するJSにコンパイルする必要があり、TyepScriptもJSに基づいているため、バックエンドエンジニアが自分でウェブサイトを書きたい場合は、必然的にJSに対処しなければなりません。強い型に慣れている人にとっては、最初から開発するのと同じです。会社の規範が厳しくなく、任意のタイプの同僚に遭遇した場合、変数が数値を使って文字列を使うのはクレイジーですが、Blazorが登場してよかったです。

BlazorはBrowserとRazorの合成語であり、ブラウザ上で実行されるRazorコンポーネントを表します。

BlazorはWeb Assemblyホスティングとサーバホスティングの2つのモードに分かれており、クライアントサイドとサーバサイドの両方に長所と短所があります。先に進む前にWeb Assemblyとは何かを説明しましょう。

Web AssemblyはWasmと呼ばれ、バイナリ表現言語であり、特定のコンパイル後の任意のプログラミング言語はWasmに変換することができ、Wasmの利点は、サーバーを必要とせずにブラウザにプログラム全体を送信することです。バイナリとコンパイルされた関係のため、Webページのレンダリング速度はJSよりも速くなり、ファイルが小さくなります。

Blazor Web Assemblyは、コンパイルされたdllファイルと. NETランタイムをパッケージ化してユーザーのブラウザに送信するため、最初の接続の確立は遅くなります。Blazor Serverは、サーバーとブラウザ間のSingalR接続を確立し、ブラウザがイベントをトリガーすると、サーバーはページ全体を更新しません。(すべてのHtml要素をフロントエンドに送ります)代わりに、変更された要素(divなど)をSingalR経由でブラウザに送ります。これは、BlazorもAngularのようにSPA Single Page Applicationモードを使用しているためです。最初から最後までは1ページだけで、さまざまな機能のコンポーネントがいっぱいで、イベントをトリガーすると関連するコンポーネントのみが更新されます。

Blazor WebAssembly

利点:

  1. すべてのファイルがブラウザ上にあるため、Blazor Serverよりも高速です。
  2. サーバー不要です。
  3. サーバーに接続する必要はありません。
  4. クライアント側のブラウザがフル活用され、サーバ負荷が軽減
  5. クラウド、マイクロソフトのAzure、さらにはCDN(Content Delivery Network)など、データをユーザーの地理的位置に近い場所に保存するモデルです。例えば、私が米国のホストサイトにログインしたい場合、速度は台湾のホストサイトよりもずっと遅くなります。CDNは台湾のホストサイトにデータを保存します。香港、シンガポールなど、台湾に近い地域のホストに保存します。

短所:

  1. ブラウザが. NETランタイムなどのコンポーネントをダウンロードするため、最初のロードには時間がかかります(注:アイアンマンの前に筆者は新しいBlazor Web Assemblyプロジェクトを作成しましたが、コンポーネントがダウンロードされていないことがわかりました。Microsoftの公式画像にもダウンロードされたコンポーネントが表示されません。
  2. ブラウザの能力に制限される
  3. クライアント側のハードウェアが重要です。

Blazor Server

利点:

  1. 読み込み速度が速い。
  2. サーバの能力を最大限に活用できる
  3. このソフトウェアを使用するクライアントに必要なのはブラウザだけです。
  4. ソースコードがクライアントに届かないので安全です。

短所:

  1. サーバーが必要。
  2. サーバーとの接続が必要です。
  3. データが前後に移動するため、遅延感が大きくなります。
  4. サーバーが耐えられるクライアント側が限られているため、コンピューティング能力を向上させることは容易ではありません。マイクロソフトは、3.5 Gメモリを備えたシングルコアBlazor Serverは5,000接続を処理できます。14Gメモリを備えたクアッドコアBlazor Serverは20,000接続を処理できます。

Blazor Web AssemblyとBlazor Serverの長所と短所を別々にリストすると、どちらも完璧ではなく、最適なものだけがわかります。PHP、Node、Railsなどの他のプログラミング言語アーキテクチャをすでに持っているサーバーが、常にサーバーに接続する必要のないクライアントサイドプログラムが必要な場合は、Blazor Web Assemblyが最適です。Blazor Web AssemblyにはPWAがあります。Progressive Web Appデータの追加、変更、削除など、サーバーへの頻繁な接続を必要とするWebサイトをゼロから作成する必要がある場合は、Blazor Serverが適しています。

しかし、Blazorは結局のところ、マイクロソフトの新製品であり、筆者はASP.NET CoreとBlazorしか使用しておらず、Blazor Web AssemblyはPHPやその他のマイクロソフト以外の言語開発とのバックエンド統合を望んでおり、関連するニーズがある場合は、注意すべき他の場所があるかもしれません。

テキストの多くは、おそらくまだ多くの人が私の最初の接触を理解していない、私は明日2つのプロジェクトを作成し、誰もが2つの違いを見てみましょう。

**注:このコードは. NET 6 + Visual Studio 2022リファクタリングを通じて、元のリンクとリファクタリング後のコードを比較することができます。読んでいただきありがとうございます。

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2021/12/25

(29/30みんなで学ぶBlazor:Blazorユニットテスト

システムを開発する最も退屈なプロセスは、バグを解決することです。特に、nullオブジェクトに値を取ろうとするエラーです`Object reference not set to an instance of an object.`,これは、ほとんどの人がプログラミングの分野に足を踏み入れたばかりの最も一般的な問題である必要があります。退屈なバグ解決プロセスから解放するために、この記事では、単体テストを紹介します。

继续阅读
同分类 / 同标签 2021/12/25

(28 Blazor:Policy Based Authorizationの略。

前に`ASP.NET Core Identity`は`Claim`に基づいた検証を使用していると述べたが、実は`ASP.NET Core Identity`には異なる種類の認可方式があり、最も簡単な`ログイン認可`、`ロール認可`、`Claim認可`があるが、上記のいくつかの種類はすべて一つの方式で実現されている:原則認可`Policy-based authorization`。

继续阅读