国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - .NET 8 Release Candidate 1 (RC1)現(xiàn)已發(fā)布,包括許多針對(duì)ASP.NET Core的重要改進(jìn)!

.NET 8 Release Candidate 1 (RC1)現(xiàn)已發(fā)布,包括許多針對(duì)ASP.NET Core的重要改進(jìn)!

2023-12-16 00:11未知服務(wù)器之家 ASP.NET教程

這是我們計(jì)劃在今年晚些時(shí)候發(fā)布的最終.NET 8版本之前的兩個(gè)候選版本中的第一個(gè)。大部分計(jì)劃中的功能和變更都包含在這個(gè)候選版本中,可以供您嘗試使用。您可以在文檔中找到完整的ASP.NET Core在.NET 8中的新功能列表。一些領(lǐng)域

這是我們計(jì)劃在今年晚些時(shí)候發(fā)布的最終.NET 8版本之前的兩個(gè)候選版本中的第一個(gè)。大部分計(jì)劃中的功能和變更都包含在這個(gè)候選版本中,可以供您嘗試使用。您可以在文檔中找到完整的ASP.NET Core在.NET 8中的新功能列表。一些領(lǐng)域(尤其是Blazor)仍然有一些重大的變更待完成,我們預(yù)計(jì)將在下一個(gè).NET 8候選版本中完成這些變更。

以下是此預(yù)覽版中的新功能摘要:

  • 服務(wù)器和中間件
    • 默認(rèn)情況下禁用HTTP/3
  • API編寫
    • 在最小API、MVC和SignalR中支持鍵入服務(wù)
  • Blazor
    • Blazor Web App模板更新
    • 從額外的程序集中發(fā)現(xiàn)用于靜態(tài)服務(wù)器呈現(xiàn)的組件
    • 路由改進(jìn)
    • 觸發(fā)頁面刷新
    • 將任意屬性傳遞給QuickGrid
    • 確定表單字段是否具有相關(guān)的驗(yàn)證消息
    • 配置.NET WebAssembly運(yùn)行時(shí)
    • 在預(yù)先編譯(AOT)編譯后修剪.NET IL
  • Identity
    • 移除username屬性
  • 單頁應(yīng)用程序(SPA)
    • 標(biāo)準(zhǔn).NET模板選項(xiàng)
  • 度量

有關(guān)ASP.NET Core在.NET 8中計(jì)劃的更多詳細(xì)信息,請(qǐng)查看GitHub上的完整ASP.NET Core .NET 8路線圖。

開始

要開始使用.NET 8 RC1中的ASP.NET Core,請(qǐng)安裝.NET 8 SDK。

如果您使用Windows并使用Visual Studio,我們建議安裝最新的Visual Studio 2022預(yù)覽版。如果您使用Visual Studio Code,則可以嘗試新的C# Dev Kit。

升級(jí)現(xiàn)有項(xiàng)目

要將現(xiàn)有的ASP.NET Core應(yīng)用程序從.NET 8預(yù)覽7升級(jí)到.NET 8 RC1:

  • 將您的應(yīng)用程序的目標(biāo)框架更新為.net8.0
  • 將所有Microsoft.AspNetCore.*包引用更新為.8.0.0-rc.1.*
  • 將所有Microsoft.Extensions.*包引用更新為.8.0.0-rc.1.*

另請(qǐng)參閱ASP.NET Core .NET 8中的破壞性變更的完整列表。

服務(wù)器和中間件

默認(rèn)情況下禁用HTTP/3

Kestrel中默認(rèn)情況下不再啟用HTTP/3。這個(gè)更改將Kestrel的HTTP協(xié)議行為恢復(fù)到.NET 7狀態(tài),但不同于所有.NET 8預(yù)覽版本。

我們之所以恢復(fù)到.NET 7的行為,是因?yàn)閱⒂肏TTP/3會(huì)導(dǎo)致某些防病毒軟件在啟動(dòng)帶有調(diào)試的應(yīng)用程序時(shí)提示是否允許網(wǎng)絡(luò)訪問。這不是一個(gè)良好的體驗(yàn),因此在我們改進(jìn)開發(fā)人員體驗(yàn)之前,我們將默認(rèn)情況下禁用HTTP/3。

