日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core应用类型(Portable apps amp; Self-contained apps)

發(fā)布時間:2023/12/4 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core应用类型(Portable apps amp; Self-contained apps) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 介紹

有許多種方式可以用來考慮構(gòu)建應用的類型,通常類型用來描述一個特定的執(zhí)行模型或者基于此的應用。舉例說:控制臺應用(Console Application)、Web應用(Web Application)等等。所有這些類型的應用都可以用.NET Core來創(chuàng)建。.NET Core本身就是一個通用的開發(fā)平臺。但是要賦予.NET Core跨平臺的特性,.NET Core仍要需要一個角來發(fā)掘應用的類型,這被稱為:應用的可移植性(application's portablility)。可移植性本質(zhì)上意味著哪里可以運行你的應用程序以及要在某個特定的機器上運行需要滿足哪些先決條件。下面我們要描述兩種主要的.NET Core具有的可移植類型。

  • Portable applications

可移植應用是.NET Core的默認的應用類型。這需要.NET Core被事先安裝到運行程序的目標機器上。這就意味著你作為開發(fā)人員,在不同的.NET Core裝置之間你的程序是可移植的。這種類型的應用只需要攜帶、部署自身的代碼和依賴即可(.NET Core庫之外的)。為了創(chuàng)建一個可移植的應用程序,所有你需要做的就是在project.json里面設置目前.NET Core的類庫,然后把frameworks改成如下所示:

"dependencies": { ?

?
"Microsoft.NETCore.App": { ?"version": "1.0.0", ? ?
? ? ? ?
"type": "platform"} },"frameworks": {
? ?
"netcoreapp1.0": {}

}

【Microsoft.NETCore.App】是一個“元數(shù)據(jù)包”,它向你表明你的目標.NET Core類庫。依賴里的【type:platform】屬性意味著當發(fā)布時,發(fā)布工具將省略發(fā)布這些依賴的.NET Core類庫文件,因為這些依賴類庫文件已經(jīng)隨著.NET Core安裝到目標服務器上了。

使用原生依賴的可以移植應用

使用原生依賴的可以移植應用是上面可移植應用的子集。這些可以移植的應用擁有一些在依賴鏈上特定地方指定的原生依賴,這樣這些原生依賴項可以直接運行的目標平臺,我們的可以移植程序也同樣可以直接運行在這些平臺上。最典型的例子就是我們的Kestrel服務器(ASP.NET 跨平臺 Web 服務器),它的構(gòu)建是基于libuv(原生依賴)。當你發(fā)布一個具有原生依賴的可移植應用時,所有的發(fā)布輸出都和上述一致,至于原生依賴,發(fā)布輸出則會為每一個RID(Runtime Identifier)生成一個文件夾。下面的project.json文件展示了一個可移植應用使用原生依賴:

"dependencies": { ?
? ?
"Microsoft.NETCore.App": { ?"version": "1.0.0", ? ?
? ? ? ?
"type": "platform"}, ?
? ?
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*"},
? ?"frameworks": { ?
? ? ? ?
"netcoreapp1.0": {} }
  • Self-contained applications

和可移植的應用不同,獨立的應用不依賴任何分享的組件在你準備部署程序的目標機器上。和它名字的暗示一樣,它意味著整個依賴是閉環(huán)的,運行時將會和整個程序一起發(fā)布。這會使整個發(fā)布包變更大一些,但是這也使得程序可以使用正確的原生依賴運行在任何一個.NET Core支持的平臺上(而不用管.NET Core是否已事先被安裝到目標服務器上)。這使得更加容易去部署你的應用程序到目標服務器上。因為現(xiàn)在應用程序的發(fā)布會自身攜帶運行時,所以必須事先明確指定哪些平臺你的程序?qū)\行。比如,如果你想發(fā)布一個獨立的程序到Windows 10,但不準備運行到macOS和Linux,這樣你在開發(fā)時必須新增或刪除一些平臺(platforms)。完成一個獨立的程序會經(jīng)歷很多步驟,但第一步需要刪除任何?"type": "platform"

屬性。第二步是保留對Microsoft.NETCore.App的依賴,它會拉入一些我們需要的剩余的事情。最后,我們需要在project.json中添加一個運行時(runtimes)節(jié)點,以此來表明我們的程序?qū)谀男┢脚_上運行。

"dependencies": { ?
?
"Microsoft.NETCore.App": "1.0.0"
},

"frameworks": {
? ?
"netcoreapp1.0": {} },
"runtimes": { ?
?
"win10-x64": {},
? ?
"osx.10.11-x64": {} }

當我們restore項目時,如果project.json中包含runtimes節(jié)點,NuGet將會restore所有指定的運行時。接下來,當需要為給定的平臺發(fā)布應用程序時,我們使用如下的命令行:

