为什么超过500万开发者选择了ASP.NET Core?

举报
哪吒编程 发表于 2022/02/07 00:41:34 2022/02/07
【摘要】 目录 一、What ASP.NET Core?二、Why ASP.NET Core?三、为什么选择这项技术?四、ASP.NET Core的优势具体可以梳理为以下几个方面:1、生成Web UI 和W...

一、What ASP.NET Core?

ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。

ASP.NET Core 应用可运行于 .NET Core 和完整的 .NET Framework 之上。构建它的目的是为那些部署在云端或者内部运行(on-premises)的应用提供一个优化的开发框架。它由最小开销的模块化的组件构成,因此在构建你的解决方案的同时可以保持灵活性。你可以在 Windows、Mac 和 Linux 上跨平台的开发和运行你的 ASP.NET Core 应用。

我们挑选了几个常用的web框架在Linux系统上进行性能测试,可以发现ASP.NET Core的性能可观。

在这里插入图片描述

二、Why ASP.NET Core?

如果要详细讨论.NET Core,就肯定离不开.NET Framework这个框架。自从2000年开始,经过多年的苦心经营,微软已经在Windows平台下构建了一个完整的支持多种设备的.NET生态系统。

微软在2002年推出了第一个版本的.NET Framework,这是一个主要面向Windows桌面(Windows Forms)和服务器(ASP.NET Web Forms)的基础框架。在此之后,PC的霸主地位不断受到其他设备的挑战,为此微软根据设备自身的需求对.NET Framework做了相应的简化和改变,不断推出了针对具体设备类型的.NET Framework,主流的包括Windows Phone、Windows Store、Silverlight和.NET MicroFramework等,它们分别对移动、平板和嵌入式设备提供支持。

与此同时,通过借助于Mono和Xamarin,.NET已经可以被成功移植到包括Mac OS X、Linux、iOS、Android和FreeBSD等非Windows平台。但是设备运行环境的差异性导致了针对它们的应用不能构建在一个统一的.NET Framework平台上,所以微软采用独立的.NET Framework平台来对它们提供针对性的支持。

由于这些不同的.NET Framework分支是完全独立的,这使我们很难开发一个支持多种设备的“可移植(Portable)”应用。微软目前发布的最新.NET Framework版本为4.7,作为整个.NET平台的基础框架,.NET Framework在不断升级的过程中,使自己变得更加强大和完备,但是在另一方面也使自己变得越来越臃肿。随着版本的不断升级,构成.NET Framework的应用模型、BCL和运行时(CLR)都在不断地膨胀。

就这样,因为自身的一些束缚和限制,想要做一些快速的迭代和更新,就变成了一件不是很容易的事,它就像一座大山,挡在了微软快速发展的高速路上。与此同时,随着整个互联网行业的分布式与跨平台的呼声愈发强烈,除了框架自身越来越臃肿之外,如何实现从强依赖Windows系统,到可以任意平台运行,这也是摆在微软面前的另一座大山。

从本质上讲,按照CLI规范设计的.NET Framework从其出生的那一刻就具有一定的跨平台的基因。由于采用了统一的中间语言,微软只需要针对不同的平台设计不同的虚拟机(运行时),就能弥合不同操作系统与处理器架构之间的差异,但是做起来并不是一帆风顺的。在过去十多年中,微软将.NET引入到了各个不同的应用领域,表面上看起来似乎欣欣向荣,但是由于采用完全独立的多目标框架的设计思路,导致针对多目标框架的代码平台只能通过PCL,这种“妥协”的方式来解决。如果依然按照这条道路走下去,.NET的触角延伸得越广,枷锁将越来越多。

所以.NET 已经到了不得不做出彻底改变的时候了,当然,微软并不是从0开始,.NET Framework这个巨人,为微软能做一个可以跨平台并能快速迭代的新框架,提供了巨大的帮助。

三、为什么选择这项技术?

作为下一代ASP.NET框架,ASP.NET Core(目前最新.NET6版本)在各方面都未让开发者失望,数百万开发人员在使用或使用过ASP.NET 4.x创建Web应用。ASP.NET Core是对ASP.NET 4.x的重新设计,其中包括体系结构上的更改,产生了更精简、更模块化的框架。

在这里插入图片描述

四、ASP.NET Core的优势具体可以梳理为以下几个方面:

1、生成Web UI 和Web API的统一场景

ASP.NET Core天生基于RESTFUL风格,每个Url直接对应到具体的资源上,对资源的增删改查都默认走HTTP的POST、DELETE、PUT、Get方式而不是自己在参数包中指定。
Razor Pages 基于页面的编码方式简单高效:Razor Pages简化了传统的MVC模式,仅仅使用视图跟模型来完成网页的渲染跟业务逻辑的处理。模型里包含了数据跟方法,通过绑定技术跟视图建立联系。

2、Blazor

允许在浏览器中使用C#和JavaScript,共享全部是用的.NET编写的服务器端和客户端应用逻辑。

3、跨平台开发

能够在Windows、MacOs和Linux上进行开发和运行,打破了.NET 只能基于Windows平台使用困境。

4、开放源代码和以社区为中心

众所周知,ASP.NET Core源代码开源,托管于.NET基金会管理。以开发者为中心,赋能开发者,共筑良好社区。目前国内外正在掀起一股.NET热潮!

5、优点颇多,未来发展潜力巨大

ASP.NET Core能够托管在各类代理服务器(Kestrel、IIS、Nginx、Docker、Apache)并且拥有轻型的高性能模块化HTTP请求管道,内置依赖注入降低耦合。

五、 ASP.NET Core未来可期

在这里插入图片描述
截止至 2021年5月,全球有超过500万的.NET开发者。2020年的跨平台.NET Core 活跃开发者数量增长超过60万。而这些数据仅来源于Visual Studio IDE,不包含使用其他IDE的开发者。在 2020年的 Stack OverFlow 开发者年度调查报告中,ASP.NETCore 被评为最受欢迎的开发框架。

今年随着 VS2022以及C#10的发版,.NET也迎来了一个最新的.NET6平台:性能上又有了大幅提升,支持热重载,减少应用重启,从而提升工作效率、提供了更新更全的API,社区也随之发展壮大,Config大会的举办,各个开源社区的兴起…总之.NET从未停止前进的步伐,一切都在如火如荼的进行,朝着最好的方向出发。

文章来源: blog.csdn.net,作者:哪 吒,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/guorui_java/article/details/122795731

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。