闲话 .NET(3):.NET Framework 的缺点

news2024/11/20 0:33:01

image

前言

2016 年,微软正式推出 .NET Core 1.0,并在 2019 年全面停止 .NET Framework 的更新。

.NET Core 并不是 .NET Framework 的升级版,而是一个从头开始开发的全新平台,一个跟 .NET Framework 截然不同的开源技术框架。

微软为什么要这么做呢?今天我们来聊聊 .NET Framework 有什么缺点,导致微软做出如此艰难的决定。

缺点一

.NET Framework 属于系统级别安装的程序,操作系统内的所有基于 .NET Framework 开发的程序共享一个 .NET Framework 安装实例,如果其中一个应用程序需要升级 .NET Framework 或者为 .NET Framework 安装补丁,则其他程序也会受影响。

缺点二

.NET Framework 必须安装到操作系统上才能使用,不能和应用程序打包到一起独立部署,导致基于 .NET Framework 开发的应用程序必须在有正确的 .NET Framework 版本的环境里才能部署运行,这为应用程序的部署及升级带到很大的不便。

缺点三

ASP.NET 框架 和 IIS(internet information services,互联网信息服务)深度耦合。

ASP.N ET 只能运行在 IIS 上,而 IIS 只能运行在 Windows 操作系统上,不同的 Windows 版本的 IIS 版本也不同,而且 IIS 的安全性一直以来也备受争议,这些都深刻影响 .NET Framework 的推广和应用。

缺点四

性能问题,这可以说是 .NET Framework 最常被吐槽的一点了。

在 .NET Framework 诞生之初,ASP.NET 就等同于ASP.NET Web Forms,虽然它在 2009 年被 ASP.NET MVC 以及更晚出现的 ASP.NET Web API 所取代,但是微软在早期开发 ASP.NET 运行时的时候,在 ASP.NET 运行时中有很多专门为 ASP.NET Web Forms 编写的代码,虽然这些代码是 ASP.NET MVC、ASP.NET Web API 所不需要的,但是 ASP.NET MVC、ASP.NET Web API 也只能带着这些它们不需要的代码去运行,这导致 ASP.NET 在运行的时候有很多不必要的内存和 CPU 消耗,据估计,ASP.NET 程序在运行时占用的内存是它实际需要内存的 3 倍。举个例子,在 ASP.NET MVC 中,当用户请求到达 IIS 后,中间要经过非常多的处理管道,最后才能到达控制器。这些管道大多是硬编码的,即使用不到它们,也无法将它们移除,因此 ASP.NET 程序无法最大化地发挥硬件的性能。

缺点五

.NET Framework 诞生的时候是没有云计算的概念的,因此 .NET Framework 从创立之初其开发人员就没有考虑到程序会运行在云服务环境中,对很多.NET Framework 组件的设置都深度依赖 Windows 操作系统 API,这导致 .NET Framework 程序无法做到完全自治。

结语

随着软件行业的发展,系统的复杂性和访问量激增,传统的软件开发、部署模式已经力不从心。

比如很多电商网站在十几年前刚开始创建的时候,可能只有电商前台系统、后台管理系统、财务系统等少量的几个系统,由于用户量不多,几台服务器就能够支撑它们了。但是发展到如今,其系统数量已经成百上千了,服务器也有上万台。

因此,系统的开发、部署、运维等都和以前有了不同,云开发、容器化部署、微服务等概念也相应而生。

.NET Framework 是约 20 年前诞生的技术,并没有云基因,被基于云开发的技术所淘汰也是正常的,但这并不说明 .NET Framework 技术是过时的,事实上,.NET Framework 的很多技术都被迁移到 .NET Core 上,而且 .NET Framework 在工控行业、上位机开发等方面还是有很大的优势。

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1707492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Paddle 稀疏计算 使用指南

Paddle 稀疏计算 使用指南 1. 稀疏格式介绍 1.1 稀疏格式介绍 稀疏矩阵是一种特殊的矩阵,其中绝大多数元素为0。与密集矩阵相比,稀疏矩阵可以节省大量存储空间,并提高计算效率。 例如,一个5x5的矩阵中只有3个非零元素: impor…

CTFHUB技能树——SSRF(一)

目录 一、SSRF(服务器端请求伪造) 漏洞产生原理: 漏洞一般存在于 产生SSRF漏洞的函数(PHP): 发现SSRF漏洞时: SSRF危害: SSRF漏洞利用手段: SSRF绕过方法: 二、CTFHUB技能树 SSRF 1.Ht…

线上服务突然变慢,卡了很久都出不来

文章目录 0、架构1、现象2、查看服务器指标2.1 cpu负载不高2.2 内存指标2.3 硬盘指标2.4 错误日志2.5 大量的tcp连接为TIME_WAIT 3、总结 0、架构 nginx—>httpd—>postgres 单体服务 1、现象 进入页面非常慢。。。 2、查看服务器指标 2.1 cpu负载不高 如下图&…

vue3学习(三)

前言 继续接上一篇笔记,继续学习的vue的组件化知识,可能需要分2个小节记录。前端大佬请忽略,也可以留下大家的鼓励,感恩! 一、理解组件化 二、组件化知识 1、先上知识点: 2、示例代码 App.vue (主页面) …

Captura完全免费的电脑录屏软件

