微信摇一摇回归    华为发布新一代鸿蒙智家解决方案

重磅!微軟.NET Core 3預(yù)覽版和開(kāi)源Windows桌面框架新功能搶先看

2019/1/2 21:14:35 來(lái)源:IT之家 作者:騎士 責(zé)編:騎士

IT之家1月2日消息 在微軟Connect(); 2018大會(huì)上,微軟宣布推出.NET Core 3預(yù)覽版,使用Visual Studio 2019預(yù)覽版、Visual Studio for Mac以及Visual Studio Code均可開(kāi)發(fā).NET Core 3應(yīng)用程序。.NET Core 3的面世,是一次重大更新。

微軟官方帶來(lái)了關(guān)于.NET Core 3的新功能搶鮮體驗(yàn)介紹:

.NET Framework 4.8

Microsoft Connect(); 2018上,微軟宣布將于明年發(fā)布.NET Framework 4.8。隨著支持4K和8K分辨率的顯示器的普及,微軟正在對(duì)WPF和Windows Forms升級(jí),以對(duì)高DPI提供更好的支持。目前,許多.NET Core應(yīng)用都是基于舊版本Internet Explorer和Windows Media Player的瀏覽器和媒體控件。微軟正在添加使用Windows 10中最新瀏覽器和媒體播放器的新控件,并支持最新標(biāo)準(zhǔn)。WPF和Windows Forms應(yīng)用程序?qū)⒖梢酝ㄟ^(guò)XAML Islands訪問(wèn)Windows UI XAML庫(kù)(WinUI),以獲得現(xiàn)代化的外觀和觸摸支持。Visual Studio 2019基于.NET Framework并應(yīng)用了許多此類(lèi)功能。

Windows桌面進(jìn)入.NET Core

.NET Core的前兩個(gè)版本主要側(cè)重于支持Web應(yīng)用、Web API、IoT和控制臺(tái)應(yīng)用程序。.NET Core 3增加了對(duì)使用WPF和Windows Forms框架以及現(xiàn)代控件構(gòu)建Windows桌面應(yīng)用程序的支持,并能夠?qū)崿F(xiàn)XAML Islands從Windows UI XAML庫(kù)(WinUI)構(gòu)建Fluent樣式。目前有許多桌面應(yīng)用使用Entity Framework進(jìn)行數(shù)據(jù)訪問(wèn),因此,微軟也在.NET Core 3中支持Entity Framework 6。這些框架能夠讓構(gòu)建Windows桌面應(yīng)用的開(kāi)發(fā)人員充分利用.NET Core中的新功能,例如并行(side by side)部署、自包含應(yīng)用、CoreFX的最新改進(jìn)等等。

開(kāi)源的WPF、Windows Forms和WinUI

大會(huì)上宣布WPF、Windows Forms和WinUI開(kāi)源,即三個(gè)主要的 Windows UX技術(shù)都將開(kāi)源。這是史無(wú)前例的創(chuàng)舉,整個(gè)社區(qū)都將公開(kāi)的看到WPF、Windows Forms和WinUI的進(jìn)展,第一批代碼將在GitHub上發(fā)布,未來(lái)幾個(gè)月還會(huì)發(fā)布更多代碼,這讓全球開(kāi)發(fā)者無(wú)比驚喜。

WPF和Windows Forms

WPF和Windows Forms現(xiàn)在可以與.NET Core一起使用。它們出現(xiàn)在一個(gè)名為“Windows桌面”的新組件中,該組件是Windows版本的SDK的一部分。

開(kāi)發(fā)者可以從命令行創(chuàng)建針對(duì)WPF和Windows Forms的新.NET Core項(xiàng)目。如:

dotnet new wpf
dotnet new winforms

創(chuàng)建項(xiàng)目后,就可以通過(guò)dotnet來(lái)運(yùn)行它們。下圖示出了新的WPF應(yīng)用看起來(lái)是什么樣子。

Windows Forms也非常相似,如下圖所示。

同時(shí)還可以在Visual Studio 2019預(yù)覽版1中打開(kāi)、啟動(dòng)和調(diào)試WPF和Windows Forms項(xiàng)目。

應(yīng)用現(xiàn)在默認(rèn)具有可執(zhí)行文件

.NET Core應(yīng)用現(xiàn)在使用可執(zhí)行文件進(jìn)行構(gòu)建。對(duì)于使用全局安裝的.NET Core版本的應(yīng)用而言,這是一項(xiàng)新功能。到目前為止,只有自包含的應(yīng)用具有可執(zhí)行文件。對(duì)于這些可執(zhí)行文件,開(kāi)發(fā)者可以期待它們與其他本地可執(zhí)行文件具有相同的特性,例如:

  • 您可以雙擊可執(zhí)行文件。

  • 您可以從命令提示符下啟動(dòng)應(yīng)用,而無(wú)需使用dotnet工具。在Windows上使用myconsole.exe,在Linux和macOS上使用./myconsole。正如以下示例所示。

在Windows中:

C:\Users\rlander\myconsole>dotnet build
C:\Users\rlander\myconsole>cd bin\Debug\netcoreapp3.0
C:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>dir /b
myconsole.deps.json
myconsole.dll
myconsole.exe
myconsole.pdb
myconsole.runtimeconfig.dev.json
myconsole.runtimeconfig.json
C:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>myconsole.exe
Hello World!
C:\Users\rlander\myconsole\bin\Debug\netcoreapp3.0>dotnet myconsole.dll
Hello World!

