.NetCore 入门篇:理解
(良心转载)原文地址: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需要做哪些准备?
- 基础的编程经验(.NET、Java、Python等皆可)
- Windows / Mac 作为开发环境
建议Windows,因为ken的开发环境是Windows,环境不同,操作会有差异
- IDE:Visual Studio 2017 / Visual Studio Code
- Linux 基本使用(推荐 CentOS、Ubuntu)
虚拟机安装教程:https://ken.io/serie/hyper-v-courses
CentOS快速上手:https://ken.io/serie/centos7-quickstart
Ubuntu快速上手:https://ken.io/serie/ubuntu-quickstart
如果实在不具备搭建Linux环境的条件,Windows也可以,但是不推荐
最新文章
- (转) Spring框架笔记(二十五)——NamedParameterJdbcTemplate与具名参数(转)
- 与Status Bar和Navigation Bar相关的一些东西
- SSAS:OLE DB 错误: OLE DB 或 ODBC 错误 : Login failed for user 'NT Service\MSSQLServerOLAPService'
- JMS笔记(一)
- 更改新建Asp.net WebForm的模板 的方法
- JAVA GUI学习 - JInternalFrame浮动窗口:可拖拽窗口(依赖于父窗口)
- activity管理类 appManager
- 时效性福利:MindManager2017 破解攻略
- 谷歌IAP:skusBundle array associated with key ITEM_ID_LIST cannot contain more than 20 items.
- Maven项目pom.xml 标签含义
- 【模板】KMP字符串匹配
- 【PAT】B1040 有几个PAT(25)(25 分)
- [Android 开发教程(1)]-- Saving Data in SQL Databases
- css 设置元素背景为透明
- Kafka(三)Kafka的高可用与生产消费过程解析
- 5.Python3标准库-日期和时间
- RequireJs学习笔记之Define a Module
- python 浮点运算 及 小数点精确位数
- java session特性
- Compiler Error C2872: ambiguous symbol
热门文章
- 解决MybatisPlus修改时空字段不修改问题
- 修改linux内核加载顺序
- c# 移除类中所有事件的绑定
- 深入理解Java对象
- jmeter对tomcat性能测试
- elasticsearch ik分词
- Git 合并单个文件
- OC-bug: Undefined symbols for architecture i386: ";_OBJC_CLASS_$_JPUSHRegisterEntity";, referenced from:
- 多线程之callable学习
- Jetty启动报Error scanning entry META-INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.class