一、简介 1、Captura 是一款免费开源的电脑录屏软件,允许用户捕捉电脑屏幕上的任意区域、窗口、甚至是全屏画面,并将这些画面录制为视频文件。这款软件具有多种功能,例如可以设置是否显示鼠标、记录鼠标点击、键盘按键、计时器以及声音等。此…

BookxNote Pro 宝藏 PDF 笔记软件

一、简介 1、BookxNote Pro 是一款专为电子书阅读和学习笔记设计的软件,支持多种电子书格式,如PDF和EPUB,能够帮助用户高效地管理和阅读电子书籍,同时具备强大的笔记功能,允许用户对书籍内容进行标注、摘录和思维导图绘…

解锁数据奥秘,SPSS for Mac/WIN助您智赢未来

在信息爆炸的时代,数据已成为推动社会进步和企业发展的核心动力。但如何将这些海量数据转化为有价值的洞见,却是摆在每一位决策者面前的难题。IBM SPSS Statistics,一款专业的统计分析软件,凭借其强大的功能和易用的界面&#xff…

机械产品3d模型网站让您的展示内容更加易于分享和传播

为助力企业3D产品演示网站获得更多曝光和展示特效,华锐视点3D云展平台提供强大的3D编辑引擎,以逼真的渲染效果,让您的模型展示更加生动逼真。让客户也能轻松操作的3D产品演示网站搭建编辑器,引领3D展示的新潮流。 3D产品演示网站搭…

总结 HTTP 协议的基本格式

一、HTTP 是什么 HTTP ( 全称为 " 超文本传输协议 ") 是一种应用非常广泛的 应用层协议 . HTTP 诞生与 1991 年 . 目前已经发展为最主流使用的一种应用层协议 . HTTP 协议目前有三个大版本: HTTP / 1 和 HTTP / 2 都是基于TCP 传输控制协议传输数据。最新版本的…

14.Redis之JAVASpring客户端

1.引入依赖 此时就会引入操作 redis 的依赖了~~ 2.yml配置 spring:redis:host: 127.0.0.1port: 8888 3.准备 前面使用 jedis,是通过 Jedis 对象里的各种方法来操作 redis 的.此处Spring 中则是通过 StringRedisTemplate 来操作 redis .最原始提供的类是 RedisTemplateStrin…

NGINX完全指南_实现高性能负载均衡的进阶实操指南

欢迎阅读 2024 版《NGINX 完全指南》。OReilly 已连续九年出版《NGINX 完全指南》,我们不断进行更新以跟上 NGINX 做出的诸多改进。如今,NGINX 是全球最受欢迎的 Web 服务器。该产品于 2004 年首次发布,并不断发展,以满足现代应用…

防火墙技术基础篇:NAT转发之——Smart NAT(No-PAT和NAPT结合)

防火墙技术基础篇:NAT转发之——Smart NAT(No-PAT和NAPT结合) 传统的NAT技术在处理大规模网络和复杂应用场景时存在一定的局限性。为了解决这些问题,一种名为Smart NAT的新型网络技术应运而生。本文将详细介绍Smart NAT的概念、原…

mybatis关联查询使用resultMap查询到了多条,结果返回一条。

今天在写代码时候,遇到了一个很让我费解的问题,在使用关联查询的时候,在明明数据库里面,已经查到了两条数据,结果resultMap这个集合里面,就只返回一条数据。 数据库的SQL: mybatis的xml里面的r…

Linux系统编程学习笔记

1 前言 1.1 环境 平台:uabntu20.04 工具:vim,gcc,make 1.2 GCC Linux系统下的GCC(GNU Compiler Collection)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执…

SAM遥感图像处理开源新SOTA!在GPU上实现40倍加速,不损准确性

在遥感图像处理领域,通过SAM捕捉复杂图像特征和细微差异,可以实现高精度的图像分割,提升遥感数据的处理效率。这种高度的准确性让SAM遥感展现出了比传统方法更优越的性能。 不仅如此,这种策略灵活普适的特性还能拓展遥感技术的应…

苹果手机数据不慎删除?这4个方法果粉必看!

苹果手机该怎么恢复丢失的数据呢?有时候会因为使用不当或者是被他人误删等原因,导致重要的数据丢失,这时我们需要找回丢失手机数据,小编给大家分享4种恢复苹果手机数据的技巧,大家赶紧来学一学吧! 一、iclo…

元宇宙vr美术虚拟展馆激发更多文化认同和互鉴

科技引领创新潮流,借助前沿的Web3D技术,我们为用户打造了一个沉浸式的纯3D虚拟空间体验平台:元宇宙线上互动展厅。您只需通过网页即可轻松访问这个充满未来感的互动平台。 在这个独特的虚拟环境中,用户可以轻松创建个性化角色&…

JSP简介——[JSP]2

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

决策树算法实战

本实战主要目标是讲解如何使用sklearn库来构造决策树,包括其中的一些参数的使用,以及参数调优对模型精确度的影响。 1. 数据处理 导入Pandas和Matplotlib两个库。 # 导入Pandas和Matplotlib两个库 %matplotlib inline import matplotlib.pyplot as pl…

svg画简单的立方体

开发背景 要开发一个拖拽的大屏项目,其中涉及到一个装饰组件,是一个立方体cube,要求颜色可以修改,大小可以拖拽改变。 效果如下 分析 经过我一番奇思妙想,决定用svg实现,因为对svg比较熟悉。那就先来在草…