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的性能可观。

在这里插入图片描述

1.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的优势具体可以梳理为以下几个方面:

生成Web UI 和Web API的统一场景:ASP.NET Core天生基于RESTFUL风格,每个Url直接对应到具体的资源上,对资源的增删改查都默认走HTTP的POST、DELETE、PUT、Get方式而不是自己在参数包中指定。

Razor Pages 基于页面的编码方式简单高效:Razor Pages简化了传统的MVC模式,仅仅使用视图跟模型来完成网页的渲染跟业务逻辑的处理。模型里包含了数据跟方法,通过绑定技术跟视图建立联系。

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

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

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

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

2.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从未停止前进的步伐,一切都在如火如荼的进行,朝着最好的方向出发。

3.快速上手ASP.NET Core

(评论区抽五位粉丝免费包邮赠送)
在这里插入图片描述

作者:韩冬 张安忠 碌云 王泽威 著

在本书中,笔者(微软MVP与Team Leader)通过文字+视频的形式向大家讲解如何以5大实战案例分析讲解ASP.NET Core基本原理和实现方式。

关键词:ASP.NET Core 跨平台 入门 上手 实践 实战 项目

适合人群:后端开发工程师、.NET全栈工程师,以及希望快速入门ASP.NET Core开发的读者

本书突出实战的特点,通过精心选取的大量实例项目,手把手带领读者完成基于ASP.NET Core平台的实际应用开发。按照循序渐进的顺序对这些项目进行介绍,从项目分离设计出发到AOP日志与缓存、接着集成单元测试保证代码正常稳定运行,最后真机部署发布,搭建一个完整的博客站点网站,手把手带大家完成从新手到高阶开发工程师的蜕变!

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