最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

.NET 6 Preview 4 已發(fā)布,ASP.NET Core 更新內(nèi)容

2021-05-31 15:01 作者:朝夕教育  | 我要投稿

.NET 6 Preview 4 已發(fā)布,ASP.NET Core 更新內(nèi)容

原文鏈接:https://mp.weixin.qq.com/s/qcs6u5lIc9XZJ1x0VmRYEw

作者:liamwang?精致碼農(nóng)


.NET 6 預(yù)覽版 4 現(xiàn)已發(fā)布,其中包括對(duì) ASP.NET Core 的許多新改進(jìn)。

下面是此次預(yù)覽版中 ASP.NET Core 的更新內(nèi)容:

  • 引入最小 API

  • 異步流

  • HTTP 日志中間件

  • 新項(xiàng)目中使用 Kestrel 作為默認(rèn)啟動(dòng)

  • IConnectionSocketFeature

  • 改進(jìn)單頁(yè)應(yīng)用程序(SPA)模板

  • 更新了 .NET 熱重載

  • Razor 組件中的泛型約束

  • Blazor 錯(cuò)誤邊界(error boundaries)

  • Blazor WebAssembly 的 AOT 編譯

  • .NET MAUI Blazor 應(yīng)用程序

  • 其他性能改進(jìn)

1開(kāi)始使用

要開(kāi)始使用 .NET 6 Preview 4 中的 ASP.NET Core,請(qǐng)安裝 .NET 6 SDK[1]。

如果你在 Windows 上使用 Visual Studio,我們建議安裝 Visual Studio 2019 16.11 的最新預(yù)覽版。如果你在 macOS 上,我們建議安裝 Visual Studio 2019 for Mac 8.10 的最新預(yù)覽版。

2升級(jí)一個(gè)現(xiàn)有的項(xiàng)目

要將一個(gè)現(xiàn)有的 ASP.NET Core 應(yīng)用程序從 .NET 6 Preview 3 升級(jí)到.NET 6 Preview 4。

  • 將所有?Microsoft.AspNetCore.*?引用包更新為?6.0.0-preview.4.*

  • 更新所有?Microsoft.Extensions.*?引用包更新為?6.0.0-preview.4.*。

請(qǐng)參閱 .NET 6 中 ASP.NET Core 的完整中斷變化列表[2]。

3引入最小 API

在 .NET 6 中,我們?yōu)?Web 應(yīng)用的托管和路由引入了最小 API。這為使用 .NET 構(gòu)建第一個(gè) Web 應(yīng)用程序以及想要構(gòu)建小型微服務(wù)和 HTTP API 的開(kāi)發(fā)者打開(kāi)了大門。這些精簡(jiǎn)的 API 提供了 ASP.NET MVC 的優(yōu)點(diǎn)。

要嘗試創(chuàng)建一個(gè)最小 API,請(qǐng)創(chuàng)建一個(gè)新的 ASP.NET Core 空 Web 應(yīng)用。

dotnet new web -o MinApi

只需一個(gè)文件和幾行代碼,你現(xiàn)在就有一個(gè)功能齊全的 HTTP API。

4新的路由 API

新的路由 API 允許用戶路由到任何類型的方法。這些方法可以使用類似控制器的參數(shù)綁定、JSON 格式化和 Action 結(jié)果。

之前(使用現(xiàn)有的 Map APIs):

app.MapGet("/", async httpContext =>
{
? ?await httpContext.Response.WriteAsync("Hello World!");
});

現(xiàn)在(使用新的 Map 重載):

app.MapGet("/", (Func<string>)(() => "Hello World!"));

5C# 10 的改進(jìn)

這些 API 已經(jīng)利用了較新的 C# 特性,如頂層語(yǔ)句。在今年晚些時(shí)候與 .NET 6 一起發(fā)布的 C# 10 中,體驗(yàn)將變得更好。例如,不再需要明確地把類型轉(zhuǎn)換成?(Func<string>)。下面的圖片展示了 C# 10 支持的特性:

