.NET Framework概述

什么是 .NET Framework?

.NET Framework 是为其运行的应用提供各种服务的托管执行环境。 它包括两个主要组件:公共语言运行时 (CLR),它是处理运行应用的执行引擎;.NET Framework 类库,它提供开发人员可从其自己的应用中调用的已测试、可重用代码库。 .NET Framework 提供的用于运行应用的服务包括:

  • 内存管理。 在许多编程语言中,程序员负责分配和释放内存并处理对象生存期。 在 .NET Framework 应用中,CLR 代表应用提供这些服务。
  • 常规类型系统。 在传统编程语言中,基本类型由编译器定义,这将使跨语言互操作性复杂化。 在 .NET Framework 中,基本类型由 .NET Framework 类型系统定义,并且是面向 .NET Framework 的所有语言所共有的。
  • 一个全面的类库。 处理常见的低级编程操作时,程序员可通过 .NET Framework 类库使用类型及其成员的易访问库,而不必编写大量代码。
  • 开发框架和技术。 .NET Framework 包括用于特定区域应用开发的库,如用于 Web 应用的 ASP.NET,用于数据访问的 ADO.NET 以及用于面向服务的应用的 Windows Communication Foundation。
  • 语言互操作性。 面向 .NET Framework 的语言编译器发出名为公共中间语言 (CIL) 的中间代码,反过来,通过公共语言运行时在运行时进行编译。 借助此功能,使用某种语言编写的例程可由另一种语言访问,程序员可以专注于使用其首选语言创建应用。
  • 版本兼容性。 除少数例外,使用特定版本的 .NET Framework 开发的应用无需在更高版本中修改即可运行。
  • 并行执行。 通过允许同一台计算机上存在公共语言运行时的多个版本,.NET Framework 可帮助解决版本冲突。 这意味着应用的多个版本可以共存,并且应用可在构建它的 .NET Framework 版本上运行。 并行执行适用于 .NET Framework 版本组 1.0/1.1、2.0/3.0/3.5 和 4/4.5.x/4.6.x/4.7。
  • 多定向。 通过定向 .NET Standard,开发人员可创建在多个 .NET Framework 平台(例如,Windows 7、Windows 8、Windows 8.1、Windows 10、Windows Phone 和 Xbox 360)上工作的程序集。

上述描述应用自(MSDN)[https://docs.microsoft.com/zh-cn/dotnet/framework/get-started/index]

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

.NET Core

微软对这些问题的重新思考和改进让 .NET Core横空出世。

.NET Core是一个开源的模块化的Framework,不管是开发web或移动设备都在同一个Framework(.NET Core)下运行,而且 .NET Core也可在不同的操作系统上运行,包括Windows、linux、MacOS,实现了跨平台跨设备。

更棒的是 .NET Core 在发布程序时不用事先安装Framework而是通过Nuget下载,这样在初次部署时就不用安装一个复杂而庞大Framework,而是按需下载。这种基于Nuget的按需加载铸就了 .NET Core 跨平台。

.NET Core 构成体系如下:

  • Runtime 在 .NET Core 中有实现两种RunTime,NativeRuntime 和 CoreCLR。NativeRuntime 将C# 或 VB.net 代码直接转换为原生机器码。而CoreCLR是一个开源的JIT运行时,会将代码编译成中间语言(IL)在最终运行时再转换机器码。
  • Unified BCL Base Classlibrary即基础类,例如 FileSystem、Console、XML操作等。
  • Windows Store AppModel & ASP .NET Core 1.0 提供开发Windows系统的各种触屏设备和ASP.NET程序的一组基础库。

说点人话

先说说什么是 .NET Framework,这个东西呢,简单来说,是→两个部分构成,一个叫做公共语言运行时,一个呢,是类库(不是内裤,南方同学注意发音)。

公共语言运行时(Common Language Runtime)有时候也被称为 .NET运行时(.NET Runtime),有点类似于Java中的JVM,这里我们姑且就把他理解为,解释你所编写的C#代码(或则F#,不可否认.NET是多语言平台)给计算机,并让其执行的一个工具,细究起来,就涉及到了编译原理,计算机组成原理和很多很多计算机理论知识,嗯,推荐一本我自己可能都不会去看的书——《CLR via C#》。

.NET Framework 类库呢,就是是把我们常用的一些方法和类,封装起来,便于开发人员直接调用而不用重复编写。

那么.NET Core呢?

同样的,.NET Core也提供了CLR和类库,用于开发。所以呢,.NET Core是处在一个与 .NET Framework的同级的地位,微软推出其是为了更好的部署跨平台的战略。同时推出的 ASP.NET CoreASP.NET Core MVC等用于web开发,同时,也提供了UWP通用应用和Xamarin跨平台开发的应用。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Visual Studio 2008 Service Pack 1 - BETA发布了

Visual Studio 2008 SP1 提供了对Visual Studio 2008的各项改进,支持SQL Server 2008和ADO.NET的新特性...

21760
来自专栏张善友的专栏

mono 1.2.3发布了

    Mono于昨天发布了1.2.3版本,这个版本的还是修复bug和实现API,这个版本共实现了1993个API,你可以用Mono的一个工具Moma,Mom...

21490
来自专栏逸鹏说道

01.NetCore概述

.NET Core 是一个通用开发平台,由 Microsoft 和 GitHub 上的 .NET 社区共同维护。 它是跨平台的,支持 Windows、macOS...

33350
来自专栏张善友的专栏

开源Mono框架将C#编程带到iPhone、Android和Wii

Mono,作为.NET运行库的开源实现,正在将微软的技术带到未曾预料到的地方,包括iPhone,Android和Wii。 根据Novell公司的首席Mono...

29970
来自专栏张善友的专栏

ASP.NET MVC 1.0发布

Microsoft已经发布了ASP.NET Model-View-Controller (MVC) web框架1.0版,这是微软采用开源协议发布,并且同开发社区...

225100
来自专栏葡萄城控件技术团队

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC...

1.3K70
来自专栏张善友的专栏

ASP.NET开发人员需要学习ASP.NET MVC么?

InfoQ上有篇文章ASP.NET开发人员需要学习ASP.NET MVC么? 文章已经覆盖了绝大多数对于学习/使用ASP.NET MVC的观点。 我觉得ASP....

21190
来自专栏程序你好

.NET Core 3将支持Windows桌面应用

10430
来自专栏jessetalks

极简版ASP.NET Core学习路径及教程

绝承认这是一个七天速成教程,即使有这个效果,我也不愿意接受这个名字。嗯。 视频系列已出: http://www.cnblogs.com/jesse2013/p/...

44470
来自专栏Windows Community

New UWP Community Toolkit

概述 UWP Community Toolkit 是一个 UWP App 自定义控件、应用服务和帮助方法的集合,能够很大程度的简化和指引开发者的开发工作,相信广...

371110

扫码关注云+社区

领取腾讯云代金券