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

2023-11-04

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

六、ASP.NET Core 5.0开发入门与实战

这是一本从实战角度出发,分析讲解ASP.NET Core基本原理和实现方式,以求帮助广大读者能够快速掌握ASP.NET Core在企业级多端调用以及多平台部署的实践指导书。作者是.NET领域的布道者和技术专家,并多次荣获微软MVP称号。

本书以ASP.NET Core 5.0进行分析,不仅讲解了核心原理和理论知识,还通过实战案例的方式,进一步拓展ASP.NET Core在企业中的应用。更重要的是,本书所有代码均已开源,读者可以在对应下载资源中找到源码地址,进行下载和学习。此外,本书涉及的知识点,多以独立章节用实际案例的形式专门进行落地指导,相互之间不受影响,而从业务上又承上启下,读者可以根据自己的需要重点学习mou一章节。

本书是一本项目开发案例方面的参考书,适合有基本编程知识,但还没有项目开发经验的软件开发初学者使用,尤其适合高校学生进行毕业设计、课题设计时作为参考。

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么超过500万开发者选择了ASP.NET Core? 的相关文章

随机推荐

  • OSG中的示例程序简介

    1 example osganimate一 演示了路径动画的使用 AnimationPath AnimationPathCallback 路径动画回调可以作用在Camera CameraView MatrixTransform Positi
  • apt-get 自动补全包名

    转自 http blog csdn net seasonkky article details 6321150 现象 bash的一般命令补全正常 apt get install 的包名无法自动补全 解决 实际上 在运行这句后 就可以自动补全
  • Go(六)切片

    目录 引子 切片 切片的定义 切片的长度和容量 切片表达式 使用make 函数构造切片 切片的本质 判断切片是否为空 切片不能直接比较 切片的赋值拷贝 切片遍历 append 方法为切片添加元素 切片的扩容策略 使用copy 函数复制切片
  • onInterceptTouchEvent和onTouchEvent调用关系详解

    一 onTouch onTouch是View中OnTouchListener接口中的方法 处理View及其子类被touch是的事件处理 当然 前提是touch时间能够传递到指定的view Q1 为什么会传递不到呢 Java代码 Interf
  • 供需匹配优化优化算法【matlab】

    一 算法流程 应用背景 共享停车预约系统的构成主体 即车位供给用户 停车用户和运营管理者 并对预约系统的运营模式进行了分析 为本文所构建的模型提供了相应的理论基础 其次 在已知所有预约需求停车信息的前提下 基于介绍的定时型决策预约运营模式
  • 光线追踪渲染实战(四):微平面理论与迪士尼 BRDF,严格遵循物理!

    项目代码仓库 GitHub https github com AKGWSB EzRT gitee https gitee com AKGWSB EzRT 目录 前言 0 前情回顾 1 微平面理论 2 BRDF 介绍 3 迪士尼原则的 BRD
  • python读取excel文件,对内容分类排序,显示每类的前5行

    先读取excel文件 然后再分类显示 创建文件 import pandas as pd data pd read excel path1 path1Excel路径 data1 data groupby by 字段 head 5 print
  • [电动智能汽车-1]:原理 - 纯电动汽车的工作原理

    目录 第1章 纯电动汽车的工作原理 1 1 汽车的演进路线 1 2 传统汽车的简化模型 1 3 纯电动汽车的简化模型 1 4 纯电动汽车的驱动模型 1 5 电动车与燃油车的比较 第2章 纯电动汽车 非智能驾驶 内部工作原理 2 1 逻辑结构
  • 用C语言如何编程一道选择题,使用C语言编写一道简单的编程题

    C语言 是一种通用的 过程式的编程语言 广泛用于系统与应用软件的开发 具有高效 灵活 功能丰富 表达力强和较高的移植性等特点 在程序员中备受青睐 C语言是世界上最流行 使用最广泛的高级程序设计语言之一 今天小编要为大家分享的一篇教程就是 使
  • vue项目background-image引入背景图报错

    之前写好的代码明明运行很正常 今天早上突然在预发环境挂掉了 31mERROR in node modules extract text webpack plugin dist loader js omit 1 remove true nod
  • UE4 UPROPERTY属性修饰符用bool变量控制变量是否可编辑

    meta EditCondition bool变量 UPROPERTY EditAnyWhere BlueprintReadWrite Category UPROPERTY Test bool A UPROPERTY EditAnyWher
  • 【Angular2】模板语法之 ngModel

    NgModel实现双向绑定及其实现原理 讨论 ngModel 之前 先讲下属性绑定和事件绑定 在属性绑定中 值从模型中流动到视图上的目标属性 通过把属性名放在方括号中来标记出目标属性 这是从模型到视图的单向数据绑定 在事件绑定中 值从视图上
  • 51单片机学习笔记(七) -蜂鸣器

    文章目录 一 蜂鸣器的概念 1 分类 2 工作原理 3 原理图 二 让蜂鸣器响起来 三 用定时器控制蜂鸣器音调 四 蜂鸣器发出滴滴声 总结 一 蜂鸣器的概念 1 分类 1 无源蜂鸣器 必须方波信号驱动才能发声 2 有缘蜂鸣器 给高电平驱动即
  • VMware虚拟机网络连接设置——仅主机模式(Windows版)

    VMware虚拟机网络连接设置 仅主机模式 Windows版 前言 各位看官 小二已多次测试教程的实用性及准确性 请按目录顺序放心食用 一 设置VMware的虚拟网络 1 1 打开虚拟网络编辑器 在VMware软件窗口工具栏选择 编辑 gt
  • 【Spring Security】入门——实现用户注册登录

    一 项目框架 1 项目结构 2 选择安装依赖 二 数据库 三 代码实现 实现思路 1 配置文件 2 编写测试页面 login jsp register jsp menu jsp 3 配置视图控制器 4 进行Spring Security配置
  • Vim的使用:常用键位总结

    目录 1 普通模式 1 1 光标移动 1 2 搜索替换 1 3 删除 复制 粘贴 1 4 注释 取消注释 1 4 1 注释 1 4 2 取消注释 2 插入模式 3 命令模式 进入vim的方式很简单 比如说现在要用vim打开test cpp
  • 给两个四元数,如何生成一个四元数轨迹,让四元数转化成的旋转矩阵轨迹可微

    假设给定两个四元数 q1 和 q2 它们定义了从初始位置到结束位置的旋转 要生成四元数轨迹 可以考虑使用四元数球面线性插值 SLERP 具体步骤如下 1 标准化 q1 和 q2 确保它们都是单位四元数 2 计算 q1 和 q2 之间的夹角
  • 嵌入式系统之cyber-physical system

    嵌入式系统在生活中随处可见 之前的嵌入式做法一般都是在一些现成的板子上移植linux做一些剪切加一些传感器写一些设备驱动 都是随着时代的发展 嵌入式不再是之前大家认为的那种单片机原理 其实现在很多人都把搞单片机弄的那一套认为是嵌入式 当然业
  • ViewPager两种方式实现无限轮播

    给自己的忠告 虽然轮子很好用 但是使用轮子的前提是 如果不去封装一些复杂的功能 自己会用最基本的方法写一个 不然再好的轮子那也是别人的 当自己项目遇到和轮子不一样的地方 那就只能束手无策或者改人家的源码 当然能看懂轮子的封装思想自己学以致用
  • 为什么超过500万开发者选择了ASP.NET Core?

    目录 一 What ASP NET Core 二 Why ASP NET Core 三 为什么选择这项技术 四 ASP NET Core的优势具体可以梳理为以下几个方面 1 生成Web UI 和Web API的统一场景 2 Blazor 3