簡體   English   中英

了解 Blazor 裝配與 ASP.net 核心托管 Model

[英]Understanding Blazor Assembly with ASP.net Core Hosted Model

我已經閱讀了很多關於 Blazor 和不同托管模型(實際上是 3 個)的文章。 最容易理解的是純客戶端 model,它是一個在 webassembly 上運行的獨立應用程序。 那里沒問題。 But I continue to struggle to understand the difference between the server model and the WebAssembly model with ASP.NET Core Hosted (a checkbox) model.

請幫我澄清一些事情。

1) 對於服務器 model,瀏覽器使用 signalR 連接到服務器應用程序。 它是 Visual Studio 中的一個應用程序。 ASP.NET Core Hosted model 將單個應用程序拆分為兩個單獨的應用程序(客戶端和服務器)是否正確理解。 客戶端是一個 WebAssembly 應用程序,它仍然使用 SignalR 與服務器應用程序通信以獲取事件和獲取數據?

2)在客戶端和服務器應用程序之間,我看不到它們有任何關系或 class 引用,除了服務器應用程序引用客戶端應用程序。 我可以刪除客戶端應用程序引用,它仍然可以編譯。 但是,該站點是空的。 那么服務器應用程序如何知道從客戶端應用程序加載內容的位置呢? 僅僅是因為引用了客戶端應用程序嗎? “掛鈎”在哪里? 我問這個的另一個原因是我已經開始開發一個使用服務器 model 的網站,但是現在如果我想用 ASP.NET 核心主機更改為客戶端 model,該怎么做?

3) 在服務器應用程序中,有 _Layout.cshtml 文件。 在客戶端應用程序中,wwwroot 下有 index.html。 渲染的是 index.html。 那么 _Layout.cshtml 是干什么用的呢?

4)我從示例 VS 模板中看到,Server 應用程序用作 API 服務(天氣預報)。 在我的環境中,我已經有一個可以使用的專用 API 服務。 那么我將服務器應用程序用於什么? 托管客戶端應用程序是否只是一個空的 .NET 核心應用程序? 除了 API 調用之外,您如何使用服務器應用程序?

這是一個正確的理解[...]。 客戶端是一個 WebAssembly 應用程序,它仍然使用 SignalR 與服務器應用程序通信以獲取事件和獲取數據?

不。

Blazor 服務器:您的代碼在服務器上運行並使用 SignalR 推送更改。
Blazor Webassembly:在瀏覽器中運行,獨立。
Blazor Webassembly 托管:在一個解決方案中包含 3 個項目。 這只是一個方便的模板。 Asp.NET 服務器部分(不是 Blazor 應用程序)為客戶端提供服務,並且是托管 API 的地方。

Blazor Wasm 可以使用 SignalR 作為額外功能,但它不需要 function。

在客戶端和服務器應用程序之間,我看不到它們有任何關系或 class 引用,除了服務器應用程序引用客戶端應用程序。

正確的。 服務器只需要該引用來查找 Wasm 應用程序的(輸出)文件。 您可以刪除引用並使用路徑字符串配置某些內容。 這兩個項目之間沒有“技術”聯系。 它們在不同的平台上運行。

在服務器應用程序中,有 _Layout.cshtml 文件。 ... 那么 _Layout.cshtml 是干什么用的?

當您向項目添加授權時使用它。 當您不使用授權時它就在那里的事實可能是一個疏忽。 要查看它的實際效果,請創建一個啟用了個人帳戶的服務器或托管項目。 登錄等頁面使用 _Layout.cshtml

我已經有一個可以使用的專用 API 服務。 那么我將服務器應用程序用於什么?

那么你就不需要它了,你應該只使用簡單的 WebAssembly 模板。 您可以查看示例如何使用共享程序集 (DTO) 並為客戶端提供服務。 您可以在您的服務中使用其中的一部分,也可以不使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM