**1,.NET 经历14年,在Windows平台上的表现已经相当优秀,
**但是“跨平台、开源”却是其痛点,从16年开始.NET Core的出现将迎来.NET的真正意义上的跨平台和开源序幕。
.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。
.NET Core的源码放在GitHub上,由微软官方和社区共同支持。
下面了解一下.NET Framework和.NET Core这两个分支的异同。
2,NET Framework和.NET Core的结构体系
a.NET Framework 包含,Windows Form,WPF,ASP.NET
b.NET Core 包含,UWP,ASP.NET Core
c.Xamarin,新的.NET还包括第三个部分,即XAMARIN用于构建移动APP,包含iOS、 OS X 、Android等。
即所谓的.NET三架马车,下面是最新的.NET生态体系图:
从上图可以看出,.NET Framework和.NET Core及XAMARIN将是现在及未来.NET的三大部分,而它们三个都是独立于各自的,但都基于.NET标准库。
3,NET Framework和.NET Core特点
.NET Core较之前的.NET Framework 从性能和开发效率上都有很大的提升。关键是首次实现了.NET的完全跨平台能力的基础技术栈。
.NET Core 基于跨平台能力,并没有将与 GUI 高度相关的 API 移植到 .NET Core 内,因此像是 Windows Forms 或是 Windows Presentation Foundation (WPF) 并未移植到 .NET Core。
.NET Core 支持控制台应用程序 (Console Application) 以及类库 (Class Library) 类型的项目。
不过微软在其 Universal Windows Platform (UWP) 开发平台使用了 .NET Core,并且利用 .NET Native 技术将其性能提升至十分接近原生码的速度。
ASP.NET Core 则以控制台应用程序驱动其托管环境 Kestrel Server 以支持 ASP.NET Core 程序的运行。
a..NET Framework
(1)Windows应用程序的王者框架:.NET Framework用于创建基于Windows系统的应用程序,包括Windows From、WPF、ASP.NET MVC等。在Windows框架下的开发。.NET Framework仍是强项,今后一段时间将继续更新升级。
(2)开发语言选择:可选用C#,VB.NET,F#等众多语言开发。
b..NET Core
(1)跨平台 .NET Core 是微软推出的最新的跨平台的框架,用它可以创建的应用可以运行在MAC,Linux上 。 .NET Core 支持UWP 和 ASP.NET Core,UWP即Windows 10 中的Universal Windows Platform简称。即Windows通用应用平台,在Win 10 Mobile/Surface(Windows平板电脑)/PC/Xbox/HoloLens等平台上运行,uwp不同于传统pc上的exe应用也跟只适用于手机端的app有本质区别。它并不是为某一个终端而设计,而是可以在所有windows10设备上运行。
(2)开源 .NET Core从属于.NET基金会,由微软进行官方支持。使用MIT和Apache 2开源协议,文档协议遵循CC-BY
(3) 兼容性:从前面的图上看出.NET Core和.NET Framework基于.NET Standard Library。因此与.NET Framework,Xamarin,Mono等兼容。
(4)灵活部署机制:第一种.Portable applications(便携式应用)这种部署机制和传统的.NET Framework相似,只要目标平台上存在.NET Core Runtime即可。
第二种.Self-contained application(自宿主应用)顾名思义,这种部署机制将应用和运行时共同打包,即便目标平台上没有安装.NET Core Runtime也能正常使用第二种方式和.NET Native也是不一样的,仍然使用 CoreCLR,而.NET Native使用CoreRT作为运行时,详细信息请见dotnet/corert
(5)命令行工具:.NET程序所有的运行脚本都可以用命令行工具执行(cmd,bash)。
(6)语言选择:.NET Core 1.0版本中支持的编程语言仅有C#(F#和VB暂未实现)