Net Framework 和 .Net Core的区别

 

1. .net 平台简介

.net 平台主要分为三个部分(.net 5 中据说会大一统,这我抛开.net 5了):.net Framework.net Corexamarin

  • .net Framework : 2002年发布,现在很多公司都在使用,可以开发:

    • window桌面程序:winform、UWP、wpf等

    • web应用程序:Asp.Net webform、Asp.Net MVC

  • .net Core : 2016年6月27号发布,是微软最新退出开源的、跨平台的平台,可以用来创建运行在mac、Linux上的应用程序

  • xamarin : 主要用来构建手机APP,主要使用的语言是C#语言(但是因为使用人数不多,所以可参考的案例较少)

1.1 在.net core 和 .net framework 之间如何选择

.net core.net framework 都可以写web程序,两者有很多共享的组件(ef 库以及其他库都可以在.net framework或.net core上运行),两者之间是可以共享代码的,但两者是存在根本的差异,这需要根据实现的目标进行选择

选择.net core

  • 有跨平台需求

  • 正在面向微服务

  • 正在使用Docker容器

  • 需要高性能和可扩展性的系统

选择.net framework

  • 当前项目使用的是.net framework(建议扩展而不是迁移)

  • 开发的程序中使用到在.net Core中暂不支持的第三方.net 库或者NuGet包

  • 使用到.net Core中暂不支持的技术(例如在.net core 2.x的时候是不支持winfrom的,.net core 3.x已经支持了)

    • WCF服务的实现目前在.net core 无法使用

    • Asp.Net Web窗体应用程序目前也是只可以在.net framework中使用

1.2 在.net core和.net framework中共享库

因为 .net core 是一个新兴的系统生态系统,所以有些之前在 .net framework 中使用的库在 .net core 中是无法使用的,为了尽快弥补这一空缺,Microsoft 引入了.net standard 以提供在微软生态下的公共标准,意思就是你可以创建直接用于 .net core 或 .net framework 的库(甚至包括 xamarin )。只要确保 .net standard 库的 NuGet 包添加到.net 应用中,就可以使用了。

.net standard 可以看作是可移植类库 PCL 的后继者,简化了针对不同平台的业务。在 PCL 基于平台能力的配置中,.net Standard 提供了精心选择的 API 集。

但是 .net Standard 不同的版本适配 .net core 或 .net framework 版本也是不同的,这感觉就像走了DLL地狱,来了 .net Standard 地狱

img

asp.net core 2.x 由 .net Standard 库组成,所以同时支持 .net core 运行和 .net framework 运行

.NET Core 以及与 .NET Framework的差异

1..NET Core是跨平台的。net  Framework仅支持在Windows系统上。
2..Net Core和 .Net Framework都 是NET Standard Library 的实现,
.NET Standard Library 是跨操作系统的关键所在,它定义了一组接口,而每个操作系统有各自的实现,
.NET Core通过nuget可以动态下载当前操作系统的实现,从而实现跨操作系统(暨跨操作系统共享代码)。
3..NET Core 更依赖于Nuget,允许本地application在部署时动态下载需要的class library。
而.NET Framework需要在系统中预装。这样.NET Core的部署比.NET Framework 更简单快速同样也更轻便。

 

 

posted @ 2022-10-25 15:58  海蓝7  阅读(8662)  评论(0编辑  收藏  举报