欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
.NET Core
(以“{{SeeWikipedia}} .NET Core 是.NET Framework的新一代版本,具有跨平台 (Windows、OS X、Linux) 能力的应用程序开发框架 (Applica...”为内容创建页面) |
小 (→链接) |
||
(未显示1个用户的47个中间版本) | |||
第1行: | 第1行: | ||
{{SeeWikipedia}} | {{SeeWikipedia}} | ||
+ | .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/core/blob/master/Documentation/core-repos.md .NET Core Repos] | ||
+ | *[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)] 主要由[[C Sharp|C#]]编写 | ||
+ | *[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上了解到此条目的英文信息 .NET Core Thanks, Wikipedia. |
.NET Core 是一个通用目的、模块化、跨平台的 .NET 开源实现。
目录 |
[编辑] 简介
.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的未来 (2018.06)
- .NET Core 2 发布,支持.NET 标准版 2.0 (2017.08)
- Announcing .NET Core 2.0 Preview 1 (2017.05)
[编辑] 版本
[编辑] 指南
[编辑] 切换版本
$ 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
[编辑] 卸载工具
$ 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 Runtime (CoreCLR) 主要由C#和C++编写,大量核心库libraries由C#编码。
- .NET Compiler Platform (Roslyn) 主要由C#编写
- .NET SDK 主要由C#编写
- .NET Core Common Language Libraries (CoreFX) 已合并进 Runtime,主要由C#编写
- LLILC is an LLVM based MSIL Compiler 已存档,主要由C++编写,用作 JIT
- .NET Command Line Interface(CLI tools) 已合并进 .NET SDK,主要由C#编写
[编辑] 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 的焦点是云工作负荷。
[编辑] 迁移
- Porting to .NET Core
- Porting to .NET Core from .NET Framework
- Migrating from DNX to .NET Core CLI
- Migrating a library to .NET Core
[编辑] 用户
- 网易游戏 网易的“绝代双骄”手游前端采用Unity,后端采用.net core进行开发,据说能降低30%的人员成本,提高20%的开发速度。