91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET Core的示例分析

發布時間:2021-08-18 15:15:21 來源:億速云 閱讀:170 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“ASP.NET Core的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“ASP.NET Core的示例分析”這篇文章吧。

1. 前言

.NET發行至今已經過了十四個年頭。隨著版本的不斷迭代更新,.NET在Windows平臺上的表現也是越來越好,可以說Windows平臺上所有的應用類型.NET幾乎都能完成。

只是成也Windows,敗也Windows,這十四年來,除了部分“民間”版本,.NET一直沒能在官方支持下擺脫Windows平臺的局限,“開源”和“跨平臺”這兩個詞語也是所有.NET開發者心中的痛楚。最終,.NET Core出現了,它讓開發者們在官方和社區的支持走出了Windows,可以在macOS,Linux主流distributions上編寫調試并部署.NET程序。

2. .NET Core 簡介

2.1 .NET Core是什么

.NET Core是一個開源通用的開發框架,支持跨平臺,即支持在Window,macOS,Linux等系統上的開發和部署,并且可以在硬件設備,云服務,和嵌入式/物聯網方案中進行使用。.NET Core的源碼放在GitHub上,由微軟官方和社區共同支持。

它和傳統的.NET Framework,屬于“子集—超集”的關系,或者你也可以簡單地認為它就是.NET Framework的跨平臺版本(基于BCL的層面上看)。這是因為在當前版本中(1.0),.NET Core中的大部分核心代碼都是從.NET Framework中繼承重寫的,包括Runtime和Libraries(如GC, JIT, 部分類型)。

吐槽:只能感謝微軟《CLR via C#》不用白看呀,我之前看了得有小半年才看完

現在的.NET Core 1.0版本是一個很小的核心,APIs和工具也并不完整,但是隨著.Net Core的不斷完善,補充的Apis和創新也會一起整合到.NET Framework中。也就是說,.NET Core微軟會同時更新.NET Framework和.NET Core,他們就像倆兄弟,共同努力致富(致誰的富?當然是.NET開發者們),實現所謂的天下大同,也就是.NET 標準2.0

這里不得不提到一個叫做.NET Standard Library概念。作為.NET平臺APIs開發官方支持標準,它要求所有的.NET框架APIs都遵循向下兼容。比如說.NET Framwork 4.6支持.NET Standard Library 1.3,.NET Framwork 4.6.2框架支持.NET Standard Library 1.5,而.NET Core 1.0框架支持1.6標準。

最終展望如下:

ASP.NET Core的示例分析

2.2 .NET Core的組成

①.NET Runtime

即CoreCLR。如之前所說,CoreCLR與.NET Framework的CLR并沒有什么區別,進程管理,GC,JIT(RyuJIT 編譯器)這些部分也都是一樣的,只是針對服務器系統做了相應優化。現在CLR和CoreCLR也在進行同步更新,只是可以肯定的是,CoreCLR才是.NET的未來,CLR將作為兼容手段而存在

②Framework Libraries,

即CoreFX。包括集合類,文件系統處理類,XML處理類,異步Task類等

③SDK Tools 和 Language Compilers (SDK工具和編譯器) 

即CLI工具和Roslyn編譯器。可以通過.NET Core SDK(.NET Core開發工具包)獲取。

④dotnet'app host

用來選取并執行對應運行時,提供組件載入原則和啟動.NET Core應用程序。SDK也是通過相同程序啟動。

Tips:是不是想起了MSCorEE.dll這個墊片,它同樣承載著Windows平臺上為.NET應用程序選擇CLR版本的工作

ASP.NET Core的示例分析

2.3 .NET Core的特性

①跨平臺

可以在Windows,macOS,Linux上運行

②靈活的部署機制

1.Portable applications(便攜式應用)

這種部署機制和傳統的.NET Framework相似,只要目標平臺上存在.NET Core Runtime即可。

2.Self-contained application(自宿主應用)

 顧名思義,這種部署機制將應用和運行時共同打包,即便目標平臺上沒有安裝.NET Core Runtime也能正常使用

第二種方式和.NET Native也是不一樣的,仍然使用CoreCLR,而.NET Native使用CoreRT作為運行時,詳細信息請見dotnet/corert

③命令行工具

.NET程序所有的運行腳本都可以用命令行工具執行(cmd,bash)這里有幾個常見的donnet命令