您可以通過設(shè)置您的端點(diǎn)允許的協(xié)議來為每個(gè)端點(diǎn)重新啟用HTTP/3:

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.ConfigureKestrel((context, options) =>
{
    options.ListenAnyIP(5001, listenOptions =>
    {
        listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
        listenOptions.UseHttps();
    });
});

或者,通過配置默認(rèn)協(xié)議來重新啟用HTTP/3:

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.ConfigureKestrel((context, options) =>
{
    options.ConfigureEndpointDefaults(listenOptions =>
    {
        listenOptions.Protocols = HttpProtocols.Http1AndHttp2AndHttp3;
        listenOptions.UseHttps();
    });
});

有關(guān)HTTP/3要求和配置的更多信息,請(qǐng)參閱在ASP.NET Core Kestrel Web服務(wù)器中使用HTTP/3。

API編寫

在最小API、MVC和SignalR中支持鍵入服務(wù)

在.NET 8預(yù)覽7中,我們引入了對(duì)DI中鍵入服務(wù)的支持。從.NET 8 RC1開始,可以在使用最小API、基于控制器的API和SignalR中使用鍵入服務(wù)。要利用新的鍵入服務(wù)支持,請(qǐng)使用屬性注釋目標(biāo)參數(shù)[FromKeyedServices("keyName")]

以下示例展示了最小API和控制器中的支持:

using Microsoft.AspNetCore.Mvc;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddKeyedSingleton<ICache, BigCache>("big");
builder.Services.AddKeyedSingleton<ICache, SmallCache>("small");
builder.Services.AddControllers();

var app = builder.Build();

app.MapGet("/big", ([FromKeyedServices("big")] ICache bigCache) => bigCache.Get("date"));

app.MapGet("/small", ([FromKeyedServices("small")] ICache smallCache) => smallCache.Get("date"));

app.MapControllers();

app.Run();

public interface ICache
{
    object Get(string key);
}
public class BigCache : ICache
{
    public object Get(string key) => $"Resolving {key} from big cache.";
}

public class SmallCache : ICache
{
    public object Get(string key) => $"Resolving {key}

 from small cache.";
}

[ApiController]
[Route("/cache")]
public class CustomServicesApiController : Controller
{
    [HttpGet("big-cache")]
    public ActionResult<object> GetOk([FromKeyedServices("big")] ICache cache)
    {
        return cache.Get("data-mvc");
    }
}

public class MyHub : Hub
{
    public void Method([FromKeyedServices("small")] ICache cache)
    {
        Console.WriteLine(cache.Get("signalr"));
    }
}

Blazor

Blazor Web App模板更新

在.NET 8中,我們一直在增加Blazor的功能,以便您可以使用Blazor組件來滿足您的所有Web UI需求。您現(xiàn)在可以根據(jù)請(qǐng)求靜態(tài)地從服務(wù)器呈現(xiàn)Blazor組件,逐漸增強(qiáng)體驗(yàn),增強(qiáng)導(dǎo)航和表單處理,流式服務(wù)器呈現(xiàn)更新,并根據(jù)需要添加豐富的交互性,使用Blazor Server或Blazor WebAssembly。為了優(yōu)化應(yīng)用程序的加載時(shí)間,Blazor還可以在運(yùn)行時(shí)自動(dòng)選擇是使用Blazor Server還是Blazor WebAssembly。

這些新的Blazor功能現(xiàn)在都已由Blazor Web App項(xiàng)目模板為您設(shè)置。在此版本中,Blazor Web App模板已進(jìn)行清理和改進(jìn),具有幾個(gè)用于配置不同場景的新選項(xiàng)。

Blazor Web App現(xiàn)在具有以下選項(xiàng):

  • 使用交互式WebAssembly組件:啟用對(duì)交互式WebAssembly渲染模式的支持,基于Blazor WebAssembly。
  • 使用交互式Server組件:啟用對(duì)交互式Server渲染模式的支持,基于Blazor Server。
  • 包括示例頁面:如果選擇此選項(xiàng),項(xiàng)目將包括基于Bootstrap樣式的示例頁面和布局。如果只想要一個(gè)空項(xiàng)目來開始,可以禁用此選項(xiàng)。