開(kāi)發(fā)者從使用類和方法到使用 lambda,擁有和使用 MVC 控制器及屬性操作一樣的功能。

6新的托管(hosting) API

新的空 Web 模板使用的是 .NET 6 Preview 4 中引入的新的托管模式。

var app = WebApplication.Create(args);

app.MapGet("/", (Func<string>)(() => "Hello World!"));

app.Run();

你并不局限于只使用新的路由 API。下面是一個(gè) Web 應(yīng)用程序的例子,它被更新為使用新的托管模式,配置服務(wù)和添加中間件。

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddSwaggerGen(c =>
{
? ?c.SwaggerDoc("v1", new OpenApiInfo { Title = "Api", Version = "v1" });
});

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
? ?app.UseDeveloperExceptionPage();
? ?app.UseSwagger();
? ?app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Api v1"));
}

app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();

app.Run();

新的托管 API 減少了配置和啟動(dòng) ASP.NET 應(yīng)用程序所需的模板數(shù)量。

7性能

這些新的路由 API 的開(kāi)銷比基于控制器的 API 少得多。使用新的路由 API,ASP.NET Core 能夠在 TechEmpower[3]?JSON 基準(zhǔn)測(cè)試中達(dá)到約 80 萬(wàn) RPS,而 MVC 則達(dá)到約 50 萬(wàn) RPS。

異步流

ASP.NET Core 現(xiàn)在支持從控制器 Action 一直到響應(yīng)的 JSON 格式化器的異步流。從 Action 中返回?IAsyncEnumerable,在發(fā)送之前不再在內(nèi)存中緩沖響應(yīng)內(nèi)容。這有助于在返回可異步枚舉的大型數(shù)據(jù)集時(shí)減少內(nèi)存使用。

請(qǐng)注意,Entity Framework Core 提供了用于查詢數(shù)據(jù)庫(kù)的?IAsyncEnumerable?的實(shí)現(xiàn)。在 .NET 6 中,ASP.NET Core 對(duì)?IAsyncEnumerable?的支持有所改進(jìn),可以使 EF Core 與 ASP.NET Core 的使用更加高效。例如,下面的代碼在發(fā)送響應(yīng)前將不再把?Products?數(shù)據(jù)緩沖到內(nèi)存中:

public IActionResult GetProducts()
{
? ?return Ok(dbContext.Products);
}

然而,如果你已經(jīng)將 EF Core 設(shè)置為使用懶加載,這種新的行為可能會(huì)導(dǎo)致在數(shù)據(jù)被枚舉時(shí)由于并發(fā)的查詢執(zhí)行而產(chǎn)生錯(cuò)誤。你可以通過(guò)自己緩沖數(shù)據(jù)來(lái)恢復(fù)到以前的行為:

public?async Task<IActionResult> Products()
{
? ?return Ok(await dbContext.Products.ToListAsync());
}

有關(guān)這一行為變化的更多細(xì)節(jié),見(jiàn)相關(guān)公告[4]。

8HTTP 日志中間件

HttpLogging?是一個(gè)新的內(nèi)置中間件,可以記錄 HTTP 請(qǐng)求和 HTTP 響應(yīng)的信息,包括頭信息和整個(gè) Body。

public?void?Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
? ?app.UseHttpLogging();
}

HttpLogging?中間件提供了以下日志:

  • HTTP 請(qǐng)求信息

  • 普通屬性

  • 頭信息

  • 請(qǐng)求 Body

  • HTTP 響應(yīng)信息

為了配置 HTTP 日志中間件,你可以在對(duì)?ConfigureServices()?的調(diào)用中指定?HttpLoggingOptions

public?void?ConfigureServices(IServiceCollection services)
{
? ?services.AddHttpLogging(logging =>
? ?{
? ? ? ?// Customize HTTP logging here.
? ? ? ?logging.LoggingFields = HttpLoggingFields.All;
? ? ? ?logging.RequestHeaders.Add("My-Request-Header");
? ? ? ?logging.ResponseHeaders.Add("My-Response-Header");
? ? ? ?logging.MediaTypeOptions.AddText("application/javascript");
? ? ? ?logging.RequestBodyLogLimit = 4096;
? ? ? ?logging.ResponseBodyLogLimit = 4096;
? ?});
}

