.NET Core

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(版本)
(图集)
 
(未显示1个用户的16个中间版本)
第3行: 第3行:
 
.NET Core 是一个通用目的、模块化、跨平台的 [[.NET]] 开源实现。  
 
.NET Core 是一个通用目的、模块化、跨平台的 [[.NET]] 开源实现。  
  
 +
[[文件:dotnet-release-schedule.png|right]]
 +
==简介==
 
.NET Core 是[[.NET]] Framework的新一代版本,具有跨平台 ([[Windows]]、[[OS X]]、[[Linux]]) 能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台。
 
.NET Core 是[[.NET]] Framework的新一代版本,具有跨平台 ([[Windows]]、[[OS X]]、[[Linux]]) 能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台。
  
第15行: 第17行:
 
[[文件:dotnet-milestone.png|right]]
 
[[文件:dotnet-milestone.png|right]]
 
[https://github.com/dotnet/core/tree/master/release-notes .NET Core Release Notes]
 
[https://github.com/dotnet/core/tree/master/release-notes .NET Core Release Notes]
*[https://github.com/dotnet/core/tree/master/release-notes/5.0 5.0]
+
*8.0
*[https://github.com/dotnet/core/tree/master/release-notes/3.1 3.1]
+
*7.0
*[https://github.com/dotnet/core/tree/master/release-notes/3.0 3.0]
+
*[https://github.com/dotnet/core/tree/main/release-notes/6.0 6.0] November 08, 2021
*[https://github.com/dotnet/core/tree/master/release-notes/2.2 2.2]
+
*[https://github.com/dotnet/core/tree/main/release-notes/5.0 5.0]
*[https://github.com/dotnet/core/tree/master/release-notes/2.1 2.1]
+
*[https://github.com/dotnet/core/tree/main/release-notes/3.1 3.1]
*[https://github.com/dotnet/core/tree/master/release-notes/2.0 2.0]
+
*[https://github.com/dotnet/core/tree/main/release-notes/3.0 3.0]
*[https://github.com/dotnet/core/tree/master/release-notes/1.1 1.1]
+
*[https://github.com/dotnet/core/tree/main/release-notes/2.2 2.2]
*[https://github.com/dotnet/core/tree/master/release-notes/1.0 1.0]
+
*[https://github.com/dotnet/core/tree/main/release-notes/2.1 2.1]
 +
*[https://github.com/dotnet/core/tree/main/release-notes/2.0 2.0]
 +
*[https://github.com/dotnet/core/tree/main/release-notes/1.1 1.1]
 +
*[https://github.com/dotnet/core/tree/main/release-notes/1.0 1.0]
  
 
==指南==
 
==指南==
 +
===切换版本===
 +
$ dotnet --list-sdks
 +
6.0.412 [/usr/local/share/dotnet/sdk]
 +
7.0.306 [/usr/local/share/dotnet/sdk]
 +
$ dotnet new global.json --sdk-version 6.0.412 --force
 +
$ cat global.json
 +
{
 +
  "sdk": {
 +
    "version": "6.0.412"
 +
  }
 +
}
 +
$ dotnet --version
 +
6.0.412
 +
 +
===卸载工具===
 +
[https://learn.microsoft.com/zh-cn/dotnet/core/additional-tools/uninstall-tool .NET 卸载工具]
 +
$ sudo ./dotnet-core-uninstall remove 7.0.306 --sdk --force
 +
$ sudo ./dotnet-core-uninstall remove 7.0.9 --runtime --force
 +
 
===Debian===
 
===Debian===
 +
[https://docs.microsoft.com/en-us/dotnet/core/install/linux-debian Install the .NET SDK or the .NET Runtime on Debian]
 +
 +
.NET 6.0
 +
apt search dotnet-sdk-6.0
 +
sudo apt install dotnet-sdk-6.0
 +
dotnet --version
 +
6.0.201
 +
.NET 5.0
 
  mkdir -p "$HOME/dotnet" && tar zxf aspnetcore-runtime-5.0.0-linux-x64.tar.gz -C "$HOME/dotnet"
 
  mkdir -p "$HOME/dotnet" && tar zxf aspnetcore-runtime-5.0.0-linux-x64.tar.gz -C "$HOME/dotnet"
 
  export DOTNET_ROOT=$HOME/dotnet
 
  export DOTNET_ROOT=$HOME/dotnet
第42行: 第74行:
 
  $ sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.0
 
  $ sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.0
 
  $ sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.0
 
  $ sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.0
 +
 +
===HTTPS===
 +
已安装 ASP.NET Core HTTPS 开发证书。
 +
 +
若要信任该证书,请运行 "dotnet dev-certs https --trust" (仅限 Windows 和 macOS)。
 +
 +
了解 HTTPS: https://aka.ms/dotnet-https
  
 
==核心项目==
 
==核心项目==
 
[https://github.com/dotnet/core/blob/master/Documentation/core-repos.md .NET Core Repos]
 
[https://github.com/dotnet/core/blob/master/Documentation/core-repos.md .NET Core Repos]
*[https://github.com/dotnet/corefx .NET Core Common Language Libraries (CoreFX)] 主要由[[C Sharp|C#]]编写
+
*[https://github.com/dotnet/runtime .NET Core Runtime (CoreCLR)] 主要由[[C Sharp|C#]]和[[C++]]编写,大量核心库[https://github.com/dotnet/runtime/tree/main/src/libraries libraries]由C#编码。
*[https://github.com/dotnet/coreclr .NET Core Runtime (CoreCLR)] 主要由[[C++]]和汇编语言编写
+
 
*[https://github.com/dotnet/roslyn .NET Compiler Platform (Roslyn)] 主要由[[C Sharp|C#]]编写
 
*[https://github.com/dotnet/roslyn .NET Compiler Platform (Roslyn)] 主要由[[C Sharp|C#]]编写
*[https://github.com/dotnet/llilc LLILC] is an [[LLVM]] based MSIL [[Compiler]] 主要由[[C++]]编写,用作 JIT   
+
*[https://github.com/dotnet/sdk .NET SDK] 主要由[[C Sharp|C#]]编写
*[https://github.com/dotnet/cli .NET Command Line Interface(CLI tools)] 主要由[[C Sharp|C#]]编写
+
*[https://github.com/dotnet/corefx .NET Core Common Language Libraries (CoreFX)] 已合并进 Runtime,主要由[[C Sharp|C#]]编写
 +
*[https://github.com/dotnet/llilc LLILC] is an [[LLVM]] based MSIL [[Compiler]] 已存档,主要由[[C++]]编写,用作 JIT   
 +
*[https://github.com/dotnet/cli .NET Command Line Interface(CLI tools)] 已合并进 .NET SDK,主要由[[C Sharp|C#]]编写
  
 
==Docker==
 
==Docker==
第85行: 第125行:
 
==图集==
 
==图集==
 
<gallery>
 
<gallery>
 +
image:dotnet-standard-versions.png|.NET Standard 版本
 +
image:Roslyn-compiler-api-model.png|Roslyn编译器API模型
 
image:abp-ddd-microservice.png|ABP框架
 
image:abp-ddd-microservice.png|ABP框架
 +
image:dotnet-microservices-eShopOnContainers-architecture.png|eShopOnContainers
 
</gallery>
 
</gallery>
  

2023年8月1日 (二) 12:41的最后版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 .NET Core Thanks, Wikipedia.

.NET Core 是一个通用目的、模块化、跨平台的 .NET 开源实现。

Dotnet-release-schedule.png

目录

[编辑] 简介

.NET Core 是.NET Framework的新一代版本,具有跨平台 (WindowsOS XLinux) 能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台。

由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 大包式安装的作法截然不同,同时各包也有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。

[编辑] 新闻

[编辑] 版本

Dotnet-milestone.png

.NET Core Release Notes

[编辑] 指南

[编辑] 切换版本

$ dotnet --list-sdks
6.0.412 [/usr/local/share/dotnet/sdk]
7.0.306 [/usr/local/share/dotnet/sdk]
$ dotnet new global.json --sdk-version 6.0.412 --force
$ cat global.json
{
  "sdk": {
    "version": "6.0.412"
  }
} 
$ dotnet --version
6.0.412 

[编辑] 卸载工具

.NET 卸载工具

$ sudo ./dotnet-core-uninstall remove 7.0.306 --sdk --force
$ sudo ./dotnet-core-uninstall remove 7.0.9 --runtime --force

[编辑] Debian

Install the .NET SDK or the .NET Runtime on Debian

.NET 6.0

apt search dotnet-sdk-6.0
sudo apt install dotnet-sdk-6.0
dotnet --version
6.0.201

.NET 5.0

mkdir -p "$HOME/dotnet" && tar zxf aspnetcore-runtime-5.0.0-linux-x64.tar.gz -C "$HOME/dotnet"
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet

[编辑] macOS

卸载 .NET Core

$ dotnet --list-sdks
2.0.0 [/usr/local/share/dotnet/sdk]
$ sudo rm -rf /usr/local/share/dotnet/sdk/2.0.0
$ dotnet --list-runtimes
Microsoft.AspNetCore.All 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
$ sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/2.2.0
$ sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/2.2.0
$ sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/2.2.0

[编辑] HTTPS

已安装 ASP.NET Core HTTPS 开发证书。

若要信任该证书,请运行 "dotnet dev-certs https --trust" (仅限 Windows 和 macOS)。

了解 HTTPS: https://aka.ms/dotnet-https

[编辑] 核心项目

.NET Core Repos

[编辑] Docker

[编辑] 区别

.NET Core 和 .NET Framework 的主要差异在于:

  • 应用模型 -- .NET Core 不支持所有 .NET Framework 应用模型,某种程度上是因为其中许多模型都是基于 Windows 技术,如 WPF(基于 DirectX 生成)。 但 .NET Core 和 .NET Framework 两者都支持控制台和 ASP.NET Core 应用模型。
  • API -- .NET Core 包含很多与 .NET Framework 相同,但数量较少的 API,并且具有不同的组成要素(程序集名称不同;关键用例中的类型形状不同)。 目前,这些差异通常都需要更改,以将源移植到 .NET Core。 .NET Core 实现 .NET Standard API,随着时间的推移,将包含更多 .NET Framework BCL API。
  • 子系统 -- .NET Core 实现 .NET Framework 中子系统的子级,目的是实现更简单的实现和编程模型。 例如,不支持代码访问安全性 (CAS),但支持反射。
  • 平台 -- .NET Framework 支持 Windows 和 Windows Server,而 NET Core 还支持 macOS 和 Linux。
  • 开放源码 -- .NET Core 属于开放源码,而 .NET Framework 的只读子集属于开放源码。

.NET Core 与 Mono 比较

Mono 是原始的跨平台和 开放源 .NET 实现,于 2004 年首次发布。 可以把它看作是 .NET Framework 的社区克隆。 Mono 项目团队依赖于 Microsoft 发布的开放 .NET Standard(尤其是 ECMA 335),以便实现兼容性。 .NET Core 和 Mono 的主要差异在于:

  • 应用模型 -- Mono 通过 Xamarin 产品支持 .NET Framework 应用模型(例如,Windows Forms)和其他应用模型(例如,Xamarin.iOS)的子集。 而 .NET Core 不支持这些内容。
  • API -- Mono 使用相同程序集名称和组成要素支持 .NET Framework API 的 大型子集。
  • 平台 -- Mono 支持很多平台和 CPU。
  • 开放源码 -- Mono 和 .NET Core 两者都使用 MIT 许可证,且都属于 .NET Foundation 项目。
  • 焦点 --最近几年,Mono 的主要焦点是移动平台,而 .NET Core 的焦点是云工作负荷。

[编辑] 迁移

[编辑] 用户

  • 网易游戏 网易的“绝代双骄”手游前端采用Unity,后端采用.net core进行开发,据说能降低30%的人员成本,提高20%的开发速度。

[编辑] 图集

[编辑] 链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