■ 在Linux中(在macOS中也相似):

root@cc08212a1da6:/myconsole# dotnet build
root@cc08212a1da6:/myconsole# cd bin/Debug/netcoreapp3.0/
root@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# ls
myconsole           myconsole.dll myconsole.runtimeconfig.dev.json
myconsole.deps.json myconsole.pdb myconsole.runtimeconfig.json
root@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# ./myconsole
Hello World!
root@cc08212a1da6:/myconsole/bin/Debug/netcoreapp3.0# dotnet myconsole.dll
Hello World!

提供的可執(zhí)行文件與您正在使用的SDK的環(huán)境相匹配。我們還沒(méi)有啟動(dòng)為其他運(yùn)行時(shí)環(huán)境指定-r參數(shù)的功能。

dotnet build現(xiàn)在可以復(fù)制依賴(lài)項(xiàng)

dotnet build現(xiàn)在可以在構(gòu)建操作期間把應(yīng)用的NuGet依賴(lài)項(xiàng)從NuGet緩存中復(fù)制到構(gòu)建輸出文件夾中。在此版本之前,這些依賴(lài)項(xiàng)僅作為dotnet publish(發(fā)布)的一部分進(jìn)行復(fù)制。此更改能夠通過(guò)xcopy命令將構(gòu)建輸出復(fù)制到不同的計(jì)算機(jī)中。

還有一些操作,例如linking(鏈接)和razor page publishing(刀片頁(yè)面發(fā)布),仍然需要發(fā)布。

可以在以下示例中看到新體驗(yàn):

C:\Users\rlander\myconsole>dotnet add package Newtonsoft.json
C:\Users\rlander\myconsole>dotnet build
C:\Users\rlander\myconsole>dir /b bin\Debug\netcoreapp3.0\*.dll
myconsole.dll
Newtonsoft.Json.dll

本地dotnet工具

.NET Core工具已進(jìn)行了更新,現(xiàn)在包含了一套本地工具場(chǎng)景。微軟在.NET Core 2.1中添加了全局工具??梢詮臋C(jī)器上的任何位置為當(dāng)前用戶(hù)提供全局工具。這項(xiàng)功能很好,但這不允許根據(jù)位置(通常是存儲(chǔ)庫(kù))來(lái)選擇版本,而且它們也沒(méi)有提供一種簡(jiǎn)單的方法來(lái)恢復(fù)開(kāi)發(fā)環(huán)境或構(gòu)建工具環(huán)境。磁盤(pán)上的特定位置現(xiàn)在可以與一組本地工具及其版本相關(guān)聯(lián)。本地工具依賴(lài)于名為 dotnet-tools.json 的工具清單文件。我們建議在存儲(chǔ)庫(kù)的根目錄中提供工具清單文件。

對(duì)于將全局工具添加到工具清單文件(通常是存儲(chǔ)庫(kù))中以及克隆包含全局工具的存儲(chǔ)庫(kù),本地工具提供了不同的體驗(yàn)。如果您克隆包含本地工具的repo(存儲(chǔ)庫(kù)),則只需運(yùn)行以下命令:

dotnet tool restore

恢復(fù)之后,可以使用以下命令調(diào)用本地工具:

dotnet tool run


調(diào)用本地工具時(shí),dotnet會(huì)在目錄結(jié)構(gòu)中搜索清單。當(dāng)找到工具清單文件后,就在其中搜索所請(qǐng)求的工具。如果找到了該工具,它將包含在NuGet全局包位置中查找該工具所需要的信息。

在預(yù)覽版1之后,微軟將提供一種機(jī)制來(lái)創(chuàng)建工具清單文件,可能會(huì)通過(guò)dotnet新模板來(lái)實(shí)現(xiàn)。對(duì)于預(yù)覽版1,您必須利用以下內(nèi)容來(lái)創(chuàng)建文件名dotnet-tools.json:

創(chuàng)建清單之后,可以使用以下命令向其中添加本地工具:

dotnet tool install


要想從工具清單文件中刪除工具,請(qǐng)運(yùn)行以下命令:

dotnet tool uninstall


如果將工具清單文件簽入到您的源代碼控制中,則克隆您的存儲(chǔ)庫(kù)(repo)的程序員可以如上所述訪問(wèn)正確的工具。

快速收件箱JSON閱讀器簡(jiǎn)介

System.Text.Json.Utf8JsonReader 是一款高性能、低分配、僅前向(forward-only)的讀取器,用于UTF-8編碼的JSON文本,從 ReadOnlySpan 中讀取。Utf8JsonReader 是一種基礎(chǔ)性的低級(jí)類(lèi)型,可用于構(gòu)建自定義解析器和反序列化器。使用新的Utf8JsonReader讀取JSON有效負(fù)載比使用Json.NET中的讀取器快2倍。

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:.NET Core 3,微軟
  • 日榜
  • 周榜
  • 月榜

軟媒旗下網(wǎng)站: IT之家 最會(huì)買(mǎi) - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買(mǎi) 要知