.Net Framework 和 .Net Core的区别
1. .net 平台简介
.net 平台主要分为三个部分(.net 5 中据说会大一统,这我抛开.net 5了):.net Framework
、 .net Core
和 xamarin
-
.net Framework
: 2002年发布,现在很多公司都在使用,可以开发:-
window桌面程序:winform、UWP、wpf等
-
web应用程序:Asp.Net webform、Asp.Net MVC
-
-
.net Core
-
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 地狱
asp.net core 2.x 由 .net Standard 库组成,所以同时支持 .net core 运行和 .net framework 运行
文中使用到了其他博客提到的一些内容:
https://www.jianshu.com/p/78c7590674d4
https://www.cnblogs.com/itzhangxp/p/8322364.html
https://blog.csdn.net/weixin_30312557/article/details/95216051