3/30

3/30

Visual Studioをダウンロードした後、まずBlazorソリューションを構築し、Blazor Serverプロジェクトを構築し、ソリューションの場所を選択できます(注:Visual Studioの新バージョンはBlazor ServerとBlazor Web Assemblyの新規プロジェクトテンプレートを分割しています)。

最后更新 2021/12/10 0:13
StrayaWorker
预计阅读 3 分钟
分类
Blazor
专题
ブレザーシリーズを学ぶ
标签
.NET Blazor Visual Studio Blazor Server Blazor WebAssembly

Visual Studioをダウンロードした後、まずBlazorソリューションを作成し、Blazor Serverプロジェクトを作成し、ソリューションの場所を選択できます。CLARiXのメモ:Visual Studioの新しいバージョンは、Blazor ServerとBlazor Web Assemblyの新しいプロジェクトテンプレートを分割し、内部のプログラムに関係なく、F 5を押して実行し、WebページでF 12またはCtrl+Shift+Iを押して開発者ツールを開きます。Devツール

创建解决

Blazor 两种模板应用

创建Blazor Server应用

配置Blazor Server应用

选择.NET 6

运行

运行+F12

F5重新加载网页

SignalR连接

ブラウザにダウンロードされたファイルを空にして、CounterとFetch dataのページをクリックすると、以前のサイトでは、これはページをリフレッシュする操作ですが、このページに必要なファイルを再ダウンロードすることができます。しかし、この2ページはダウンロードされていません。最初に接続が確立された後、それ以降のファイル転送はSingalR経由で行われます。

清空文件下载记录

切换Counter和Fetch data菜单

接着在同一个解决方案建立一个 Blazor WebAssembly 项目,可以看到这里有 渐进式 Web 应用程序 选项,如果选了,这个网站就可以在电脑下载下来。

同一解决方案新建项目

选择Blazor WebAssembly应用

Blazor WebAssembly应用其他信息配置

ビルド後すぐにプロジェクトを開始できますが、Blazor ServerとBlazor Web Assemblyの両方を同時に起動したい場合はどうでしょうか?両方のアイテムを起動アイテムに設定でき、続いてF5を押すと起動アイテムになる。

Blazor WebAssembly应用运行

解决方案配置启动项目菜单

配置多启动项目

多启动项目配置成功

数ヶ月前に開発したときには、多くのdllファイルがダウンロードされていましたが、MicrosoftがBlazor Web Assemblyのdllダウンロードルールを変更し、コンポーネントがリクエストを送信したときにのみブラウザにダウンロードされるようにしたため、Blazor Web Assemblyがブラウザの負荷を大幅に軽減しました。

两种模式运行下载文件对比

次に、プロジェクト構造を見て、2つの同等のファイルを同じ色でボックス化し、数字でラベルします。5番を見ると、Blazor ServerとBlazor Web AssemblyにはProgram.csがあり、どちらのプログラムもProgram.csがあります。

两种模式项目结构对比

Blazor Server用のProgram.csファイル:

Blazor Server Program.cs

Blazor Wasmのプログラム. csファイル:

Blazor Wasm Program.cs

どちらのタイプのプロジェクトもbuilder.Services経由でサービスを注入します。. NET 6プレビュー以前のバージョンでは、Startup.csファイルが追加され、ConfigureServicesメソッドで“サービスを構成”します(関連するサービスを使用する場合は、ここで依存性注入DI Dependency Injectionを使用する必要があります。依存性注入の利点については後述します)。両方の機能は同じですが、. NET 6ははるかにクリーンに見えますか?

通过var app = builder.Build();得到的 app 实例,和原来 Startup.cs 中的 Configure 方法作用也是类似的。用于处理 request 或是注册 middleware 的地方,举例来说,如果想使用别人写的身分验证套件,就必须在这里注册。定义路由也是在这里做的,MapBlazorHub()是建立 Server 跟浏览器间 SingalR 连接的方法,MapFallbackToPage("/_Host")代表网页入口是_Host,Controller 跟 razor page 之外的 request(也就是第一次连接、或是连接出错时)是从这里进入,之后的 Component 触发都是经由 6 号框的 App.razor 更动。

Blazor Server Program.cs

Blazor Server Host.cshtml

次にボックス2を見ると、Blazor Serverには_Host.cshtml、_Layout.cshtmlとError.cshtmlがあります。_Host.cshtmlは先に述べましたが、_Layout.cshtml(Blazor Server)とindex.html(Blazor Wasm)に似ていて、Webサイトのホームページであり、Error.cshtmlは接続エラーが発生した場合に表示されるページです。他のrazorファイル名のファイルは、個々のコンポーネントComponentである。

3番ボックスは2つの項目が同じで、MainLayout.razor、NavMenu.razorはそれぞれWebページのレイアウトとメニューで、WebサイトはすべてのWebページが同じSidebar、Menuを使用している場合、更新するたびに(会社ロゴを変更する、連絡先を追加するなど)すべてのWebページを処理しなければならないが、非効率的であるため、Blazorはこれらのページを抽出し、1箇所を変更するだけですべてのWebページを適用することができる。SurveyPrompt.razorは、Blazorが提供する簡単な例です。Imports.razorは使用される名前空間をここに配置します。例えば、@using System;のように、各razorページは名前空間を参照する必要はありません。異なるコンポーネントの名前空間を区別するには、別の_Imports.razorファイルを異なるフォルダに作成することもできます。

最後に、ボックス1のw w wrootフォルダ、Blazor Web Assemblyにはsample-dataディレクトリ、icon-192.pngとindex.htmlがあり、sample-dataディレクトリはブラウザにダウンロードされた天気データで、icon-192.pngはどこにもないようですか?index.htmlは、Blazor Serverの_Host.cshtmlに相当します前の段落で説明した。

Blazor Serverには何もないデータフォルダがありますが、そこには何がありますか?実際には、サーバーがブラウザに送信する気象データであり、WeatherForecast Serviceはこの単語を覚えておいてください、依存性注入はそれに依存します。

Blazor Server Data目录

最後に、Blazor Serverのappsettings.jsonです。これはJSON形式のファイルで、データベースとの接続に使用される接続文字列など、頻繁に変更する必要があるデータをここに置くことができます。プログラムに記述されている場合は、変更ごとにプログラムを再コンパイルする必要があり、appsettings.jsonに配置する柔軟性は比較的大きいです。

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

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2023/06/27

Blazor版テトリスゲームの展開に成功

TetrisのBlazorバージョンがオンラインで公開され、オンラインツールとオンラインゲームコンポーネントがRazor共有ライブラリに抽出され、Dotnet9ウェブサイトとDotnet Toolboxウェブサイトで再利用できるようになった。

继续阅读
同分类 / 同标签 2022/03/16

Blazorがファイルをアップロードする最良の方法ですか?

Blazorは本当に良いことで、開発効率を大幅に向上させ、多くのページインタラクション機能は基本的に実装するためにほとんどコードを書く必要がありません。また、JS実装はありません。Blazorはファイルアップロードを実現するのがどれほど簡単かとは思いません。

继续阅读
同分类 / 同标签 2024/11/06

なぜ私のブログはBlazorに戻るのか?

ブログサイトの開発は苦労し、MVC、Vue、Goなどの10近くのバージョンを試してきましたが、Blazorに戻り、静的SSRを使用して、速度が急上昇し、正常にオンラインになりました。

继续阅读