這會(huì)在日志中產(chǎn)生新的帶有?Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware?類別的 HTTP 請(qǐng)求信息。

關(guān)于如何使用 HTTP 日志的更多信息,請(qǐng)看 HTTP 日志文檔[5]。

9使用 Kestrel 作為默認(rèn)啟動(dòng)


對(duì)于在 .NET 6 Preview 4 中創(chuàng)建的所有新項(xiàng)目,我們已將默認(rèn)的啟動(dòng)配置文件從 IIS Express 改為 Kestrel。在開(kāi)發(fā)應(yīng)用程序時(shí),啟動(dòng) Kestrel 的速度明顯加快,并帶來(lái)了更靈敏的體驗(yàn)。


IIS Express (ms)Kestrel (ms)% changeDebugging4359277236%No debugging199972764%

IIS Express 仍然可以作為啟動(dòng)項(xiàng),用于 Windows 認(rèn)證或端口共享等情況。

10IConnectionSocketFeature

IConnectionSocketFeature?功能使你能夠訪問(wèn)與當(dāng)前請(qǐng)求相關(guān)的底層接受 socket。它可以通過(guò)HttpContext?上的?FeatureCollection?訪問(wèn)。

例如,下面的應(yīng)用程序在接受 socket 上設(shè)置?LingerState?屬性:

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(serverOptions =>
{
? ?serverOptions.ConfigureEndpointDefaults(listenOptions => listenOptions.Use((connection, next) =>
? ?{
? ? ? ?var socketFeature = connection.Features.Get<IConnectionSocketFeature>();
? ? ? ?socketFeature.Socket.LingerState = new LingerOption(true, seconds: 10);
? ? ? ?return next();
? ?}));
});
var app = builder.Build();
app.MapGet("/", (Func<string>)(() => "Hello world"));
await app.RunAsync();

11改進(jìn)單頁(yè)應(yīng)用(SPA)模板

略...(譯注:文字太長(zhǎng),懶得翻譯了,主要 VS 中的 SPA 模板我從來(lái)不用)

12.NET 熱重載

最新的 Visual Studio 預(yù)覽版對(duì).NET Hot 熱重載有一些初步的支持。你可能已經(jīng)注意到在調(diào)試你的應(yīng)用程序時(shí),新的?Apply Code Changes?按鈕和調(diào)試選項(xiàng)。

Apply Code Changes?按鈕將用你所作的代碼修改來(lái)更新正在運(yùn)行的應(yīng)用程序,甚至不需要保存。下面是一個(gè)更新?Counter?組件的例子,它的增量從 1 改為 2。請(qǐng)注意,一旦修改被應(yīng)用,當(dāng)前的計(jì)數(shù)不會(huì)丟失:


Visual Studio 中的 .NET 熱重載支持仍在進(jìn)行中,因此在 ASP.NET Core 應(yīng)用程序中使用它時(shí)有一些限制:

  • 你必須在連接調(diào)試器的情況下運(yùn)行以應(yīng)用更改。

  • 代碼修改只能應(yīng)用于 C# 文件--還不支持對(duì) Razor 文件(.razor,?.cshtml)的修改。

  • 已應(yīng)用的更改還不能強(qiáng)制更新用戶界面,因此需要手動(dòng)觸發(fā)用戶界面更新。

  • 目前不支持 Blazor WebAssembly 應(yīng)用程序。

所有這些限制都在解決中,并將在未來(lái)的 Visual Studio 更新中得到解決。敬請(qǐng)關(guān)注!

如果你通過(guò)?dotnet watch?使用 .NET 熱重載,修改將被應(yīng)用于 ASP.NET Core 托管的 Blazor WebAssembly 應(yīng)用程序。如果你刷新瀏覽器,修改也會(huì)重新應(yīng)用到你的 Blazor WebAssembly 應(yīng)用程序。

