.NET Core

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(核心项目)
(链接)
 
(未显示1个用户的45个中间版本)
第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 平台,也是微软在一开始发展时就开源的软件平台。
  
 
由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 大包式安装的作法截然不同,同时各包也有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。
 
由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 大包式安装的作法截然不同,同时各包也有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。
 +
 +
==新闻==
 +
*[http://www.infoq.com/cn/articles/future-of-net-core 探讨.NET Core的未来] (2018.06)
 +
*[http://www.infoq.com/cn/news/2017/08/netcore2-sdk .NET Core 2 发布,支持.NET 标准版 2.0] (2017.08)
 +
*[https://blogs.msdn.microsoft.com/dotnet/2017/05/10/announcing-net-core-2-0-preview-1/ Announcing .NET Core 2.0 Preview 1] (2017.05)
 +
 +
==版本==
 +
[[文件:dotnet-milestone.png|right]]
 +
[https://github.com/dotnet/core/tree/master/release-notes .NET Core Release Notes]
 +
*8.0
 +
*7.0
 +
*[https://github.com/dotnet/core/tree/main/release-notes/6.0 6.0] November 08, 2021
 +
*[https://github.com/dotnet/core/tree/main/release-notes/5.0 5.0]
 +
*[https://github.com/dotnet/core/tree/main/release-notes/3.1 3.1]
 +
*[https://github.com/dotnet/core/tree/main/release-notes/3.0 3.0]
 +
*[https://github.com/dotnet/core/tree/main/release-notes/2.2 2.2]
 +
*[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===
 +
[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"
 +
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
  
 
==核心项目==
 
==核心项目==
*[https://github.com/dotnet/corefx .NET Core Libraries (CoreFX)]
+
[https://github.com/dotnet/core/blob/master/Documentation/core-repos.md .NET Core Repos]
*[https://github.com/dotnet/coreclr .NET Core Runtime (CoreCLR)]
+
*[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/roslyn .NET Compiler Platform (Roslyn)]
+
*[https://github.com/dotnet/roslyn .NET Compiler Platform (Roslyn)] 主要由[[C Sharp|C#]]编写
*[https://github.com/dotnet/cli .NET Command Line Interface(CLI tools)
+
*[https://github.com/dotnet/sdk .NET SDK] 主要由[[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==
 +
*[https://hub.docker.com/r/microsoft/dotnet/ dotnet image @ docker]
 +
*[https://github.com/dotnet/dotnet-docker dotnet docker @ github]
 +
 
 +
==区别==
 +
.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 的焦点是云工作负荷。'''
 +
 
 +
==迁移==
 +
*[https://blogs.msdn.microsoft.com/dotnet/2016/02/10/porting-to-net-core/ Porting to .NET Core]
 +
*[https://docs.microsoft.com/en-us/dotnet/articles/core/porting/index Porting to .NET Core from .NET Framework]
 +
*[https://docs.microsoft.com/en-us/dotnet/articles/core/migrating-from-dnx Migrating from DNX to .NET Core CLI]
 +
*[http://bytefish.de/blog/migrating_a_library_to_dotnetcore/ Migrating a library to .NET Core]
 +
 
 +
==用户==
 +
*[http://customers.microsoft.com/en-us/story/a-top-game-studio-of-netease-transforms-development-and-accelerates-time-to-market-with-net-core 网易游戏] 网易的“绝代双骄”手游前端采用Unity,后端采用.net core进行开发,据说能降低30%的人员成本,提高20%的开发速度。
  
 
==图集==
 
==图集==
 +
<gallery>
 +
image:dotnet-standard-versions.png|.NET Standard 版本
 +
image:Roslyn-compiler-api-model.png|Roslyn编译器API模型
 +
image:abp-ddd-microservice.png|ABP框架
 +
image:dotnet-microservices-eShopOnContainers-architecture.png|eShopOnContainers
 +
</gallery>
  
 
==链接==
 
==链接==
 +
*[https://www.microsoft.com/net/core .NET Core 微软官网]
 
*[https://github.com/dotnet .NET Core @ Github]
 
*[https://github.com/dotnet .NET Core @ Github]
 
*[http://www.dotnetfoundation.org/ .NET Foundation]
 
*[http://www.dotnetfoundation.org/ .NET Foundation]
 
*[https://docs.microsoft.com/en-us/dotnet/articles/core/index .NET Core Documentation]
 
*[https://docs.microsoft.com/en-us/dotnet/articles/core/index .NET Core Documentation]
 +
*[https://github.com/dotnet/docs.zh-cn .NET 中文文档]
 
*[https://docs.microsoft.com/en-us/dotnet/core/api/index .NET Core API Reference]
 
*[https://docs.microsoft.com/en-us/dotnet/core/api/index .NET Core API Reference]
  
 
[[category:.NET]]
 
[[category:.NET]]
 +
[[category:.NET Core]]
 +
[[category:Huihoo Foundation]]

2024年8月21日 (三) 08:06的最后版本

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%的开发速度。

[编辑] 图集

[编辑] 链接

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

变换
操作
导航
工具箱