.NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别介绍
前段时日微软(microsoft)正式发布了.net core 2.0,在很多开发社区中反响不错。但还是有一些开发者发出了疑问,.net core、xamarin、.net standard和.net framework之间有哪些不同呢?本文就为大家简单描述一下这四者之间的区别。
.net core
.net core是免费、跨平台的,是托管框架的开源实现。它支持4种类型的应用程序:控制台、http://asp.net core、云和通用windows平台(uwp)。windows forms和windows presentation foundation(wpf)并不包含在.net core中。
从技术上讲,.net core仅支持控制台应用程序。http://asp.net core和uwp是以.net core为基础构建的应用程序模型。
与.net framework不同,.net core没有作为windows组件考虑。因此,更新是以nutget包的形式,而不是通过windows update。由于.net core运行时安装成了app-local,而应用程序升级是通过包管理器完成的,所以应用程序可以关联特定的.net core版本以及单独升级。
.net standard
托管框架的每一种实现都有一套自己的基类库。基类库(bcl)包含诸如异常处理、字符串、xml、i/o、网络和集合这样的类。
.net standard是一项实现bcl的规范。由于.net实现需要遵循这项规范,所以应用程序开发人员就不用担心每一种托管框架实现的bcl不同。
框架类库(fcl),如wpf、wcf、http://asp.net,不包含在bcl中,因此,也就不包含在.net standard中。
.net standard与.net实现之间的关系就和html规范与浏览器之间的关系一样。后者是前者的实现。
因此,.net framework、xamarin和.net core,每一种托管框架都实现了.net standard中的bcl。随着计算机工业不断推出新的硬件和操作系统,将来还会出现新的.net托管框架。该标准让应用程序开发人员知道,他们可以依赖于一套始终如一的api。
每个.net版本都对应一个.net standard版本。
api一致,将应用程序移植到不同的托管实现以及提供工具都会更简单。
.net standard被定义为一个单独的nuget包,因为所有的.net实现都必须支持它。工具变得简单了,因为对于特定的版本,它们有一套相同的api。你还可以针对多个.net实现构建一个库项目。
你还可以构建特定平台api的.net standard封装器。
.net standard vs 可移植类库
可移植类库做的不是同一件事吗?
可移植类使用多个平台均都支持的通用api。因此,支持的平台越多,可用的api就越少,而且,对于特定的平台组合,很难知道到底支持哪些api。对于一个新平台,已有的pcl必须重新编译。pcl还需要微软针对每个平台创建一个新的框架实现分支。
由于.net standard确定了api,而不是一个实现,所以不需要重新编译应用程序。任何新发布的.net实现都实现了必须的库。应用程序不需要重新编译就可以运行在新的硬件平台或操作系统上。从理论上讲,在调用api时可能会捕获到notsupportedexception异常,但那种情况应该很少见。
小结
- .net standard是一项api规范,每一个特定的版本,都定义了必须实现的基类库。
- .net core是一个托管框架,针对构建控制台、云、asp.net core和uwp应用程序进行了优化。每一种托管实现(如xamarin、.net core或.net framework)都必须遵循.net standard实现bcl。
- .net framework用于构建桌面应用程序和运行在互联网信息服务器(iis)上的http://asp.net应用程序。它是第一个托管框架。
- xamarin则是一个用于构建ios、android、macos和桌面应用程序的框架。
- 以上所述是小编给大家介绍的.net core、xamarin、.net standard和.net framework四者之间的区别,希望对大家有所帮助。在此也非常感谢大家对网站的支持!
上一篇: Cesium可视域分析
下一篇: C# 摇杆设备连接,获取键值