要了解更多關(guān)于.NET 熱重載的信息,你可以在我們的博文中獲得所有細(xì)節(jié):介紹.NET 熱重載[6]。

13Razor 中的泛型約束

在 Razor 中使用?@typeparam?指令定義通用類型參數(shù)時(shí),你現(xiàn)在可以使用標(biāo)準(zhǔn)的 C# 語(yǔ)法指定泛型約束。

@typeparam TEntity where TEntity : IEntity

14Blazor 錯(cuò)誤邊界

Blazor 錯(cuò)誤邊界提供了一種方便的方式來(lái)處理組件層次結(jié)構(gòu)中的異常情況。為了定義一個(gè)錯(cuò)誤邊界,使用新的 ErrorBoundary 組件來(lái)包裹一些現(xiàn)有的內(nèi)容。只要一切運(yùn)行順利,ErrorBoundary 組件將渲染其子內(nèi)容。如果一個(gè)未處理的異常被拋出,ErrorBoundary 會(huì)渲染一些錯(cuò)誤 UI。

例如,我們可以像這樣在默認(rèn) Blazor 應(yīng)用程序的布局中添加一個(gè)錯(cuò)誤邊界:

<div?class="main">
?<div?class="top-row px-4">
? ?<a?href="https://docs.microsoft.com/aspnet/"?target="_blank"?rel="noopener">
? ? ?About
? ?</a>
?</div>

?<div?class="content px-4">
? ?<ErrorBoundary> @Body </ErrorBoundary>
?</div>
</div>

該應(yīng)用程序繼續(xù)像以前一樣運(yùn)作,但現(xiàn)在我們的錯(cuò)誤邊界將處理未處理的異常。例如,我們可以更新?Counter?組件,在計(jì)數(shù)過(guò)大時(shí)拋出一個(gè)異常。

private?void?IncrementCount()
{
? ?currentCount++;
? ?if (currentCount > 10)
? ?{
? ? ? ?throw?new InvalidOperationException("Current count is too big!");
? ?}
}

現(xiàn)在,如果我們過(guò)多地點(diǎn)擊計(jì)數(shù)器,就會(huì)拋出一個(gè)未處理的異常,這將由我們的錯(cuò)誤邊界通過(guò)渲染一些默認(rèn)的錯(cuò)誤界面來(lái)處理。

默認(rèn)情況下,ErrorBoundary?組件為其錯(cuò)誤內(nèi)容渲染了一個(gè)帶有?blazor-error-boundary?CSS 類的空?div。這個(gè)默認(rèn)界面的顏色、文本和圖標(biāo)都是在應(yīng)用程序中使用 CSS 定義的,所以你可以自由地定制它們。你也可以通過(guò)設(shè)置?ErrorContent?屬性來(lái)改變默認(rèn)的錯(cuò)誤內(nèi)容。

<ErrorBoundary>
?<ChildContent> @Body </ChildContent>
?<ErrorContent>
? ?<p?class="my-error">Nothing to see here right now. Sorry!</p>
?</ErrorContent>
</ErrorBoundary>

因?yàn)槲覀冊(cè)诓季种卸x了錯(cuò)誤邊界,一旦拋出一個(gè)異常,不管我們導(dǎo)航到哪個(gè)頁(yè)面我們都能看到錯(cuò)誤內(nèi)容。一般來(lái)說(shuō),錯(cuò)誤邊界的范圍最好比這更窄,但我們可以選擇在隨后的頁(yè)面導(dǎo)航中通過(guò)調(diào)用錯(cuò)誤邊界的恢復(fù)方法將錯(cuò)誤邊界重置為非錯(cuò)誤狀態(tài)。

...
<ErrorBoundary @ref="errorBoundary">
? ?@Body
</ErrorBoundary>
...

@code {
? ?ErrorBoundary errorBoundary;

? ?protected?override?void?OnParametersSet()
? ?{
? ? ? ?// On each page navigation, reset any error state
? ? ? ?errorBoundary?.Recover();
? ?}
}

