中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
.NET 使用 .NET Core 跨平臺(tái)運(yùn)行
來源:微軟MSDN
鏈接:https://msdn.microsoft.com/zh-cn/magazine/mt694084#rd
我們正在 Microsoft 中構(gòu)建全新的.NET 實(shí)現(xiàn)(稱之為 .NET Core),可讓您針對(duì)云優(yōu)化的工作負(fù)載編寫跨平臺(tái)代碼。很多人對(duì)這一開源開發(fā)很感興趣,但它的實(shí)際意義是什么呢? 本文應(yīng)可幫助闡明 .NET Core 的意義及其目標(biāo),其與 Microsoft .NET Framework 的關(guān)聯(lián),以及您可以用于 .NET Core 入門的命令行工具基礎(chǔ)。
什么是 .NET Core?
要理解 .NET Core 的含義,我們有必要先理解 .NET 本身。很多人在提到“.NET”時(shí)是指“.NET Framework”,但“.NET”的含義遠(yuǎn)不止如此。.NET 是具有多種實(shí)現(xiàn)(.NET Framework、Mono、Unity 和現(xiàn)在的 .NET Core)的 ECMA 標(biāo)準(zhǔn)。這意味著多種體驗(yàn)都在 .NET Framework 和 .NET Core 之間共享。但是,.NET Core 是全新的,有一些令人印象深刻的不同原則。
首先,.NET Core 是跨平臺(tái)的。它可在 Windows、OS X 和 Linux 的多個(gè)發(fā)布版本上運(yùn)行。它還支持不同的 CPU 體系結(jié)構(gòu)。我們正在添加更多的 Linux 發(fā)布版本和 CPU 體系結(jié)構(gòu)支持,最終目的是使 .NET Core 在盡可能多的環(huán)境中運(yùn)行。
同時(shí),.NET Core 在設(shè)計(jì)和體系結(jié)構(gòu)上基本是模塊化的。它的運(yùn)行時(shí)、庫和編譯器組件均為獨(dú)立的實(shí)體,并通過設(shè)計(jì)良好的接口進(jìn)行通信。這可以讓您針對(duì)特定需求“換入”和“換出”組件。庫本身也是模塊化的,并通過 NuGet 分布,這樣,您就可以只使用需要的內(nèi)容,以在任意給定系統(tǒng)上優(yōu)化 .NET Core 的占用。
另外,針對(duì) .NET Core 編寫的代碼是可移植的,并可被調(diào)整為在所支持的不同平臺(tái)間運(yùn)行。根據(jù)您決定項(xiàng)目目標(biāo)的方式,.NET Core 代碼可能會(huì)在 .NET Framework、Mono 和 Xamarin 平臺(tái)、Windows 8 和 Windows Phone 以及通用 Windows 平臺(tái) (UWP) 上運(yùn)行。要了解更多信息,請(qǐng)查看 .NET 平臺(tái)標(biāo)準(zhǔn) (bit.ly/1Of6W1r)。
最后,.NET Core 會(huì)成為“付費(fèi)”的高性能實(shí)現(xiàn)。.NET Core 的目標(biāo)之一在于,通過實(shí)現(xiàn)付費(fèi)模式,清楚地表示出采用更高級(jí)別的抽象解決問題而產(chǎn)生的費(fèi)用,使開發(fā)人員明確抽象成本。抽象并不是免費(fèi)使用的,而且,決不應(yīng)該對(duì)開發(fā)人員隱藏這一事實(shí)。另外,.NET Core 可使用標(biāo)準(zhǔn)庫提升性能,標(biāo)準(zhǔn)庫可最大程度地降低系統(tǒng)中的分配和總體內(nèi)存占用。
.NET Core 方案
現(xiàn)在有四種方案,您可以在其中編寫針對(duì) .NET Core 的代碼:跨平臺(tái) ASP.NET Web 應(yīng)用、跨平臺(tái)控制臺(tái)應(yīng)用、跨平臺(tái)庫和框架、UWP 應(yīng)用
ASP.NET Core 1.0 是用于 .NET Core 的跨平臺(tái) Web 堆棧,采用高速設(shè)計(jì)。如果您曾經(jīng)想進(jìn)行將 ASP.NET Web 應(yīng)用部署到 Linux 容器上之類的操作,現(xiàn)在您可以做到了。要了解更多有關(guān) ASP.NET Core 提供的多種功能的信息,請(qǐng)前往 bit.ly/1TqPcIo 查看文檔。
跨平臺(tái)控制臺(tái)應(yīng)用的范圍比很多開發(fā)人員所預(yù)期的要大很多。例如,就本質(zhì)而言,ASP.NET Core Web 應(yīng)用是讀取信息并將信息寫入端口的控制臺(tái)應(yīng)用—它只是恰好能進(jìn)行許多其他操作。一套形成整個(gè)系統(tǒng)后端的微服務(wù)均可被編寫為控制臺(tái)應(yīng)用。
跨平臺(tái)庫和框架之間的區(qū)別之一在于其規(guī)模。庫是在 .NET Core 上構(gòu)建功能的最自然的候選對(duì)象之一。但是在更大的范圍上,用于分布式計(jì)算的框架也是極佳的候選對(duì)象。
最后,以 Windows 10 設(shè)備系列為目標(biāo)的 UWP 應(yīng)用可在 .NET Core 上運(yùn)行。您可以構(gòu)建包含了 .NET Core 庫的功能完善的 UWP 應(yīng)用,以幫助構(gòu)建豐富的 Windows 10 應(yīng)用。
換句話說,現(xiàn)在您可以針對(duì) .NET Core 編寫多種內(nèi)容。隨著工具的成熟和擴(kuò)展,將來,您還可以構(gòu)建更多內(nèi)容。
如果您的 .NET Framework 資產(chǎn)屬于這四種方案中的一種,或您想嘗試部分新技術(shù),請(qǐng)轉(zhuǎn)到bit.ly/1Q1Q18q,您可以在這里編寫部分 .NET Core 代碼。
.NET Core 與 .NET Framework 的比較結(jié)果
大部分人了解并喜愛的 .NET 被稱作 .NET Framework。那么,.NET Core 與 .NET Framework 的比較結(jié)果如何呢? 首先請(qǐng)記住,您仍然使用相同的語言(C#、F#、Visual Basic)編寫所有代碼。從視覺和感覺上來說,您編寫代碼的體驗(yàn)應(yīng)該非常相似。但是,.NET Core 是新的堆棧,而非 .NET Framework 的子集。最好將 .NET Core 和 .NET Framework 看作兩個(gè)重合且共同進(jìn)化的堆棧。
編寫用于 Windows 7 到 Windows 10 的桌面應(yīng)用程序時(shí),現(xiàn)在和將來使用的都是 .NET Framework 堆棧。事實(shí)上,您可以讓 .NET Framework 和 .NET Core 代碼在同一解決方案中和諧共存。例如,請(qǐng)考慮一個(gè)方案,其中,.NET Framework GUI(例如 Windows 窗體)使用的是在 .NET Core 上編寫的服務(wù)。
我們可以從兩個(gè)方面來看待 .NET Core 和 .NET Framework 之間的異同。 API 外圍應(yīng)用和運(yùn)行時(shí)功能。圖 1 說明了兩個(gè)平臺(tái)之間的 API 重疊。
圖 1:.NET Framework 和 .NET Core 共享一個(gè) API 子集
.NET Core 和 .NET Framework 上均實(shí)現(xiàn)了 .NET API(雖然有時(shí)底層的實(shí)現(xiàn)不同)。同時(shí),.NET Core 和 .NET Framework 均有對(duì)方不具備的 API 和功能。例如,.NET Framework 有多個(gè) .NET Core 不具備的 GUI 框架和特定于 Windows 的 API。同樣地,.NET Core 有 .NET Framework 缺少的跨平臺(tái)功能和 API。
另外,.NET Framework 是通過 Windows 更新獲得服務(wù)的 Windows 組件。而 .NET Core 的存在環(huán)境和服務(wù)獲取方式則采用完全不同的模式。.NET Core 包括 NuGet 包,并帶有安裝了運(yùn)行時(shí)的本地應(yīng)用。這就意味著應(yīng)用程序可以“攜帶”.NET Core,這讓它們可以在計(jì)算機(jī)或設(shè)備上與其他 .NET Core 實(shí)例并行存在。這樣,服務(wù)就可以通過程序包管理器應(yīng)用于每個(gè)應(yīng)用程序,而無需通過 OS 更新全局應(yīng)用。
下面提一個(gè)實(shí)際的問題: 如果您在一個(gè)堆棧上編寫代碼,它會(huì)在別的堆棧上運(yùn)行嗎? 和生活中的大部分問題一樣,這要視情況而定。如果您使用的 API 在兩個(gè)平臺(tái)上均得以實(shí)現(xiàn),那么,您執(zhí)行較少的工作就能在 .NET Core 和 .NET Framework 上運(yùn)行您的代碼了。但是,如果您在運(yùn)行環(huán)境中假定了依賴項(xiàng),或使用了不適用于其中一個(gè)堆棧的 API(例如,用于使用基于 XAML 的 UI 的庫),則您的代碼將不會(huì)在兩個(gè)堆棧上運(yùn)行。.NET Portability Analyzer—可用作命令行工具 (bit.ly/1Sd8oIK) 或 Visual Studio 擴(kuò)展 (bit.ly/1LqX0aF)—這是一個(gè)工具,用于分析您的 .dll 文件,并就如何將您的代碼從 .NET Framework 移植到 .NET Core 生成報(bào)告。以后,我們將發(fā)布更多幫助移植的工具。
命令行: 您的 .NET Core 入口點(diǎn)
.NET Core 帶有全新和改進(jìn)的基礎(chǔ)工具集,可用于開發(fā)應(yīng)用程序。該工具集被稱為 .NET Core CLI,即 .NET Core 命令行接口的縮寫。與 .NET Core 的其他部分相同,它也是開源的(請(qǐng)參閱GitHub.com/dotnet/cli),并具有一個(gè)與其開發(fā)緊密相關(guān)的充滿活力的開源社區(qū)。
引入新的工具集有多個(gè)原因。首先,我們有必要在 .NET Core 支持的所有平臺(tái)上支持核心開發(fā)方案??紤]到不同的平臺(tái),良好的命令行體驗(yàn)是一個(gè)可供我們構(gòu)建的絕佳的基礎(chǔ);畢竟,命令行是每個(gè)平臺(tái)默認(rèn)的自帶內(nèi)容。
作為邏輯擴(kuò)展,我們希望在支持的各平臺(tái)上支持相同的 UX。您可以在 Linux、Windows 和 OS X 之間轉(zhuǎn)移,而無需重新學(xué)習(xí)它們的工具、語法或語義。所有平臺(tái)上的這些內(nèi)容都是相同的。使用模式甚至語法都是相同的。
您可以跨平臺(tái)使用一個(gè)工具集的想法還擴(kuò)展到了更高級(jí)別的工具,即 Visual Studio Code 和 Visual Studio。這些更高級(jí)別的工具將會(huì)在 .NET CLI 上分層,并用它們支持 .NET Core 項(xiàng)目的發(fā)展。這就意味著,當(dāng)您通過 Visual Studio 構(gòu)建 .NET Core 應(yīng)用程序時(shí),.NET CLI 工具將被調(diào)用于執(zhí)行這一構(gòu)建。
嘗試 .NET Core 命令行界面
最簡(jiǎn)單的 .NET Core CLI 入門方式就是遵循入門指南 (aka.ms/dotnetcoregs)。簡(jiǎn)言之,就是下載適用于平臺(tái)的安裝程序(如果使用 Ubuntu,則注冊(cè)一個(gè)新的 apt-get 源)并安裝工具,這樣就準(zhǔn)備就緒了。安裝程序會(huì)負(fù)責(zé)在所有支持的 OS 的系統(tǒng)路徑上設(shè)置好安裝文件夾,以及 CLI 需要的其他任何環(huán)境變量。
之后,您可以通過調(diào)用“dotnet”驅(qū)動(dòng)程序并傳遞命令(我們也稱之為“謂詞”)進(jìn)行啟動(dòng)。驅(qū)動(dòng)程序負(fù)責(zé)運(yùn)行命令并向其傳遞所有參數(shù)。在本次編寫過程中,CLI 包會(huì)帶有圖 2中的命令。當(dāng)然,當(dāng)您讀取這一命令時(shí),我們可能會(huì)添加更多提升生產(chǎn)效率的命令。
圖 2:您可以立即使用的部分通用 .NET CLI 命令
命令說明
dotnet new使用 C# 語言初始化用于類庫或控制臺(tái)應(yīng)用程序的有效項(xiàng)目。
dotnet restore還原在指定項(xiàng)目的 project.json 文件中定義的依賴項(xiàng)。依賴項(xiàng)通常是您在應(yīng)用程序中使用的 NuGet 包。
dotnet build生成您的代碼! 此命令將生成適用于您的項(xiàng)目的中間語言 (IL) 二進(jìn)制。如果項(xiàng)目是控制臺(tái)應(yīng)用程序,則產(chǎn)生的輸出是可執(zhí)行的,您可以立即運(yùn)行。默認(rèn)情況下,生成命令會(huì)將生成的程序集和可執(zhí)行文件(如果適用)輸出到調(diào)用位置目錄的 bin 目錄中。
dotnet test如果不支持運(yùn)行測(cè)試,則不會(huì)出現(xiàn)適合的工具。此命令讓您可以使用在 project.json 文件中指定的運(yùn)行程序運(yùn)行一組測(cè)試。目前支持 xUnit 和 NUnit 測(cè)試運(yùn)行程序。
dotnet publish發(fā)布在目標(biāo)計(jì)算機(jī)上運(yùn)行的應(yīng)用程序。
dotnet packpack 命令會(huì)把您的項(xiàng)目打包成 NuGet 包。輸出一組 nupkg 文件后,您可以將其上載至您的源,或使用本地文件夾替代將其用于還原操作。
dotnet run運(yùn)行命令將編譯并運(yùn)行您的應(yīng)用程序。您可以將其看作沒有 Visual Studio 的 Ctrl+F5 模擬。
除帶有包的命令外,您還具有將其他命令添加為 project.json 中的工具并將其還原的選項(xiàng)。它們被打包為 NuGet 包,可提供適合且易用使用和理解的擴(kuò)展性模型。
總結(jié)
希望您已經(jīng)了解了 .NET Core 的相關(guān)知識(shí),并樂于編寫可以跨平臺(tái)運(yùn)行的 .NET 代碼。作為一個(gè)新的堆棧,它會(huì)提供一些令人興奮的功能,這在之前的 .NET Framework 上是不可能具備的。.NET CLI 還引入了絕佳的命令行體驗(yàn),這將成為開發(fā)人員體驗(yàn)的基礎(chǔ),并可集成入 Visual Studio 和 Visual Studio Code 等其他工具。
最后,我們了解您有多種針對(duì) .NET Framework 編寫的資產(chǎn),我們很樂于看到這些資產(chǎn)隨著 .NET Framework 的演變不斷發(fā)展。設(shè)想一個(gè)這樣的世界:在一個(gè)系統(tǒng)中一起使用 .NET Framework 和 .NET Core,并利用兩個(gè)堆棧的優(yōu)勢(shì)。
如果您想了解更多并參與其中,您可以從以下網(wǎng)站開始:
.NET Core 運(yùn)行時(shí): GitHub.com/dotnet/coreclr
.NET 庫: GitHub.com/dotnet/corefx
命令行界面和工具: GitHub.com/dotnet/cli
Roslyn 編譯器(C# 和 Visual Basic)和適用于 Visual Studio 的語言工具:GitHub.com/dotnet/roslyn
我們的 .NET Core 文檔: GitHub.com/dotnet/core-docs
我們還有很多其他正在開發(fā)的 .NET 開源項(xiàng)目。如果您想看到更多內(nèi)容,請(qǐng)查看 .NET Foundation,這是一個(gè)促進(jìn) .NET 開源開發(fā)和合作的獨(dú)立組織。Microsoft 已經(jīng)為 .NET Foundation 以及其他公司(例如 Xamarin、Umbraco、Salesforce 和 .NET 社區(qū))貢獻(xiàn)了多個(gè)項(xiàng)目。了解項(xiàng)目的詳細(xì)內(nèi)容及其貢獻(xiàn),請(qǐng)前往 DotNetFoundation.org/projects。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
.Net Core vs .Net Framework 如何為一個(gè)應(yīng)用程序選擇一個(gè)運(yùn)行時(shí)
回頭草也挺好:嘗試了GO之后,我決定回歸.NET Core和C#
試試看:將你的C++/CLI項(xiàng)目遷移至.NET Core平臺(tái)
精彩 .NET 2015
.Net 運(yùn)行時(shí)如何選擇?
3.介紹ASP.NET Core框架
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服