2020 年 中国.NET开发者调查报告

微信公众号dotnet跨平台2020年初做的一个关于中国.NET开发者调查收到了开发者近 1400 条回复。这份调查报告涵盖了开发者工具链的所有部分,包括编程语言、应用架构、应用服务器、运行时平台、框架技术、框架配置、IDE、.NET/.NET Core 发行版部署模式、构建工具和Kubernetes。


.NET发展面临的挑战

这是一个多选题,认为.NET向.NETCore升级的挑战只有25.3%, 然而有89.9% 的受访者表示,国内缺乏大的互联网厂商采用.NET Core 是最大的挑战,从2010年以来的移动互联网浪潮由于微软的战略失误,.NET技术从.NET 4以来缺乏创新,国内大的互联网厂商京东、携程等相继转Java 所带来的影响很大。但是很多人忽略了一个重要的方面是从2015年开始的云计算浪潮,云原生应用开发的崛起。微软从2014年开始的重大转型,成功把握了云计算浪潮,特别是云原生应用开发上微软有着清晰的领导者,从Azure的崛起以及云原生的参与度上,特别是从2016年正式发布的.NET Core 在云原生方面发生了蜕变,从后面的一项Kubernetes和Docker的采用上可以说明大家对.NET Core的采用上没有足够的认识,再说互联网厂商采用.NET Core方面也要换个角度来看,从2018年开发国内BAT等互联网厂商开始转型企业服务市场,我们来看下在这个新的方向上的互联网厂商采用.NETCore情况,国内新能源领域头部企业特来电采用.NET Core, 国内房地产信息化系统服务商头部企业明源云采用.NET Core, 在线教育头部企业校宝在线采用.NET Core,这里只是简单的举几个例子,还有更多的案例待你去发掘.

                       

对我们来说,传统的互联网厂商没有采用.NET Core不是最重要的,特别BAT都在搞公有云等面向企业服务,Azure、AWS、GCP对.NET Core的支持一等公民,需要阿里云、腾讯云、华为云等国内云厂商更好的对.NETCore有更大的支持。

.NET/.NET Core 版本

58% 的受访者表示,他们在主要应用程序中选择 .NET Core 作为编程平台,大部分计划升级到.NETCore 3.1。而.NET 4.6之前的版本以 21% 的受访者位居第二。11.1% 的受访者表示使用 .NET 4.6,也没有升级到.NETCore 版本计划。这里要给大家普及一下.NET 5, 很多对.NET 5有误解是大融合,认为.NET 4版本在.NET 5出来后可以轻松的升级。这是一个巨大的认识错误,.NET 5是.NET Core 3.1 之后的一个大版本,他本质上是.NET 5, 从.NETCore 3.1开始,.NET Core都支持.NET FX的工作负载了(最典型的就是桌面Winform/WPF/UWP支持), .NET 4应用需要升级到.NET 5必须向.NETCore的迁移,所以如果你有应用迁移计划,现在就可以做规划了,而不是等上一年为自己的无知买单。

                       

对我们来说,看到 .NET Core 3.1成为占主导地位的编程平台,并不是一件令人惊讶的事情。然而,令人惊讶的是,还有 32.4% 的受访者使用 .NETFX 4。我们认为,这与大家缺乏对.NET发展的正确认识和更新 .NET应用的成本有关。对于仍在使用 .NET 4.6 或更早版本的受访者,我们预计,随着越来越多的应用程序继续迁移到.NET Core 3.1 或今年即将到来的.NET 5版本,这一数字将会减少。

微服务框架选择

这个问题要求受访者选择在他们的主要项目中使用的应用程序框架和技术。由于大多数应用程序使用各种不同的框架技术,因此这个问题允许多个回答。在调查的第9和第10问题里,很多人表达希望有一个.NET上的Spring Cloud,然而只有5.7%的人选择了Steeltoe/Spring Cloud,这也许是大家对Steeltoe这个开源项目缺乏了解,Steeltoe是Spring Cloud的厂商Pivot 开源的Spring cloud的.NET解决方案,同时它也是.NET基金会下的开源项目,在github开源,star数却只有215,这正说明了大家对它缺乏认识,这几年开源社区的蓬勃发展,.NET社区有个开发框架ABP也拥有了大量的用户,特别是在中国的用户特别多,ABP vNext正是ABP框架针对单体模块化/微服务场景发展的框架,搭配kuberentes 非常适合微服务的开发,目前已经正式发布2.1.1版本,用7.6%的受访者选择了ABPvNext/Kubernetes, 37.8% 的受访者选择了.NET Core/Kubernetes, 采用kuberentes的受访者达到了45.4%,还有25.9%的受访者选择了自研框架,这部分自研框架的用户是很希望有SpringCloud,而采取的自研。

                       

对我们来说,.NET Core在云原生时代拥有独特优势,镜像体积小、占用内存少,启动速度快,支持水平扩展,Kubernetes为.NET Core的微服务开发方面提供特别的机会,特别2020年Service Mesh的成熟,.NET Core的采用方面有新的发展。


.NET开发工具

在这个问题中,我们要求开发者列出他们专业使用的集成开发环境(IntegratedDevelopment Environment,IDE)。就在几年前,开发者还会质疑在 IDE 上花钱是否值得。由于大多数人使用几个不同的IDE,因此这个问题允许多个回答。

                       

但是,有 96.2% 的受访者表示他们使用Visual Studio,很明显,这个付费的 IDE 非常值得一试。第二个最常用的 IDE 是 Visual Studio Code,占 31.5%,而 JetBrains Rider 占 5.2%。最后,有 4.8% 的受访者表示,使用Visual Studio for Mac。这说明大部分人都是使用高生产率的VisualStudio 为主,其他的IDE工具为辅。


数据库访问技术ORM

在这个问题中,我们要求受访者选择他们当前使用的数据库访问技术ORM。最受欢迎的是EntityFramework Core,占 44.7%,紧随其后的是Dapper,占 42.1%。接下来是 EntityFramework6,有 32% 的受访者报告了使用情况。NHibernetes在受访者中只有3.1%,还不如这两年国内的新星FreeSql,在受访者中占 4%。国内还有另外一个类似于Java国内最流行的MyBatis的SmartSql ,在受访者中有2.1%。还有20.8%的受访者使用了其他的ORM或者是直接使用ADO.NET.

                        


开发的软件类型

在这个问题中,我们要求开发者列出他们开发的软件类型,通常开发者会开发多种类型的应用程序,这个选项也是多选项,企业级应用和互联网应用位居前列,特别是企业级应用占比达到了66.2%,这和我们一直认为.NET 在企业级应用市场有很大的应用,随着互联网技术的发展,企业级应用市场也要互联网化,这也是.NET 开发的机会和挑战。桌面客户端应用的受访占比是24.2%,移动应用客户端开发占比15.5%, 这里有一项比较意外的是游戏占比只有2.4%, 然而很多人的印象中游戏是.NET 开发非常优势的领域。

                        


容器化

在这两个问题中,我们询问了开发者他们使用哪些容器化工具。到目前为止,使用 Docker的比率只有38.7% 。而61.3%的受访者都没有使用Docker,已经采用Kubernetes 的受访者只有11.7%,目前没有使用,正计划使用Kubernetes的受访者达到了37.6%,这表明 Kubernetes 在2020年会有持续的增长。没有计划使用Kubernetes的受访者达到了47.7%,这也是一个很意外的结果,我们认为很多人对Kubernetes 有认识误区,容器化不在于你的团队的规模大小,而且对于小团队来说,Kubernetes是加速你应用现代化的武器,每一个公有云厂商都提供了近乎免费的Kubernetes服务,使用Kubernetes的门槛非常低,这也是采用.NET Core的优势所在,很多人错误的认为需要自己搭建Kubernetes集群,对于搭建Kubernetes集群这件事情是很复杂的,需要有专门的Kubernetes运营团队在支撑,这对于大型企业来说是没问题的,也值得投资。利用Kuberentes,我们不会被任何云厂商锁定。随着Kubernetes 的发展,它在未来几年将在市场上占主导地位也就不足为奇了。

                        

9和10两道题是开放性问题,在于汇集大家的意见,具体参看调查数据:【腾讯文档】2020中国.NET开发者调查 

https://docs.qq.com/sheet/DWElLTkx5YUVMWnFn?c=L456L0PE0

小结

云原生对开发者在应用程序开发过程中使用的技术带来了深远的影响。而且,随着公司继续转型并创建基于微服务的应用程序,我们预计技术选择将趋向于促进架构和在其中工作的开发人员的需求。

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

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

相关文章

列名无效如何解决_XSKY ClickHouse如何实现存算分离

在介绍ClickHouse之前,说一下OLAP。OLAP也叫联机分析处理(Online Analytical Processing)。OLAP系统以维度模型来存储历史数据,其主要存储描述性的数据并且在结构上都是同质的。01ClickHouseOLAP应用有如下特点:1、大多数的请求是读请求&…

word List 46

word List 46 如果存在什么问题,欢迎批评指正!谢谢!

.NET Core开发实战(第6课:作用域与对象释放行为)--学习笔记(下)

06 | 作用域与对象释放行为接下来&#xff0c;把服务切换为单例模式&#xff0c;通过工厂的方式services.AddSingleton<IOrderService>(p > new DisposableOrderService());启动程序&#xff0c;输出如下&#xff1a;1 2 接口请求处理结束可以看到代码实际上不会被释放…

C++实现邻接表存储的图及bfs遍历

#include <iostream> #include <queue> using namespace std; typedef char VerTexType; #define MVNum 100 typedef char OtherInfo; bool vis[MVNum];//邻接表 typedef struct ArcNode {int adjvex;struct ArcNode *nextarc;OtherInfo info; } ArcNode;//弧(边)t…

cmd小游戏_使用pygame制作Flappy bird小游戏

