一、.net core的起源
谈到.NET Core,就不能不提它的前身.NET。当年Java风头正盛,微软也对Java青睐有加,windows平台上的Java虚拟机就是微软依据jvm标准开发的,据称是当时性能最佳的Java虚拟机。然而,微软有自己的小算盘,试图将Java与Windows平台捆绑,增加一些Windows特有的功能。Sun公司对此不满,导致双方关系破裂,微软随后推出了.NET。.NET从诞生之初就借鉴了Java的许多特性,并在语言特性和窗体开发等方面逐渐超越了Java。Java在1.6版本后发展缓慢,后来也在语言特性上借鉴了.NET,这部分原因也归咎于Sun公司的表现不佳。https://www.php.cn/link/250aa0985d9e292b68c8841c3c95aa10
尽管.NET一直发展良好,并且出现了如wpf、Unity3D等具有竞争力的框架,但在一些大型项目中,尤其是互联网公司,.NET并不受欢迎。这是因为.NET不是开源的,也不是跨平台的,这导致了以下问题:
成本:选择.NET意味着需要选择visual studio和Windows Server,许可证费用是不可忽视的成本。 生态:缺乏社区的贡献,.NET难以孕育出优秀的框架。 人才:无法吸引一线互联网公司的优秀工程师,因为他们更倾向于使用Java、php等。 虽然有Mono这样强大的框架,可以让.NET在linux上运行,但这还不够,因为Mono只能发挥.NET的部分功能。此外,随着容器技术的兴起,.NET与Windows的强依赖性使得其难以适应docker等新技术。总之,迫于形势,微软推出了.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的预览版本已经发布,.NET Core 2.0基本相当于.NET Framework 4.6.1。从2016年6月发布1.0版本到2017年6月发布2.0版本,仅用了一年时间,达到这种程度,微软的努力可见一斑。
三、学习.NET Core需要做哪些准备? 基础的编程经验(.NET、Java、python等皆可) Windows / Mac作为开发环境(建议使用Windows,因为开发环境是Windows,环境不同操作会有差异) ide:Visual Studio 2017 / visual studio code Linux基本使用(推荐centos、ubuntu) 虚拟机安装教程:https://www.php.cn/link/db34fbf0a135038c9c9102e028c614be CentOS快速上手:https://www.php.cn/link/dad0eb8ef352b656351ef2c8285ad148 Ubuntu快速上手:https://www.php.cn/link/e0b48316d133d5b9badb5fd83ac49dd0 如果实在不具备搭建Linux环境的条件,Windows也可以,但不推荐。