【譯】ASP.NET Core在 .NET Core 3.1 Preview 1中的更新


.NET Core 3.1 Preview 1現在可用。此版本主要側重於錯誤修復,但同時也包含一些新功能。
這是此版本的ASP.NET Core的新增功能:

  • 對Razor components的部分類支持
  • 將參數傳遞給頂級組件
  • 在HttpSysServer中支持共享隊列
  • 在SameSite cookies的重大更改

除了.NET Core 3.1 Preview版本發布之外,我們還發布了Blazor WebAssembly的更新,現在要求.NET Core 3.1. 若要使用Blazor WebAssembly,您需要安裝.NET Core 3.1 Preview 1以及Visual Studio的最新預覽版。

有關其他詳細信息和已知問題,請參見發行說明

開始吧

要在.NET Core 3.1 Preview 1 中使用ASP.NET Core,需要安裝.NET Core Preview 1 SDK

如果你是在Windows上使用的Visual Studio,為獲得最佳體驗,建議你安裝Visual Studio 2019 16.4 的最新預覽版。安裝Visual Studio 2019 16.4 還將安裝上.NET Core 3.1 Preview 1,因此你無需單獨安裝它。為在.NET Core 3.1 中使用Blazor 開發,Visual Studio 2019 16.4是必須的。

要安裝最新的Blazor WebAssembly模板,請運行以下命令:

dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.1.0-preview1.19508.20

升級現有項目

要將現有的ASP.NET Core 3.0項目升級到3.1 Preview 1:

  • 將所有針對netcoreapp3.0的項目更新為netcoreapp3.1
  • 將所有Microsoft.AspNetCore.*軟件包引用更新為3.1.0-preview1.19506.1

另請參閱ASP.NET Core 3.1中重大更改的完成列表。

現在,您應該都已准備好使用.NET Core 3.1 Preview 1!

對Razor components的部分類支持

Razor components現在作為分布類生成。你可以使用定義為局部類的代碼隱藏文件編寫Razor components的代碼,而不用在單個文件中定義該組件的所有代碼。

例如,不是用@code塊定義默認的Counter component,而是這樣:
Counter.razor

@page "/counter"

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
int currentCount = 0;

void IncrementCount()
{
currentCount++;
}
}

現在,你可以使用部分類將代碼分離為代碼隱藏文件:
Counter.razor

@page "/counter"

<h1>Counter</h1>

<p>Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

Counter.razor.cs

namespace BlazorApp1.Pages
{
   public partial class Counter
   {
       int currentCount = 0;
   void IncrementCount()
   {
       currentCount++;
   }

}
}

將參數傳遞給頂級組件

現在,Blazor Server應用程序可以在初始渲染期間將參數傳遞給頂級組件(top-level components)。以前,你只能使用RenderMode.Static將參數傳遞給頂級組件。在此次發布的版本中,同時支持RenderMode.ServerRenderModel.ServerPrerendered。任何指定的參數值都將序列化為JSON,並包含在初始響應中。

例如,你可以使用特定的當前計數來渲染Counter組件,如下所示

@(await Html.RenderComponentAsync<Counter>(RenderMode.ServerPrerendered, new { CurrentCount = 123 }))

在HttpSysServer中支持共享隊列

除了HttpSysServer創建匿名請求隊列的現有行為外,我們還添加了創建或附加到現有命名HTTP.sys 請求隊列的功能。
這應該啟用一下方案:擁有隊列的HTTP.Sys控制器進程獨立於偵聽器進程,從而可以在跨多個偵聽器進程重新啟動之間保留現有的連接和排隊的請求。

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            // ...
            webBuilder.UseHttpSys(options =>
            {
                options.RequestQueueName = "MyExistingQueue",
                options.RequestQueueMode = RequestQueueMode.CreateOrAttach
            })
        });

在SameSite cookies的重大更改

此版本更新了ASP.NET Core中SameSite cookie的行為,以符合瀏覽器強制執行的最新標准。有關這些更改及其對現有應用程序的影響的詳細信息,請參見https://github.com/aspnet/Announcements/issues/390。

給予反饋

我們希望您喜歡此ASP.NET Core預覽版中的新功能!通過在GitHub上提交問題,請讓我們知道您的想法。

感謝您試用ASP.NET Core!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM