查看: 122|回复: 20

.NET Core将促使.NET进一步衰落

[复制链接]

3

主题

7

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2023-7-19 14:03:04 | 显示全部楼层 |阅读模式
我是十几年的.NET开发者,对.NET的历史发展比较了解,算是非常资深的了。
微软一向喜欢把开发者带到自己铺设的死路上,等开发者走到死路尽头的时候,会潇洒地再次铺设一条死路。
.NET Core优势是什么?好像最大的优势就是跨平台,可以运行在Linux上,总之给人的感觉是模糊不清的。这个优势对于java来说不值一提,但是对.NET开发者来说就比较麻烦了。.NET原先都是绑死在Windows平台上的,长期的开发积累也都运行在Windows上,非官方的Mono跨了平台也并不好用。
对于资深的.NET开发者来说,他们长期开发运行的程序都是在Windows上,他们不需要.NET跨平台,反而需要有更好.NET功能发挥在Windows上的优势;一些以前需要跨平台优势的.NET开发者早已经转了Java,他们更不需要.NET跨平台。
.NET Core是微软官方重点推广的技术,它对于.NET开发者影响很大,绝不是.NET开发者觉得没用就可以忽略的非官方项目,必须要对它有所反应。
现在,如果转向.NET Core,必须要付出精力学习这个对Windows开发无用的东西;部署了之后,必须要花更大的精力排查那些新框架因为不成熟导致的问题;最后,还要冒.NET Core不适应市场,最后沦为和SilverLight、UWP一样下场后,自己竹篮打水一场空的风险。
如果不转,会受到.NET Core开发的各种骚扰,比如领导要求你看,同事用.NET Core开发可能以后你接手,找工作时有的公司要求你会.NET Core;还要担心假如.NET Core以后成了.NET开发的主流,自己就会落后。
所以,最后会有三个结果,一是转.NET Core,二是继续不用.NET Core,三是干脆转Java或者其它平台,这三种情况相互作用会给.NET带来很大不利影响。再加上.NET Core其实是内斗型框架,它的实际竞争目标是.NET Framework,不会给.NET增加多少新的份额。所以.NET Core将促使.NET进一步衰落。


<hr/>2022-02-21 修改
这是我用Java实现的编译技术
Longa通用DSL编译技术---一个C#工程师送给java程序员的重磅礼物 - 知乎 (zhihu.com)
未来可以在Java中直接用SQL语句查询数据库,不需要字符串拼接
回复

使用道具 举报

2

主题

7

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-7-19 14:04:03 | 显示全部楼层
你好,我现在正发着39.5的高烧,看到你的文章,我真的忍不住想喷。
作为一个程序员需要保持学习。而作为一个10多年的.net程序员学习一下.net core很难???.net core和.net至少80%的api是一样的吧,同样可以用vs开发,学这玩意很难???你在逗我吗???
另外啥叫跨平台(对Java开发者)不值一提?那我既想用c#还想跑在各种平台下的人直接转Java去么?你自己只想在Windows上玩是你的事,你还能管我怎么玩了?
另外,2020年.net5就出来了,这是真正的发版本,我看你到时候学不学
回复

使用道具 举报

2

主题

5

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2023-7-19 14:04:28 | 显示全部楼层
你这资深水分有点大
回复

使用道具 举报

2

主题

7

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-7-19 14:04:53 | 显示全部楼层
K8s 日趋流行,你原生应用开发才是.NET Core的方向,在容器上的优势才是.NET Core的,你只看到了跨平台。.NET Core 在云原生时代所完成的蜕变:
体积更小:对于微服务分布式架构而言,更小的体积意味着更少的下载带宽,更快的分发下载速度,.NET Core 的镜像体积都很小,alpine的镜像更小,带上应用程序通常80M。
启动速度更快:对于传统单体应用,启动速度与运行效率相比不是一个关键的指标。原因是,这些应用重启和发布频率相对较低。然而对于需要快速迭代、水平扩展的微服务应用而言,更快的的启动速度就意味着更高的交付效率,和更加快速的回滚。尤其当你需要发布一个有数百个副本的应用时,缓慢的启动速度就是时间杀手。对于Serverless 应用而言,端到端的冷启动速度则更为关键,即使底层容器技术可以实现百毫秒资源就绪,如果应用无法在 500ms 内完成启动,用户就会感知到访问延迟。这里我拿AWS Lambda来举例,因为各大云厂商都是以AWS是模仿的目标,AWS Lambda中可用的所有语言都是高级的,从脚本语言到JavaScript和Python,再到像Java和C#到Go这样被编译为二进制文件的托管运行时的语言,所有语言都是他们有自己的长处。在基准测试中,最重要的.NET Core是 冠军,具体参看https://react-etc.net/entry/aws-lambda-benchmarks-node-js-python-java-c-go-dotnet-core
占用资源更少:运行时更低的资源占用,意味着更高的部署密度和更低的计算成本。.NET Core的 CLR启动速度非常快,降低启动时资源消耗,可以减少资源争抢,更好保障其他应用 SLA。
支持水平扩展:.NET Core 3.0默认更好的支持Docker资源限制,官方团队也在努力让.NET Core成为真正的容器运行时,使其在低内存环境中具有容器感知功能并高效运行。 具体可以参看文章《从CLR GC到CoreCLR GC看.NET Core对云原生的支持》,随着内存成本的下降和虚拟化的流行,大内存配比已经成为趋势。所以我们一般是采用水平扩展的方式,同时部署多个应用副本,在一个计算节点中可能运行一个应用的多个副本来提升资源利用率。
回复

使用道具 举报

0

主题

5

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-7-19 14:05:22 | 显示全部楼层
难得一见的.net core看衰文,javaer内牛满面,不过.net framework不转也不行了,没后续了。
回复

使用道具 举报

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-7-19 14:06:00 | 显示全部楼层
转core又没多大学习成本,我们全都是core写,k8s部署
回复

使用道具 举报

2

主题

8

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-7-19 14:06:39 | 显示全部楼层
这逻辑是 因为技术适用场景更大和灵活了,所以会衰落了?
回复

使用道具 举报

1

主题

8

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-7-19 14:07:30 | 显示全部楼层
我理解 对于原dotnet来说,对于写法上的改变不值得一提。难度源于linux平台,需要学习linux使用,这么没啥不好。
回复

使用道具 举报

3

主题

10

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2023-7-19 14:08:19 | 显示全部楼层
我接触了三个月c#,现在已经不太习惯java了,还是c#方便。同样的功能c#真的会省事些,做微服务也不差,各种分布式组件支持也不错。但是考虑到其他同学的技术栈,还是保留部分java服务
回复

使用道具 举报

0

主题

7

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-7-19 14:08:56 | 显示全部楼层
有本事你别用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表