(良心转载)原文地址:https://ken.io/note/dotnet-core-qucikstart-preface

一、.NET Core的诞生

聊 .NET Core,就不得不说他的爸爸 .NET。
当年Java刚刚兴起,如火如荼,微软也非常推崇Java,当时Windows平台的Java虚拟机就是微软按照JVM标准实现的,据说也是当时性能最好的Java虚拟机。但是微软也是有私心的,微软总想搞点Windows平台上的特性,有点想把Java绑定到Windows平台上的味道,另外Sun公司确实有点小心眼,于是Sun公司就跟微软闹掰了,然后微软就推出了 .NET,.NET从出生开始其实就借鉴了Java,然后又一步步在语言特性、窗体开发等方面实现了超越。Java在1.6版本以后发展缓慢,后面Java也在语言特性上借鉴了.NET。当然,这也是由于Sun公司不太争气。https://www.zhihu.com/question/22814456

.NET虽然一直发展的不错,也有WPF、Unity3D这样具有竞争力框架的出现。
但是.NET平台在一些较大的项目,尤其是不受互联网公司的喜爱。就是因为.NET不是开源的框架,也不是可跨平台的框架,那就会带来以下问题:

  • 钱:选择.NET就要选择Visual Studio,Windows Server,license是不可忽视的成本
  • 生态:没有来自于社区的贡献,那.NET没有诞生优秀框架的土壤

纵使有Mono这么强大的框架,可以让 .NET 跑在Linux上,但是这还不够。
毕竟Mono只能发挥.NET部分有限的能力
另外,马上容器时代都要来了,跟Windows的强依赖,如何上Docker?
当然这这是ken能看到的一部分原因吧,总之,形式所迫,拥抱变化,.NET Core应运而生。

二、.NET Core 与 .NET Framework的区别

.NET Core 就是.NET Framework的区别的开源且跨平台版本
.NET Core 虽然是.NET Framework的开源版本,但微软毕竟不能维护两个不同的分支
一个跑在Windows上,一个跑在Linux(Unix Like)系统上,所以微软抽象出来一个标准库
.NET Core 与 .NET Framework 都必须实现标准库的API ,就这样.NET Core、.NET Framework、XAMARIN成了三兄弟,分别为不同的平台服务。

现在.NET Core 2.0 Preview版本已经发布,.NET Core 2.0 基本等于 .NET Framework 4.6.1,从2016年6月 1.0发布到2017年6月 2.0发布,仅仅1年,达到这种程度,可见微软还是很给力的

三、学习 .NET Core需要做哪些准备?

.NetCore 入门篇:理解的更多相关文章

  1. 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序

    如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...

  2. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  3. NetCore入门篇:(八)Net Core项目使用Controller之三

    一.简介 1.本节主要说明入参的几种接收方式 二.不限定模式 1.定义一个id入参与一个model入参. 2.get\post分别查看访问效果. api代码 public class OneContr ...

  4. NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json

    一.简介 1.读取配置文件是开发过程中使用非常频繁的操作.属称”不能写死“ 二.NetCore读取配置文件 1.新建一个静态公共变量,属称单例. 2.在程序Startup启动时,将系统变量传递给单例. ...

  5. NetCore入门篇:(九)Net Core项目使用Session及用Redis做分布式

    一.简介 1.因为Net Core默认是没有启动Session功能的,如果需要使用,需要通过代码开启. 2.本篇说明如果启用默认Session实现,即Session存到内存中. 3.本篇扩展说明如何用 ...

  6. NetCore入门篇:(六)Net Core项目使用Controller之一

    一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择完全抛弃传统mvc模式,使用html + webapi模 ...

  7. NetCore入门篇:(五)Net Core项目使用静态文件

    一.简介 1.Net Core默认无法访问静态文件,需要在Startup通过代码添加定义. 2.本文介绍两种静态文件目录实现方式. 二.启用默认目录 1.添加图片文件 2.测试访问结果(不能访问) 3 ...

  8. NetCore入门篇:(一)Net Core环境安装

    一.下载Visual Studio 2017 1.下载地址:https://www.visualstudio.com/zh-hans/downloads/ 2.选择要下载的版本 二.安装Net Cor ...

  9. NetCore入门篇:(十二)在IIS中部署Net Core程序

    一.简介 微软已经为net在iis中的部署提供了良好的支持,在IIS中部署NetCore是一件很容易的事. 二.在IIS中部署Net Core程序 1.微软官方文档有详细说明.进入 2.如果你已经熟悉 ...

随机推荐

  1. css隐藏页面元素的方法

    用css隐藏页面元素有许多种方法. 第一种方法[opacity: 0;] opacity属性通常用于设置一个元素的透明度,从另一个角度来看,如果透明度为0,也就从视觉上隐藏了该元素. 这个属性不是为改 ...

  2. sentry 9.1.1docker版onepremise过程记录

    sentry安装:https://github.com/getsentry/onpremise正确使用此文档安装步骤,安装版本9.1.1-onbuild,这个需要自改Dockerfile. 备注:构建 ...

  3. curl命令查看时间信息

    参考:https://blog.csdn.net/jackyzhousales/article/details/82799494 示例:curl www.baidu.com -w "time ...

  4. 听说看了这篇文章就彻底搞懂了什么是OPC(上)

    从2000年初以来,我们就一直在使用OPC软件互操作性标准,而那些正准备踏入和想要踏入工业自动化领域的人们却对这些含义感到困惑. 所以在本中,我将系统地为你梳理OPC知识. OPC首字母缩写词代表什么 ...

  5. Java垃圾回收。

    一:如何确定哪些对象应该被回收.  1.引用记数法.在对象中添加一个引用计数器,每当有一个地方引用它时,计数器加一,引用失效时,计数器减一,当计数器为0时,该对象是不可用的.   i:缺陷:会产生循环 ...

  6. JSON Web Token 使用详解

    JWT 是什么? JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案.它是有三部分组成,示例如下,具体的讲解如下(jwt 是不会有空行的,下面只是为了显示,便使用了换行看着比较 ...

  7. GCN 简单numpy实现

    `#参考:https://blog.csdn.net/weixin_42052081/article/details/89108966 import numpy as np import networ ...

  8. Python从零开始——迭代器与生成器

    一:迭代器 二:生成器

  9. Jenkins + Pipeline + Git + Maven (十)

    一.准备环境介绍 192.168.5.71 # gitlab 仓库IP 192.168.5.72 # 开发环境,用于提交代码等 192.168.5.73 # tomcat 部署solo服务站点 192 ...

  10. 使用git的几个常用指令

    1. 移除git:rm -rf .git/ 2.查看结果:ls -al 3.语法糖(查看列表):ll 4.将远程库的内容,更新到本地:git pull origin master: 5.添加到本地仓库 ...