一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

.NET 架構(gòu)開發(fā) 應(yīng)知應(yīng)會

 蘭亭文藝 2019-08-02

作者:頭號碼甲

鏈接:https://www.cnblogs.com/JulianHuang/p/11126915.html

.NET程序是基于.NET Framework、.NET Core、Mono、.NET實(shí)現(xiàn)開發(fā)和運(yùn)行的 ,定義以上.NET實(shí)現(xiàn)的標(biāo)準(zhǔn)規(guī)范稱為.NET Standard。

L1:.NET Standard

.NET標(biāo)準(zhǔn)是一組API集合,由上層三種【.NET實(shí)現(xiàn)】的Basic Class Library實(shí)現(xiàn),更正式的說法,由統(tǒng)一契約集合構(gòu)成的規(guī)范,這個集合確保了在不同【.NET實(shí)現(xiàn)】之間的可移植性,能讓你的代碼 run everywhere。

.NET Standard 也是一個 target framework。

如果您的代碼針對的是.NET Standard的一個版本,那它可以在任意一個 支持該.NET Standard版本的.NET實(shí)現(xiàn)上運(yùn)行。

L2:[.NET實(shí)現(xiàn)]

上圖給出的是微軟積極支持和維護(hù)的有三個主要的【.NET實(shí)現(xiàn)】:.NET Framework,.NET Core,Mono

1、.NET Framework

最早期的.NET 實(shí)現(xiàn), 4.5+版本開始實(shí)現(xiàn).NET Standard      https://docs.microsoft.com/en-us/dotnet/standard/net-standard  https://docs.microsoft.com/en-us/dotnet/standard/frameworks

早期的微軟比較閉源,.NET Framework 是為構(gòu)建面向windows桌面環(huán)境而設(shè)計(jì)的,針對不同的應(yīng)用程序形態(tài)設(shè)計(jì)了 WINFORM、 ASP.NET、WPF

2、.NET Core

是近幾年微軟擁抱開源的結(jié)晶,.NET Core是一個跨平臺的【.NET實(shí)現(xiàn)】,因?yàn)樵鷮?shí)現(xiàn)了.NET Standard(完全沒有版本包袱), 面向.NET Standard的代碼可以在.NET Core平臺上編譯和運(yùn)行。

針對Web程序.NET Core準(zhǔn)備了ASP.NE Core框架, 定位是微軟新一代高性能、開源、跨平臺Web開發(fā)框架, 目前最新穩(wěn)定版本為2.2

另外.NET Core 3.0即將支持WINFORM、WPF, 這樣將全面覆蓋.Net Framework 支持的應(yīng)用程序形態(tài)。

3、Mono

是一個微小運(yùn)行時的 【.NET實(shí)現(xiàn)】,驅(qū)動 Xamarin,用于android,ios 等開發(fā),支持目前所有公開的.NET standard 版本。

 本人近些年工作在.NET Core平臺, 有一些宏觀上的經(jīng)驗(yàn)之談, 可供參考。

一、.NET Core部署目標(biāo)的選擇

部署目標(biāo)是在Target Framework Moniker中定義, 決定了程序的部署定位, 常見有如下2種:

  • netstandard

  • netcoreapp

在實(shí)踐中:項(xiàng)目早期可能是定位是 netstandard,后面隨著項(xiàng)目演進(jìn),依賴的庫越來越多,大部分都會變成netcoreapp.

如L1所述 .NetStandard也是一個 target framework, 期望在多個運(yùn)行時(.Net Framework4.5+,.NET Core, XAMARIN)上都能運(yùn)作的程序應(yīng)該以此框架為目標(biāo)。

<Project Sdk='Microsoft.NET.Sdk'>
<PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework>
</PropertyGroup>
</Project>

伴隨項(xiàng)目演進(jìn), 程序依賴的某些庫可能只有針對 .NET Core的版本;從生產(chǎn)實(shí)際看, 部署環(huán)境只會搭配一套.NET Core運(yùn)行時, 所以后期項(xiàng)目很大可能性會演進(jìn)成針對 .NET Core的運(yùn)行時部署。