如果同時(shí)選擇了WebAssembly和Server渲染模式,那么模板將使用自動(dòng)渲染模式。自動(dòng)渲染模式將在下載.NET運(yùn)行時(shí)和應(yīng)用程序包到瀏覽器時(shí)首先使用Server模式。一旦運(yùn)行時(shí)下載完成,自動(dòng)模式將切換開始使用WebAssembly渲染模式。

默認(rèn)情況下,Blazor Web App模板將在單個(gè)項(xiàng)目中啟用靜態(tài)和交互式服務(wù)器呈現(xiàn)。如果還啟用了WebAssembly渲染模式,則項(xiàng)目將包括一個(gè)額外的客戶端項(xiàng)目,用于您的基于WebAssembly的組件。來自客戶端項(xiàng)目的構(gòu)建輸出將下載到瀏覽器并在客戶端上執(zhí)行。使用WebAssembly或Auto渲染模式的任何組件必須從客戶端項(xiàng)目構(gòu)建。

Blazor Web App模板具有清理的文件結(jié)構(gòu):

  • 新的Components文件夾包含服務(wù)器項(xiàng)目中的所有組件。
  • Components/Layout文件夾包含應(yīng)用程序布局。
  • Components/Pages文件夾包含可路由的頁面組件。

組件名稱和內(nèi)容已進(jìn)行了清理,以匹配其功能:

  • Index.razor -> Home.razor
  • Counter.razor未更改
  • FetchData.razor -> Weather.razor

組件現(xiàn)在更加簡潔和簡單:App

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <base href="/" />
    <link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
    <link rel="stylesheet" href="app.css" />
    <link rel="stylesheet" href="BlazorApp51.styles.css" />
    <link rel="icon" type="image/png" href="favicon.png" />
    <HeadOutlet />
</head>

<body>
    <Routes />
    
</body>

</html>

我們對(duì)模板中的組件進(jìn)行了幾處更改:App

  • 我們移除了Bootstrap圖標(biāo),并切換為自定義SVG圖標(biāo)。
  • 我們將Blazor路由器移動(dòng)到了新的組件,并移除了其參數(shù),因?yàn)樗鼜奈幢皇褂眠^。Routes
  • 我們將默認(rèn)的Blazor錯(cuò)誤UI移到了組件中。MainLayout
  • 我們移除了Blazor腳本標(biāo)簽上的屬性,因?yàn)椴辉傩枰?code>supress-error
  • 新組件模板簡化了使整個(gè)應(yīng)用程序具有交互性的過程:只需將所需的渲染模式應(yīng)用于RoutesHeadOutlet組件。根組件需要是靜態(tài)的,因?yàn)樗尸F(xiàn)Blazor腳本,腳本標(biāo)記不能動(dòng)態(tài)刪除。您還不能直接從組件使Blazor路由器具有交互性,因?yàn)樗哂袖秩酒螀?shù),這些參數(shù)不可序列化。從靜態(tài)組件渲染的交互組件必須具有可序列化的參數(shù)。Routes
  • Routes
  • HeadOutlet
  • App
  • App
  • Routes

從額外的程序集中發(fā)現(xiàn)靜態(tài)服務(wù)器呈現(xiàn)的組件

您現(xiàn)在可以使用方法AddAdditionalAssemblies()配置用于發(fā)現(xiàn)靜態(tài)服務(wù)器呈現(xiàn)的Blazor組件的額外程序集:

app.MapRazorComponents<App>()
    .AddAdditionalAssemblies(typeof(Counter).Assembly);

路由改進(jìn)

