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

.NET
Core是NET的ECMA标准的一种新的实现。目前.NET已有Framework,Mono,Unity等实现。

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

2 具有哪些特点?

  • 跨平台:
    可以在 Windows、macOS

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

  • 跨体系结构保持一致:
    在多个体系结构(包括 x64、x86

    ARM)上以相同的行为运行代码。

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

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

  • 兼容性:.NET
    Core 通过
    .NET
    Standard

    .NET Framework、Xamarin

    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的代码可以共存在一个解决方案中。

.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
Core
Mono是一样的。

.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预览版即将支持WinForm和WPF程序开发。

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

关于.NET Core的一些问题和疑惑的更多相关文章

  1. ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

    在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...

  2. ASP.NET Core 之 Identity 入门(二)

    前言 在 上篇文章 中讲了关于 Identity 需要了解的单词以及相对应的几个知识点,并且知道了Identity处在整个登入流程中的位置,本篇主要是在 .NET 整个认证系统中比较重要的一个环节,就 ...

  3. .net core快速上手

    2014年11月12日的Connect ();开发者活动上宣布将.NET堆栈基于MIT协议开源,并且提供开源保证,托管在Github上.当时的版本与最终目标相距甚远,然而有一点可以肯定的是,这是一个与 ...

  4. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  5. Docker容器环境下ASP.NET Core Web API应用程序的调试

    本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...

  6. [转]教你实践ASP.NET Core Authorization

    本文转自:http://www.cnblogs.com/rohelm/p/Authorization.html 本文目录 Asp.net Core 对于授权的改动很友好,非常的灵活,本文以MVC为主, ...

  7. 教你实践ASP.NET Core Authorization

    本文目录 Asp.net Core 对于授权的改动很友好,非常的灵活,本文以MVC为主,当然如果说webapi或者其他的分布式解决方案授权,也容易就可以实现单点登录都非常的简单,可以使用现成的Iden ...

  8. ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?

    前言 事情不太多时,会时不时去看项目中同事写的代码可以作个参考或者学习,个人觉得只有这样才能走的更远,抱着一副老子天下第一的态度最终只能是井底之蛙.前两篇写到关于断点传续的文章,还有一篇还未写出,后续 ...

  9. [转]ASP.NET Core 之 Identity 入门(二)

    本文转自:http://www.cnblogs.com/savorboard/p/aspnetcore-identity2.html 前言 在 上篇文章 中讲了关于 Identity 需要了解的单词以 ...

随机推荐

  1. HNUSTOJ-1690 千纸鹤

    1690: 千纸鹤 时间限制: 1 Sec  内存限制: 128 MB提交: 992  解决: 296[提交][状态][讨论版] 题目描述  圣诞节快到了,校园里到处弥漫着粉红色的气息.又是一个情侣秀 ...

  2. kotlin学习(9)注解

    我们一般使用类和函数要说明类和函数的确切名称.调用一个类,你需要知道它定义在哪个类中,还有它的名称和参数的类型. 注解和反射可以给你超越这个规则的能力,让你编写出使用事先未知的任意类的代码.注解赋予这 ...

  3. 一条简单的 SQL 查询语句到底经历了什么?

    一.MySQL 基础架构   整体来说 MySQL 主要分为两个部分,一个部分是:Server 层,另一部分是:存储引擎层. 其中 Server 层包括有连接器.查询缓存.分析器.优化器.执行器等,存 ...

  4. logstash启动时找不到自定义的JAVA_HOME环境变量

    logstash java 版本问题 配置logstash收集应用日志时出现报错,说是找不到JAVA_HOME环境变量,但是明明已经设置了 logstash要求java 1.8以上,查看生产环境: [ ...

  5. mock.js模拟ajax数据请求

    在我们开发过程中存在着前端页面ui完成了,但是没有接口进行联调数据的情况,现在介绍一下用mock.js来完成数据的请求.这样在后期我们的后台接口完成后只需要更改请求的接口名字即可!前提是你的模拟字段名 ...

  6. socket客户端的备份机制

    SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0); //设定服务器的地址信息 SOCKADDR_IN addrSrv; addrSrv.sin_a ...

  7. IP地址与子网掩码逐位相与

    逐位相与说的其实就是子网掩码与网络地址相同位置的数字相加,当和为2的时候该位置写作1,否则的话写作0

  8. 面试官:SpringBoot jar 可执行原理,知道吗?

    文章篇幅较长,但是包含了SpringBoot 可执行jar包从头到尾的原理,请读者耐心观看.同时文章是基于 SpringBoot-2.1.3进行分析.涉及的知识点主要包括Maven的生命周期以及自定义 ...

  9. css使既有浮动又有左右margin的多个元素两端对其

    两端对齐效果 如上图中红色的9个div它们中间有间距,而最左边和最右边是没有间距的,这种布局如果使用css3的flex来实现是非常简单的,而如果要使用float布局就需要一些特殊的技巧了. 实现原理 ...

  10. 【Linux】CentOS6安装jdk1.8

    1.查看官网下载地址 接受协议后,点击下载链接 查看发出的请求,获得下载地址 其中后面的AuthParam参数为本次下载的即时参数,每次都不一样 2.下载安装包 下载完后改个名 wget https: ...