<TargetFramework>netcoreapp2.2</TargetFramework>

二、開發(fā)環(huán)境存在多SDK、多Runtime版本時,應(yīng)當(dāng)知曉 .NET Core工具、SDK和運(yùn)行時版本選擇的策略。

① 當(dāng)運(yùn)行SDK命令,會使用安裝的最新版本命令

SDK命令包括dotnet new/ dotnet run,即使項(xiàng)目生成文件被指定為早期版本的運(yùn)行時 或 安裝的最新版本SDK是預(yù)覽版, SDK依舊使用安裝的最新SDK版本

② 目標(biāo)框架標(biāo)記target framework monikers定義編譯時刻的API

編譯.NET Core程序的API是在項(xiàng)目文件的 Target framework Moniker中定義的,

<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFrameworks>netcoreapp2.0;net47</TargetFrameworks>

③ 運(yùn)行.NET Core程序( 框架獨(dú)立的.NET Core 程序 ), 在部署服務(wù)器上會適用版本前滾的策略

在項(xiàng)目文件中指定了netcoreapp2.0, 在部署環(huán)境中2.0.4 是安裝的最新運(yùn)行時版本, 那么就會使用2.0.4運(yùn)行時版本

④ 發(fā)布自包含的程序,自包含的部署文件會內(nèi)置指定的運(yùn)行時

部署自包含.NET Core 程序時, 部署文件包含了.NET Core 運(yùn)行時和程序依賴的庫文件,自包含項(xiàng)目并不依賴 部署服務(wù)器上運(yùn)行時環(huán)境,運(yùn)行時版本選擇發(fā)生在發(fā)布階段,而不是在運(yùn)行階段。

目前 自包含.NET Core程序使用場景不多,一般用于需要將程序應(yīng)用到復(fù)雜的多種客戶環(huán)境中,這種部署方式可將運(yùn)行時和依賴環(huán)境打包,不用去提前知曉客戶服務(wù)器運(yùn)行時。

Tip:針對策略①有些特殊應(yīng)用場景,如果項(xiàng)目需要使用早期的SDK版本,可在global.json文件中指定該早期版本,規(guī)避最新策略

{
'sdk': {
'version': '2.2.3'
}
}

本文沒有大篇幅講解 .NET Core SDK和CommandLine的用法,照葫蘆畫瓢即可,特別指出 部署目標(biāo)的設(shè)定策略、服務(wù)器存在多SDK的選擇策略, 讀者可參照對比心中有數(shù)。


編號343,輸入編號直達(dá)本文

●輸入m獲取文章目錄

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产欧美日韩精品一区二区| 日本在线高清精品人妻| 一区二区三区精品人妻| 日韩成人中文字幕在线一区| 国产精品欧美一区两区| 国语久精品在视频在线观看| 日韩一区二区三区在线欧洲| 欧美乱码精品一区二区三| 久久中文字幕中文字幕中文| 一区二区三区日韩经典| 超薄丝袜足一区二区三区| 日本丰满大奶熟女一区二区| 精品日韩中文字幕视频在线| 久久精品国产亚洲av麻豆| 日韩精品免费一区三区| 黄色av尤物白丝在线播放网址 | 午夜视频成人在线免费| 亚洲国产婷婷六月丁香| 欧洲一级片一区二区三区| 丰满人妻一二三区av| 人妻中文一区二区三区| 最近的中文字幕一区二区| 亚洲美女国产精品久久| 亚洲男人的天堂久久a| 久久精品国产在热久久| 国产欧美日韩一级小黄片| 欧美日韩国产精品自在自线| 日本免费一级黄色录像| 一区二区三区在线不卡免费| 日韩和欧美的一区二区三区 | 国内尹人香蕉综合在线| 国产在线一区二区免费| 麻豆精品视频一二三区| 欧美一区二区日韩一区二区| 国产户外勾引精品露出一区| 亚洲国产天堂av成人在线播放| 伊人色综合久久伊人婷婷| 日韩午夜福利高清在线观看| 欧美一区二区日韩一区二区| 日本大学生精油按摩在线观看| 天堂网中文字幕在线观看|