所在的位置: Web开发 >> HTTP >> 简析NETCore以及与nbsp

简析NETCore以及与nbsp

至微软公司推出.NET平台已近15年,在互联网快速迭代的浪潮中,许多语言已被淘汰,同时也有更多新的语言涌现,但.Net依然坚挺的站在系统开发平台的一线阵营中,并且随着.NETCore即将到来(年6月27日)的正式版,势必迎来新一轮春天。

一.NET的Framework们

要理解.NETCore就有必要了解之前的.NET平台的众多Framework们。年微软公司发布的第一个.NET框架————.NETFramework,不久后又发布了.NETCompactFramework用于在较小的移动设备(Windowsmobile),而.NETCompactFramework也含有一套类似.NETFramework体系(Runtime,Framework,ApplicationModel),它是一个复制精简版的.NETFramework。在数年间微软乐此不疲的推出了数个类似.NETFramework的框架,以用于在不同的设备和平台上运行。每个Framework都有类似的体系但又不完全相同的,这样Framework越来越多,对开发者来说不一样的设备即便功能相同也需要维护多套代码,增加了开发的复杂度。

二.NETCore的到来

微软对这些问题的重新思考和改进让.NETCore横空出世。.NETCore是一个开源的模块化的Framework,不管是开发web或移动设备都在同一个Framework(.NETCore)下运行,而且.NETCore也可在不同的操作系统上运行,包括Windows、linux、MacOS,实现了跨平台跨设备。更棒的是.NETCore在发布程序时不用事先安装Framework而是通过Nuget下载,这样在初次部署时就不用安装一个复杂而庞大Framework,而是按需下载。这种基于Nuget的按需加载铸就了.NETCore跨平台。

.NETCore构成体系如下:

1.Runtime

在.NETCore中有实现两种RunTime,NativeRuntime和CoreCLR。NativeRuntime将C#或VB.net代码直接转换为原生机器码。而CoreCLR是一个开源的JIT运行时,会将代码编译成中间语言(IL)在最终运行时再转换机器码。

2.UnifiedBCL

BaseClasslibrary即基础类,例如FileSystem、Console、XML操作等。

3.WindowsStoreAppModelASP.NETCore1.0

提供开发Windows系统的各种触屏设备和ASP.NET程序的一组基础库。

三.NETCore与.NET其他Framework的关系1.NETCore.NETFramework

.NETCore.NETFramework都是NETStandardLibrary的实现,一种是跨平台,而另一种是Windows下特有的,除实现NETStandardLibrary外.NETCore和.NETFramework都有各自特有的实现。.NETStandardLibrary是跨操作系统的关键所在,它定义了一组接口,而每个操作系统有各自的实现,.NETCore通过nuget可以动态下载当前操作系统的实现,从而实现跨操作系统(暨跨操作系统共享代码)。

.NETCore更依赖于Nuget,允许本地application在部署时动态下载需要的classlibrary。而.NETFramework需要在系统中预装。这样.NETCore的部署比.NETFramework更简单快速同样也更轻便。

2.NETCoreASP.NET

从上图可以看到ASP.NETCore有两种形态的存在:

ASP.NETCoreWebApplication(.NETCore)

依赖于.NETCore的ASP.NET只可以调用.NETCore的API,可以在多个操作系统上运行。(可见下图下半部分的ReferenceManager,在assemblies中没有.NETFramework中的库)

ASP.NETCoreWebApplication(.NETFramework)

依赖于.NETCore.NETFramework的ASP.NET可以调用.NETCore.NETFramework的API,只可以在Windows下运行。(可见下图上半部分的ReferenceManager,在assemblies中含有所有.NETFramework中的库)

3.NETCoreMono

Mono是.NETFramework的开源版本的实现,在某些特性上和.NETCore很类似比如开源,跨操作系统。目前.NETCORE会从Mono上吸取经验,发展壮大最终可以更好的在除Windows外的其他操作系统上运行。另外Mone支持的AppModels要比.NETCore多(例如WindowsForms)。

总结

微软CEO萨提亚·纳德拉睿智的决定抛弃以PC为中心,拥抱各种设备和平台,成为一家软件服务型企业。为了达成这种愿景必须构建新的微软生态链,囊括Windows,Linux,OSX及其他操作系统,覆盖X86/ARM等处理器以及不同的设备(包括PC,Phone,全息眼镜及其他)。这些足见微软的“野心”。随着.NETCore正式发布大战略迈出坚实的一步,6月27日让我们拭目以待吧。

以上内容有任何错误或不准确的地方请大家指正,不喜勿喷!

参考内容









































福州治疗白癜风的医院
云南最好的白癜风医院



转载请注明:http://www.guyukameng.com/http/1840.html