15Blazor WebAssembly 的 AOT 編譯

Blazor WebAssembly 現(xiàn)在支持 AOT(ahead-of-time) 編譯,你可以將你的 .NET 代碼直接編譯為 WebAssembly,以顯著提高運(yùn)行時(shí)性能。現(xiàn)在 Blazor WebAssemby 應(yīng)用程序使用 WebAssembly 中實(shí)現(xiàn)的 .NET IL 解釋器運(yùn)行。由于 .NET 代碼是被解釋的,通常這意味著在 WebAssembly 上運(yùn)行的 .NET 代碼比在正常的.NET 運(yùn)行時(shí)要慢得多。.NET WebAssembly AOT 編譯通過(guò)將你的 .NET 代碼直接編譯成 WebAssembly 來(lái)解決這個(gè)性能問(wèn)題。

AOT 編譯你的 Blazor WebAssembly 應(yīng)用程序,對(duì)于 CPU 密集型任務(wù)來(lái)說(shuō),其性能的提高是相當(dāng)顯著的。例如,下面的片段顯示了使用相同的 Blazor WebAssembly 應(yīng)用程序進(jìn)行一些基本圖像編輯的比較,首先使用解釋器,然后是 AOT 編譯。AOT 編譯后的版本運(yùn)行速度快了五倍以上。

你可以在 GitHub 上查看這個(gè) PictureFixer[7]?的代碼。

.NET WebAssembly AOT 編譯需要一個(gè)額外的構(gòu)建工具,必須作為一個(gè)可選的 .NET SDK 工作負(fù)載來(lái)安裝才能使用。要安裝 .NET WebAssembly 構(gòu)建工具,請(qǐng)運(yùn)行以下命令:

dotnet workload install microsoft-net-sdk-blazorwebassembly-aot

為了在你的 Blazor WebAssembly 項(xiàng)目中啟用 WebAssembly AOT 編譯,在你的項(xiàng)目文件中添加以下屬性:

<RunAOTCompilation>true</RunAOTCompilation>

然后 AOT 將你的應(yīng)用程序編譯成 WebAssembly,發(fā)布應(yīng)用程序。使用 Release 配置發(fā)布將確保 .NET IL 鏈接也被運(yùn)行,以減少發(fā)布應(yīng)用程序的大小。

dotnet publish -c Release

WebAssembly AOT 編譯只在項(xiàng)目發(fā)布時(shí)進(jìn)行。當(dāng)項(xiàng)目在開(kāi)發(fā)過(guò)程中運(yùn)行時(shí),它并不使用。這是因?yàn)?WebAssembly AOT 編譯可能需要一段時(shí)間。

AOT 編譯的 Blazor WebAssembly 應(yīng)用程序的大小通常比作為 .NET IL 的應(yīng)用程序要大。在我們的測(cè)試中,大多數(shù) AOT 編譯的 Blazor WebAssembly 應(yīng)用程序大約大 2 倍,不過(guò)這取決于具體的應(yīng)用程序。這意味著,使用 WebAssembly 的 AOT 編譯,可以用加載時(shí)間的性能換取運(yùn)行時(shí)間的性能。這種權(quán)衡是否值得,取決于你的應(yīng)用程序。

16.NET MAUI Blazor 應(yīng)用

Blazor 能夠用 .NET 構(gòu)建客戶端 Web UI,但有時(shí)你需要的東西比 Web 平臺(tái)提供的更多。有時(shí)你需要完全訪問(wèn)設(shè)備的本地功能?,F(xiàn)在,你可以在 .NET MAUI 應(yīng)用程序中托管 Blazor 組件,以使用 Web UI 構(gòu)建跨平臺(tái)的本地應(yīng)用程序。這些組件在.NET 進(jìn)程中原生運(yùn)行,并使用本地互操作通道向嵌入式 Web 視圖控件渲染 Web UI。這種混合方法為你提供了本地和網(wǎng)絡(luò)的優(yōu)點(diǎn)。你的組件可以通過(guò) .NET 平臺(tái)訪問(wèn)本地功能,并呈現(xiàn)標(biāo)準(zhǔn)的 Web UI。.NET MAUI Blazor 應(yīng)用程序可以運(yùn)行在任何 .NET MAUI 可以運(yùn)行的地方(Windows、Mac、iOS 和 Android),盡管我們對(duì) .NET 6 的主要關(guān)注是在桌面場(chǎng)景。