我們已將Blazor路由實(shí)現(xiàn)與ASP.NET Core路由統(tǒng)一。此統(tǒng)一為Blazor路由器添加了以下功能的支持:

  • 復(fù)雜段("/a{b}cldzjh9fvzrv3"
  • 默認(rèn)值("/{tier=free}"
  • 所有內(nèi)置的路由約束

觸發(fā)頁面刷新

您現(xiàn)在可以調(diào)用NavigationManager.Refresh()以觸發(fā)頁面刷新。這將使用增強(qiáng)的頁面導(dǎo)航(

如果可能)來刷新頁面。否則,它將觸發(fā)完整的頁面刷新。要強(qiáng)制執(zhí)行完整的頁面刷新,請(qǐng)使用NavigationManager.Refresh(forceReload: true)

將任意屬性傳遞給QuickGrid

組件現(xiàn)在將任何額外的屬性傳遞給呈現(xiàn)的元素:QuickGrid

<QuickGrid Items="@FilteredPeople" custom-attribute="somevalue" class="custom-class-attribute">

感謝@ElderJames的貢獻(xiàn)!

確定表單字段是否具有相關(guān)的驗(yàn)證消息

新API可以用于確定字段是否有效,而無需獲取驗(yàn)證消息:EditContext.IsValid(FieldIdentifier)

感謝@ElderJames的貢獻(xiàn)!

配置.NET WebAssembly運(yùn)行時(shí)

您現(xiàn)在可以在運(yùn)行時(shí)配置WebAssembly上運(yùn)行時(shí)的各種.NET運(yùn)行時(shí)選項(xiàng),使用函數(shù)configureRuntime

<script>
  Blazor.start({
    configureRuntime: dotnet => {
        dotnet.withEnvironmentVariable("CONFIGURE_RUNTIME", "true");
    }
  });
</script>

現(xiàn)在可以從.Blazor.runtime訪問.NET運(yùn)行時(shí)實(shí)例。

有關(guān)在WebAssembly上運(yùn)行時(shí)的.NET運(yùn)行時(shí)選項(xiàng)和API的更多詳細(xì)信息,請(qǐng)參閱https://github.com/dotnet/runtime/blob/main/src/mono/wasm/runtime/dotnet.d.ts。

在預(yù)先編譯(AOT)編譯后修剪.NET IL

新的MSBuild選項(xiàng)可以在執(zhí)行預(yù)先編譯(AOT)編譯到WebAssembly后刪除編譯方法的.NET IL。此新的修剪模式根據(jù)我們的測試將_framework文件夾的大小減小了1.7%到4.2%。

<PropertyGroup>
  <RunAOTCompilation>true</RunAOTCompilation>
  <WasmStripILAfterAOT>true</WasmStripILAfterAOT>
</PropertyGroup>

此設(shè)置將修剪大多數(shù)編譯方法的IL代碼,包括庫中的方法和應(yīng)用程序中的方法。并非所有編譯方法都可以修剪,因?yàn)橐恍┓椒ㄈ匀恍枰?NET解釋器在運(yùn)行時(shí)使用。

如果在使用此新的修剪選項(xiàng)時(shí)遇到任何問題,用于AOT編譯的WebAssembly應(yīng)用程序,請(qǐng)通過在dotnet/runtime repo的GitHub上提出問題來告訴我們。

Identity

移除username屬性

為了簡化映射的身份API并更緊密地與現(xiàn)有的Identity UI對(duì)齊,已移除了username屬性。現(xiàn)在,用戶名和電子郵件是相同的,并且字段將在將來的命名中使用(或在注冊(cè)用戶時(shí))。username -> Email -> NewEmail

單頁應(yīng)用程序(SPA)

標(biāo)準(zhǔn).NET模板選項(xiàng)

Visual Studio模板用于使用ASP.NET Core與流行的前端JavaScript框架(如Angular、React和Vue)現(xiàn)在支持標(biāo)準(zhǔn)的.NET模板選項(xiàng),包括指定目標(biāo).NET框架版本、啟用OpenAPI支持等等。

.NET 8 Release Candidate 1 (RC1)現(xiàn)已發(fā)布,包括許多針對(duì)ASP.NET Core的重要改進(jìn)!

度量

在.NET 8 RC1中,我們已將新的度量重命名為遵循OpenTelemetry Semantic Conventions。這個(gè)更改基于用戶和庫作者關(guān)于如何命名其自己的計(jì)數(shù)器的反饋。OpenTelemetry是一種現(xiàn)有的已建立標(biāo)準(zhǔn),.NET的內(nèi)置度量和更廣泛的.NET生態(tài)系統(tǒng)遵循該標(biāo)準(zhǔn)是有益的。

  • ASP.NET Core的主要HTTP度量現(xiàn)在與OpenTelemetry的http.server.request.durationhttp.server.active_requests計(jì)數(shù)器完全匹配。
  • ASP.NET Core中的其他計(jì)數(shù)器使用語義約定的命名標(biāo)準(zhǔn)。例如,速率限制中間件有度量標(biāo)識(shí)HTTP請(qǐng)求等待租約和租約持續(xù)時(shí)間的數(shù)量。
    • 將租約隊(duì)列長度計(jì)數(shù)器從`rate-limiting

.enqueued-requests重命名為rate_limiting.queued_requests`。

  • 將HTTP請(qǐng)求數(shù)計(jì)數(shù)器從rate-limiting.current-requests重命名為rate_limiting.concurrent_requests
  • 將HTTP限制失敗的請(qǐng)求數(shù)計(jì)數(shù)器從rate-limiting.denied-requests重命名為rate_limiting.denied_requests
  • ASP.NET Core的DNS解析度量現(xiàn)在與OpenTelemetry的dns.resolver.query_durationdns.resolver.query_count計(jì)數(shù)器完全匹配。
  • 度量名稱更改可能會(huì)影響與度量名稱一起記錄的數(shù)據(jù)。

我們已將命名的度量計(jì)數(shù)器添加到ASP.NET Core度量文檔中。

已知問題

ASP.NET Redis基于輸出緩存

在ASP.NET中,基于Redis的輸出緩存存在已知的回歸問題(在.NET 8中首次引入,在Preview 6中宣布);此功能在RC1中將無法工作。已經(jīng)找到了原因,并在RC2中解決了此問題。

Blazor Web App模板創(chuàng)建多個(gè)計(jì)數(shù)器組件

Blazor Web App在啟用交互式WebAssembly組件時(shí)采用了不必要的解決方案。模板生成了兩個(gè)組件:1. 在客戶端項(xiàng)目中帶有渲染模式屬性的組件,2. 服務(wù)器項(xiàng)目中使用客戶端組件的頁面。這個(gè)解決方案是不必要的。可以在將其指令復(fù)制到客戶端項(xiàng)目后,將服務(wù)器項(xiàng)目中的組件刪除。然后在Program.cs中調(diào)用Counter以便可以發(fā)現(xiàn)該組件。`

提供反饋

我們希望您喜歡在.NET 8中的ASP.NET Core的這個(gè)預(yù)覽版本。通過在GitHub上提交問題來告訴我們您對(duì)這些新改進(jìn)的看法。

感謝您嘗試ASP.NET Core!

原文: http://www.jfrwli.cn/uploads/allimg/2qx0yovoz1p

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线色网站 | 色xx综合网 | 日本久久免费 | 91嫩草精品 | 精品国产成人 | 97色伦97色伦国产欧美空 | 国产精品毛片 | 亚洲第十页 | 91免费在线播放 | 久久国产午夜 | 午夜在线 | 国产午夜一区二区三区 | 中文字幕乱码亚洲精品一区 | 久久伊人久久 | 成人黄色短视频在线观看 | zzz444成人天堂7777 | 视频一区中文字幕 | 免费av在线播放 | 国产高清无密码一区二区三区 | 成人免费黄色片 | 四房婷婷 | 婷婷精品 | 国产亚洲欧美一区二区 | 国产一级一级毛片女人精品 | 男人的天堂视频网站 | 精品免费国产一区二区三区四区 | 黄视频入口 | 日韩久草| 日本女人高潮视频 | 人人爱人人爽 | 亚洲国产高清在线 | 人人草天天草 | 亚洲第一视频 | 福利片在线 | 午夜私人影院 | 亚洲一区在线观看视频 | 日韩精品一区二区在线观看 | 男人的天堂久久 | 国产精品三级久久久久久电影 | 精品女同一区二区三区在线绯色 | 欧美在线观看一区 |