指令幫助
dotnet new產生新的基本 .NET 項目內容 (包含 project.json、Program.cs 以及 NuGet.config
dotnet restore還原所參考的 NuGet 包
dotnet build建造 .NET 項目
dotnet publish產生可發行的 .NET 項目 (包含所屬的 Runtime)
dotnet run編譯與立即運行 .NET 項目 (較適用于 exe 型項目)
dotnet repl引導交互式的對話
dotnet pack將項目的產出封裝成 NuGet 包

④兼容性

 通過.NET Standard Library與.NET Framework,Xamarin,Mono兼容

⑤開源

.NET Core從屬于.NET基金會,由微軟進行官方支持。使用MIT和Apache 2開源協議,文檔協議遵循CC-BY

2.4 開發語言

.NET Core 1.0版本中支持的編程語言僅有C#(F#和VB暫未實現),這里還要提到一個開源的語言編譯器Roslyn,它負責將代碼編譯成我們熟悉的IL語言,然后再借由AOT或JIT編譯器編譯成機器熟悉的機器語言。

 3. Get Started

以下內容演示在Windows10和CentOS 7.2下的命令行生成和發布demo

3.1 Win 10

3.1.1 安裝.NET Core SDK和.NET Core Runtime

 .NET Core SDK = 使用.NET Core開發應用.NET Core Runtime 和 SDK+CLI 工具

3.1.2 簡單的運行結果

打開cmd,依次輸入mkdir .project(創建目錄),cd .\.project(進入目錄),dotnet new(新建初始項目),dotnet restore(還原依賴),dotnet run(運行)即可運行第一個Hello World程序

ASP.NET Core的示例分析

 3.2 CentOS 7.2(本地Hyper-V)

 3.2.1 安裝和運行

詳情請見: https://www.microsoft.com/net/core#windowsvs2015,大致命令如下

sudo yum install libunwind libicu #安裝libunwind,libicu包

curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131 #下載dotnet-dev-centos-x64.1.0.0-preview2-003121.tar文件,有時會因為網絡問題下載較慢,耐心等待即可,當然也可以手動下載后放到目錄下。

sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet #創建目錄并解壓已下載文件
sudo ln -s /opt/dotnet/dotnet /usr/local/bin #將目錄鏈接到$PATH下,否則dotnet命令無法識別

mkdir hwapp
cd hwapp

dotnet new #創建默認.NET Core應用
dotnet restore #還原依賴包
dotnet run #運行,結果將顯示Hello World!

第六行命令后可使用dotnet --info查看是否鏈接成功,顯示如下

.NET Command Line Tools (1.0.0-preview2-003121)

Product Information:
 Version:   1.0.0-preview2-003121
 Commit SHA-1 hash: 1e9d529bc5

Runtime Environment:
 OS Name:  centos
 OS Version: 7
 OS Platform: Linux
 RID:   centos.7-x64

以上步驟在.NET Core官方網站都可以找到,可以看到應用在經過簡單的dotnet new, dotnet restore, dotnet run命令后就跑起來了,但是這其實是類似于開發環境中的調試運行,而且win上new的應用此時也不能直接跨平臺到Linux下運行,所以我們又得提到dotnet publish命令了

3.2.2 Self-contained applications 發布

(1) 修改project.json文件

我們現在win10下按照步驟new一個新的HW控制臺應用self,按照官方文檔要求,我們需要用以下內容替換原來project.json文件(刪除"type": "platform",并增加runtimes節點)

{
 "version": "1.0.0-*",
 "buildOptions": {
 "debugType": "portable",
 "emitEntryPoint": true
 },
 "dependencies": {},
 "frameworks": {
 "netcoreapp1.0": {
  "dependencies": {
  "Microsoft.NETCore.App": {
   "version": "1.0.0"
  }
  },
  "imports": "dnxcore50"
 }
 },
 "runtimes":{
 "win10-x64":{}, #win10平臺
 "centos.7-x64":{} #centos7.2平臺
 }
}

 (2) 執行restore和publish操作

之后執行dotnet restore指令,針對平臺進行還原操作。該步操作耗時較久,雖然只是兩個平臺,第一次也花了較長時間。緊接著進行進行dotnet publish -r centos.7-x64 -c release。

ASP.NET Core的示例分析

dotnet publish指令詳見dotnet-publish - Packs the application and all of its dependencies into a folder getting it ready for publishing

 (3) 在Linux平臺上運行

上述操作后,我們只需要將發布后的文件夾(bin/release/netcoreapp1.0/centos7-x64/publish,包含self.exe)上傳到Linux root目錄下project(新建)文件夾中, 在Shell中輸入指令

ASP.NET Core的示例分析

修改可執行權限后,即可成功運行“Hello World”,這就是我們“Self-contained applications”方式的部署方法

以上是“ASP.NET Core的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太和县| 海原县| 寿光市| 建瓯市| 赤水市| 麦盖提县| 陈巴尔虎旗| 神池县| 西青区| 宁津县| 安新县| 唐海县| 洞口县| 乌鲁木齐市| 得荣县| 多伦县| 十堰市| 会理县| 普陀区| 临沂市| 千阳县| 前郭尔| 祁门县| 丰城市| 东山县| 东海县| 山东省| 连江县| 康平县| 宣武区| 西宁市| 县级市| 四川省| 海城市| 天峻县| 鄂州市| 沧源| 富民县| 丹阳市| 古浪县| 高唐县|