要?jiǎng)?chuàng)建一個(gè) .NET MAUI Blazor 應(yīng)用程序,你首先需要在開(kāi)發(fā)機(jī)器上配置 .NET MAUI。最簡(jiǎn)單的方法是使用?maui-check?工具。要安裝?maui-check 工具,請(qǐng)運(yùn)行:

dotnet tool install -g Redth.Net.Maui.Check

然后運(yùn)行?maui-check?來(lái)獲取 .NET MAUI 工具和依賴。有關(guān)開(kāi)始使用 .NET MAUI 的其他信息,請(qǐng)參考 GitHub 上的 wiki 文檔。

一旦一切安裝完畢,使用新的項(xiàng)目模板創(chuàng)建一個(gè) .NET MAUI Blazor 應(yīng)用程序:

dotnet new maui-blazor -o MauiBlazorApp

你也可以使用 Visual Studio 創(chuàng)建一個(gè) .NET MAUI Blazor 應(yīng)用程序:

.NET MAUI Blazor 應(yīng)用程序是 .NET MAUI 應(yīng)用程序,它使用?BlazorWebView?控件將 Blazor 組件渲染到一個(gè)嵌入式 Web 視圖中。應(yīng)用程序的代碼和邏輯位于?MauiApp?項(xiàng)目中,該項(xiàng)目被設(shè)置為多目標(biāo) Android、iOS 和 Mac Catalyst。MauiApp.WinUI3?項(xiàng)目用于為 Windows 構(gòu)建,而?MauiApp.WinUI3(Package)?項(xiàng)目則用于為 Windows 生成 MSIX 包。最終,我們希望將對(duì) Windows 的支持合并到主應(yīng)用程序項(xiàng)目中,但現(xiàn)在這些獨(dú)立的項(xiàng)目是必要的。

在?MauiApp?項(xiàng)目的?MainPage.xaml?中設(shè)置了?BlazorWebView?控件:

<b:BlazorWebView?HostPage="wwwroot/index.html">
? ?<b:BlazorWebView.RootComponents>
? ? ? ?<b:RootComponent?Selector="#app"?ComponentType="{x:Type local:Main}" />
? ?</b:BlazorWebView.RootComponents>
</b:BlazorWebView>

該應(yīng)用程序的根 Blazor 組件在?Main.razor?中。其余的 Blazor 組件都在 Pages 和 Shared 目錄下。請(qǐng)注意,這些組件與默認(rèn) Blazor 模板中使用的組件相同。你可以在你的應(yīng)用程序中使用現(xiàn)有的 Blazor 組件,而不用改變代碼,或者引用包含這些組件的現(xiàn)有類庫(kù)或包。應(yīng)用程序的靜態(tài)資源在 wwwroot 文件夾中。

17Windows

要在 Windows 下運(yùn)行該應(yīng)用程序,你需要使用 Visual Studio 構(gòu)建和運(yùn)行。

選擇?MauiBlazorApp.WinUI3(Package)?項(xiàng)目作為你的啟動(dòng)項(xiàng)目:

同時(shí)為目標(biāo)平臺(tái)選擇 x64:

然后你可以按?F5?或?Ctrl+F5,使 WinUI 應(yīng)用作為本地 Windows 桌面應(yīng)用運(yùn)行。

18Android

要在 Android 上運(yùn)行該應(yīng)用程序,首先使用 Android SDK 或 Android 設(shè)備管理器啟動(dòng) Android 模擬器。

然后使用以下命令從 CLI 運(yùn)行該應(yīng)用程序:

dotnet build MauiBlazorApp -t:Run -f net6.0-android

要從 Visual Studio 在 Android 上運(yùn)行,選擇?MauiBlazorApp?項(xiàng)目作為啟動(dòng)項(xiàng)目:

然后在運(yùn)行按鈕下拉菜單中選擇?net6.0-android?作為目標(biāo)框架:

然后你可以點(diǎn)擊?F5?或?Ctrl+F5,使用安卓模擬器運(yùn)行該應(yīng)用程序:

19iOS 和 Mac Catalyst

譯注:Mac Catalyst 是一個(gè)幫助開(kāi)發(fā)者將 iOS 應(yīng)用移植到 macOS 上的服務(wù)。

要運(yùn)行 iOS 或 Mac Catalyst 的應(yīng)用程序,你需要使用一個(gè)運(yùn)行 Big Sur 的 macOS 開(kāi)發(fā)環(huán)境。你目前不能從 Windows 開(kāi)發(fā)環(huán)境中運(yùn)行 iOS 或 Mac Catalyst 的應(yīng)用程序,盡管我們確實(shí)期望 .NET MAUI 將支持使用連接的 Mac 構(gòu)建代理或使用熱重啟在連接的設(shè)備上運(yùn)行 iOS 應(yīng)用程序。

要運(yùn)行 iOS 和 Mac Catalyst 的應(yīng)用程序,請(qǐng)使用以下命令:

dotnet build MauiBlazorApp -t:Run -f net6.0-ios
dotnet build MauiBlazorApp -t:Run -f net6.0-maccatalyst

在這個(gè)版本中,.NET MAUI Blazor 應(yīng)用程序有一些已知的限制:

  • 組件范圍內(nèi)的 CSS 文件(.razor.css)還不能在主 .NET MAUI 項(xiàng)目中使用。這將在未來(lái)的更新中得到修復(fù)。

了解更多關(guān)于 .NET 6 Preview 4 中 .NET MAUI 的新內(nèi)容[8]。

20其他性能改進(jìn)

略...(注:這部分列舉了一些社區(qū)貢獻(xiàn)的提高性能的 PR,沒(méi)啥可翻譯的,感興趣的同學(xué)可以直接在英文原文點(diǎn)擊鏈接查看。)

21提供反饋

我們希望你喜歡此次 .NET 6 中的 ASP.NET Core 預(yù)覽版。我們很想聽(tīng)聽(tīng)你對(duì)這個(gè)版本的體驗(yàn)。在 GitHub[9]?上提交 Issue,讓我們知道你的想法。

感謝你嘗試使用 ASP.NET Core!

文中鏈接:

[1]. https://dotnet.microsoft.com/download/dotnet/6.0
[2]. https://docs.microsoft.com/dotnet/core/compatibility/6.0#aspnet-core
[3]. https://www.techempower.com/benchmarks/
[4]. https://github.com/aspnet/Announcements/issues/463
[5]. https://docs.microsoft.com/aspnet/core/fundamentals/http-logging
[6]. https://aka.ms/build2021-hotreload
[7]. https://aka.ms/picture-fixer
[8]. https://devblogs.microsoft.com/dotnet/announcing-net-maui-preview-4
[9]. https://github.com/dotnet/aspnetcore/issues


.NET 6 Preview 4 已發(fā)布,ASP.NET Core 更新內(nèi)容的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
潮安县| 新河县| 辽中县| 内丘县| 涿鹿县| 临海市| 林西县| 西充县| 水城县| 韩城市| 海丰县| 农安县| 望奎县| 精河县| 六枝特区| 邹平县| 鄂托克旗| 交城县| 靖宇县| 肥西县| 延长县| 彭泽县| 黄龙县| 德安县| 合水县| 张家界市| 佛学| 嘉黎县| 长岭县| 黄浦区| 丘北县| 大同市| 泾川县| 昌图县| 虞城县| 习水县| 寻甸| 克东县| 广水市| 望谟县| 西藏|