dotnet publish --runtime <RID>

RID必須是project.json中指定的RID,如:win10-x64或者osx.10.11-x64,否則會報錯。如果你將要發(fā)布到的操作系統(tǒng)是你當前的.NET Core正在運行的操作系統(tǒng),則直接使用如下命令即可:

dotnet publish

?但是你仍然需要在project.json中指定對應的RID。

但需要注意的是:在.NET Core Tools Preview 2 的時間期限內(nèi),獨立的應用是從本機NuGet緩存中發(fā)布的,這就意味著應用所有的依賴包括.NET Core運行時和類庫并不是運行優(yōu)化的。因此,獨立的應用比可移植的應用整體上性能要低,原因在于可移植應用所依賴的.NET Core運行時和類庫都是隨時可以運行(ready-to-run)的。


相關文章:

  • ASP.NET Core 1.0 入門——了解一個空項目

  • ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

  • .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡介

  • 云服務器下ASP.NET Core 1.0環(huán)境搭建(包含mono與coreclr)

  • 使用VS Code開發(fā)ASP.NET Core 應用程序

  • dotnet run是如何啟動asp.net core站點的

  • ASP.NET Core提供模塊化Middleware組件

  • “dotnet restore"和"dotnet run"都做了些什么?

  • 探秘 dotnet run 如何運行 .NET Core 應用程序

  • .NET Portability Analyzer 已開源

  • ASP.NET Core的配置(1):讀取配置信息

  • ASP.NET Core的配置(2):配置模型詳解

  • .NET Core 1.0 RC2 歷險之旅

  • 使用VS Code開發(fā) 調(diào)試.NET Core 應用程序

  • 讓我們Core在一起:ASP.NET Core & .NET Core

  • .NET Core VS Code 環(huán)境配置

  • 官方博客明確了 .NET Core RC2/RTM 時間表

  • .NET Core全新的配置管理[共9篇]

  • 利用記事本創(chuàng)建一個ASP.NET Core RC2 MVC應用

  • 微軟.NET 正式劈腿成功,橫跨所有平臺

  • .NET Core 1.0 CentOS7 嘗試

  • 解讀發(fā)布:.NET Core RC2 and .NET Core SDK Preview 1

  • [.NET Core].NET Core R2安裝及示例教程

  • ASP.NET Core 開發(fā)-中間件(Middleware)

  • 結(jié)合Jexus + Kestrel 部署 asp.net core 生產(chǎn)環(huán)境

  • 通過Jexus 部署 dotnetcore版本MusicStore 示例程序

  • ASP.NET Core 中文文檔 第一章 入門

  • 用 Visual Studio Code 在 macOS 上創(chuàng)建首個 ASP.NET Core 應用程序

  • 用 Visual Studio 和 ASP.NET Core MVC 創(chuàng)建首個 Web API

  • 用 Visual Studio 發(fā)布一個 Azure 云 Web 應用程序

  • ASP.NET Core MVC 與 Visual Studio 入門

  • 第二章指南(4.2)添加 Controller

  • DotNet Core 介紹

  • asp.net core 中間件詳解及項目實戰(zhàn)

  • 教你實踐ASP.NET Core Authorization(免看文檔教程)

  • asp.net core 使用 Redis 和 Protobuf 進行 Session 緩存

  • asp.net core 中間件詳解及項目實戰(zhàn)

  • 第二章 指南(4.3)添加 View

  • dotnet core開發(fā)體驗之開始MVC

  • dotnet core 開發(fā)體驗之Routing

  • 聊聊ASP.NET Core默認提供的這個跨平臺的服務器——KestrelServer

  • 簡析.NET Core 以及與 .NET Framework的關系

  • .NET Core 使用Dapper 操作MySQL

  • 使用 CommandLineApplication 類創(chuàng)建專業(yè)的控制臺程序

  • 簡析 .NET Core 構(gòu)成體系

  • .NET Core也可以使用MongoDB了

  • .NET Core & ASP.NET Core 1.0在Redhat峰會上正式發(fā)布

  • .NET Core:面向未來的開源跨平臺開發(fā)技術

  • 微軟說它深愛著Linux,現(xiàn)在它用行動證明了

  • 移植.NET Core計劃,整合各平臺變得更簡單了!

  • ASP.NET Core 介紹

  • 通過幾個Hello World感受.NET Core全新的開發(fā)體驗

  • ASP.NET Core 運行原理剖析1:初始化WebApp模版并運行

  • .NET Core系列 : 1、.NET Core 環(huán)境搭建和命令行CLI入門

  • Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )

  • Asp.Net Core 發(fā)布和部署(Linux + Jexus )


原文地址:http://www.cnblogs.com/frankyou/p/5640481.html


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的.NET Core应用类型(Portable apps amp; Self-contained apps)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。