.Net Core .Net FrameWork .Net 5对比
1、什么是.net Core和.net 5
.NET Core
.NET Core是适用于 windows、linux 和 macos 操作系统的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台 (Windows、Mac OSX、Linux) 能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。
由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET Core 会包含 .NET Framework 的类库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 打包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本
.Net5
NET 5 是 .NET Core 的下一步。该项目旨在通过以下几个关键方式改进 .NET:
制造一个可在任何地方使用的 .NET 运行时和框架, 并具有统一的运行时行为和开发人员体验。
通过充分利用 .NET Core、.NET Framework、Xamarin 和 Mono 来扩展 .NET 的功能。
从单个代码库构建该产品,开发人员( Microsoft 和社区)可以一起工作并一起扩展,从而改进所有方案。
2、编程对比
.net Framework Mvc中已经封装好了管道控制器路由等东西最大化的集成框架性的代码。
.net Core想对于.net Framework在框架上独立各个模块。通过IOC来实现用什么写什么的问题。减少代码的依赖和体积。像早些版本.net Core1.3时使用System.Drawing类库都需要引用Guget包来获取类库的支持。
.net 5对于.net Core来说开发层面没有过大的变化。依然采用.net Core的编写模式来进行。
3、部署环境的对比
.net Core和.net 5都支持跨平台部署。容器镜像的部署方式、可以在Windows、linux(centos、Ubuntu)等系统上部署。支持跨平台的部署。
.net Framework依赖于framework程序集和windows系统环境。只能部署在Windows系统上(Momo)Xamarin除外
4、底层对比
.net Framework:尽可能多而全并且通用的类库。当你创建好项目你会发现已经配置好管道Session和常用的一些插件。
.net Core:尽量独立各个类库,通过IOC的方式注册后才可以使用。
.net 5:在.net Core的基础上。优化各个类库尽可能少的独立各个类库的体积。
接下来上一张图片对比一下:
下面是我自己做的图有点丑。。。。呀好丑啊
第一张图是.Net Framework 就是相当于全家桶。你不需要操心什么直接买套餐就行了。
第二张图想到于.Net Core 只给你买个鸡腿,你需要其他的东西就去买其他的东西,最后组成你最想要的。
第三张图对比第二张图.Net Core 我虽然也是通过组装得到我想要的吃的。但是体积小了我可以组装更多我想要的。而且对比.net Core的最大变化是 包含的东西少了我可以支持全平台支持比如:手机端、物联网、人工智能、Web程序、桌面等等。
接下来放一张.net Core官网图片和.net 5的图片对比一下。
通过图片可以看到.net Core基于.net Framework和.net5基于.net Core想改变的东西。
通过图片可以看到 .net Core相对于.net Framework支持的环境多了linux和mac底层依赖有原先的.net Framework Libraries改为.net Core Libraries(后续版本都可以依赖.net standard)
想对于第一张图片第二张图片可以看出.net 5更像做的是让全平台各个端通用.net 5来实现代码的复用和学习成本,来统一江湖。
5、感谢观看
第一次写文档写的不好的多多见谅。以后我有时间会陆续写的,当做记录我的工作经历和成长,翻翻看回顾知识。