关于.NET Core的一些问题和疑惑


1 为什么会出现.NET Core这个东西?即它为了解决什么问题。

.NET CoreNETECMA标准的一种新的实现。目前.NET已有FrameworkMonoUnity等实现。

原先所有的.NET程序(Mono不在范围内)仅在windows平台环境下运行,这严重限制了.NET的生态扩展,所以.NET Core解决了.NET跨平台可移植的问题,可以在Windows, LinuxMacOS下开发并部署运行。

2 具有哪些特点?

  • 跨平台: 可以在 WindowsmacOS Linux 操作系统上运行。 跨平台 ASP.NET Web 应用、跨平台控制台应用、跨平台库和框架、UWP 应用。

  • 跨体系结构保持一致: 在多个体系结构(包括 x64x86 ARM)上以相同的行为运行代码。

  • 命令行工具: 包括可用于本地开发和持续集成方案中的易于使用的命令行工具。

  • 部署灵活: 可以包含在应用或已安装的并行用户或计算机范围中。 可搭配 Docker 容器使用。

  • 兼容性:.NET Core 通过 .NET Standard.NET FrameworkXamarin Mono 兼容。

  • 开放源代码:.NET Core 平台是开放源代码,使用 MIT Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目。

  • Microsoft 支持:.NET Core Microsoft 依据 .NET Core 支持提供支持。

3 .NET Core.NET中处与什么位置?与原有的.NET Freamwork有什么关系和不同?

.NET Core.NET技术的一种新的实现,而不是.NET Framework的子集。.NET Core的代码和Framework的代码可以共存在一个解决方案中。

扫描二维码关注公众号,回复: 6309511 查看本文章

.NET Core .NET Framework 上均实现了 .NET API(虽然有时底层的实现不同)。同时,.NET Core .NET Framework 均有对方不具备的 API 和功能。例如,.NET Framework 有多个 .NET Core 不具备的 GUI 框架和特定于 Windows API。同样地,.NET Core .NET Framework 缺少的跨平台功能和 API

.NET Core 不支持所有 .NET Framework 应用模型。 具体而言,它不支持 ASP.NET Web 窗体和 ASP.NET MVC,但支持 ASP.NET Core MVC已宣布 .NET Core 3 将支持 WPF Windows 窗体


4 .NET Core由哪些部分组成?

.NET Core 包括以下部分:

  • .NET Core 运行时:提供类型系统、程序集加载、垃圾回收器、本机互操作和其他基本服务。 .NET Core 框架库提供基元数据类型、应用编写类型和基本实用程序。

  • ASP.NET 运行时:提供框架以生成基于新式云的 Internet 连接的应用程序,例如 Web 应用、IoT 应用以及移动后端。

  • .NET Core CLI 工具和语言编译器(Roslyn F#):提供 .NET Core 开发人员体验。

  • dotnet 工具:用于启动 .NET Core 应用和 CLI 工具。 它选择运行时并托管运行时,提供程序集加载策略并启动应用和工具。

这些组件采用以下方式分布:

5 Mono比较

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

就这个角度来说,.NET CoreMono是一样的。

.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 的焦点是云和桌面工作负载。

6 .NET Core能做些什么事情?

可以使用 C#Visual Basic F# 语言编写适用于 .NET Core 的应用程序和库。


7 怎么安装?


8 操作入口和界面?

.NET Core的项目工程使用CLI作为操作界面,它是一个命令行程序。常见的命令如下:


命令

说明

dotnet new

使用 C# 语言初始化用于类库或控制台应用程序的有效项目。

dotnet restore

还原在指定项目的 project.json 文件中定义的依赖项。依赖项通常是您在应用程序中使用的 NuGet 包。

dotnet build

生成您的代码! 此命令将生成适用于您的项目的中间语言 (IL) 二进制。如果项目是控制台应用程序,则产生的输出是可执行的,您可以立即运行。默认情况下,生成命令会将生成的程序集和可执行文件(如果适用)输出到调用位置目录的 bin 目录中。

dotnet test

如果不支持运行测试,则不会出现适合的工具。此命令让您可以使用在 project.json 文件中指定的运行程序运行一组测试。目前支持 xUnit NUnit 测试运行程序。

dotnet publish

发布在目标计算机上运行的应用程序。

dotnet pack

pack 命令会把您的项目打包成 NuGet 包。输出一组 nupkg 文件后,您可以将其上载至您的源,或使用本地文件夹替代将其用于还原操作。

dotnet run

运行命令将编译并运行您的应用程序。您可以将其看作没有 Visual Studio Ctrl+F5 模拟。


9 如何部署?与原先的.NET程序的部署有什么不同?



10 前景和规划

从目前微软在.NET Core上的更新速度以及开发计划上看,.NET Core的发展前景非常好,且逐步完善并向.NET Framework功能集合靠拢。比如.NET Core 3.0预览版即将支持WinFormWPF程序开发。

Mono的发展逐步转移到移动开发上。

猜你喜欢

转载自www.cnblogs.com/chorulex/p/10950141.html