原文链接&#xff1a;【Python】使用Pygame做一个Flappy bird小游戏&#xff08;一&#xff09;​mp.weixin.qq.com最近看到很多大佬用强化学习玩Flappy bird。所以打算也上手玩一玩&#xff0c;但是苦于没找到pc上的这个游戏&#xff0c;找了点资料&#xff0c;发现并不是很难…

word List 47

word List 47 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

使用BeetleX构建基础的SSL网络通讯

BeetleX的使用非常简单&#xff0c;通过Stream的数据流模式可以让你轻松处理网络数据&#xff1b;在处理SSL加密通讯的时候组件的使用也是非常方便&#xff0c;只需要简单的配置证书即可完成基于SSL的网络安全通讯&#xff0c;接下来介绍一下通过组件快速构建一个安全可靠的网络…

调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...

面试官: ButterKnife为什么执行效率为什么比其他注入框架高&#xff1f;它的原理是什么心理分析&#xff1a; ButterKnife框架一直都是使用&#xff0c;很少又开发者对butterknife深入研究的&#xff0c;既然你是面试Android高级岗位&#xff0c;自然需要有相应被问到原理的准备…

算法---会议最大安排问题

算法—会议最大合理安排问题 参考&#xff1a;趣学算法 代码&#xff1a; #include <stdio.h> #include <stdlib.h> typedef struct meet {int beg;//开始int end;//结束int num;//会议编号 }meet; int cmp44(meet m1,meet m2) {//越早结束的越优先&#xff0c;…

小cookie,大智慧

Cookie是什么&#xff1f;cookies是你访问网站时创建的数据片段文件&#xff0c;通过保存浏览信息&#xff0c;它们使你的在线体验更加轻松。使用cookies&#xff0c;可以使你保持在线登录状态&#xff0c;记录你的站点偏好&#xff0c;并为你提供本地化支持。First-party cook…

java 最少使用(lru)置换算法_LRU算法详解及最简单的Java实现

更多内容&#xff0c;欢迎关注微信公众号&#xff1a;全菜工程师小辉~LRU(Least recently used&#xff0c;最近最少使用)算法根据数据的历史访问记录来进行淘汰数据&#xff0c;其核心思想是“如果数据最近被访问过&#xff0c;那么将来被访问的几率也更高”。LRU算法的表现新…

word List 48

word List 48 如果存在什么问题&#xff0c;欢迎批评指正!谢谢&#xff01;

一文读懂常用开源许可证

社区时常为流行产品中有争议的开源许可证而感到震惊&#xff0c;这引起各方关注&#xff0c;纷纷争论何为真正的开源许可证。去年&#xff0c;Apache 基金会&#xff08;Apache Foundation&#xff09;禁止使用 Facebook React 那些具有争议的专利组件&#xff0c;这引发了轩然…

[蓝桥杯2015初赛]手链样式-思维+next_permutation枚举(好题)

题目描述 小明有3颗红珊瑚&#xff0c;4颗白珊瑚&#xff0c;5颗黄玛瑙。 他想用它们串成一圈作为手链&#xff0c;送给女朋友。 现在小明想知道&#xff1a;如果考虑手链可以随意转动或翻转&#xff0c;一共有多少不同的组合样式&#xff1f; 输出 请你输出该整数。不要输出任…

word List 49

word List 49 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢!

(四)开源C# WPF控件库《AduSkin – UI》

微信公众号&#xff1a;【Dotnet9的博客】&#xff0c;网站&#xff1a;【Dotnet9】&#xff0c;问题或建议&#xff1a;【请网站留言】&#xff0c; 如果对您有所帮助&#xff1a;【欢迎赞赏】。https://dotnet9.com追求极致&#xff0c;永臻完美A Beautiful WPF Control UI一…

python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...

本次小编向大家介绍的是根据用户的需求输入想爬取的内容及页数。 主要步骤&#xff1a; 1.提示用户输入爬取的内容及页码。 2.根据用户输入&#xff0c;获取网址列表。 3.模拟浏览器向服务器发送请求&#xff0c;获取响应。 4.利用xpath方法找到图片的标签。 5.保存数据。 代码…

word List 50

word List 50 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

单点突破,击穿阈值,DevOps转型你需要这样做

在上篇文章里&#xff0c;我提到了如何通过对价值流进行分析、拆解关键要素指标&#xff0c;并通过缩减处理时间PT、降低前置时间LT、提高完成&准确的百分比&#xff08;C&A%&#xff09;&#xff0c;实现企业研发效能10倍速提升。大家点击回看这篇文章《以埃隆马斯克“…

双向dcdc变换器simulink仿真_二极管箝位五电平变换器Simulin仿真

● 本期为二极管箝位五电平变换器的基本Simulink仿真&#xff0c;只包含其SPWM调制。感谢公众号一位好友“一叶知秋”提供Simulink模型并分享。01二极管箝位五电平变换器调制方法传统的变换器存在高的电压变化率和共模电压&#xff0c;且波形谐波含量较大&#xff0c;使得输出滤…