.NET 是信息技术应用创新产业重要参与者

今天是国庆节,也是中秋节,月满中秋,举国欢庆,在这里祝各位开发者中秋国庆快乐。放假在家就想把这几年对于.NET发展相关生态做个梳理,写一篇文章来总结一下这两年从腾讯出来自己创业,推动.NET在国内的应用的一些感想,毕竟我是一个弱小的创业者,没有大公司的资源,更多是要靠大家的共同努力,打造更加有生命力的.NET社区。

首先我们处于中国这样的一个大环境之下,在中国的.NET社区发展来说,相对于微软开源.NET 的2014年之前,中国的.NET社区得到了长足的发展,涌现了大量的开源社区,其中以NCC(.NET Core Community)为代表汇聚了国内主要的开源项目,NCC的发展过程也是曲折的,不时听说有人诋毁,我们相信谣言与诽谤终将破灭,一切诋毁开源社区的行为终将被反噬。在NCC 之外还存在着有特色的社区,比如以微信开发生态发展起来的盛派开发者社区,最近他们推出了集合盛派多年开发经验的框架NCF。

随着中国的发展,很多技术因为一些原因越来越受制于人,尤其是上游核心技术。在中美当前背景下为了解决这个问题,我国明确了“数字中国”建设战略,抢占数字经济产业链制高点。于是,国家提出“2+8”安全可控体系,2020-2022年是国家信息技术应用创新产业推广最重要的3年,中国IT产业从基础硬件-基础软件-行业应用软件有望迎来国产替代潮。

信息技术应用创新产业(简称信创)需要在四个层面逐步实现:基础硬件设施,如芯片、服务器、存储、交换机、路由器;底层软件,包括操作系统、数据库、中间件等;应用软件,面向实际应用的不同领域;安全产品,保障边界安全、终端安全和管理安全产品。目前在安可领域,高端芯片服务器等硬件已能基本满足办公需求;基础软件正在实现国产化替代。而在信创下,应用生态便显得匮乏了。 要实现应用软件从WinIntel 联盟、双A联盟(Android + ARM)到信创产业的平滑过渡,是丰富国产应用生态、推动信创产业从“可用”走向“好用”的重要手段。国内众多应用软件开发商也正在安可这一领域展开激烈竞争。

在信创产业龙芯给我们做出表率,他们积极投入研发力量把OpenJDK 和 .NET 纳入信创产业来建设,龙芯支持了计算机上运行应用程序的动态虚拟机Java、Javascript、.NET三大虚拟机,龙芯还正在开发一套指令翻译系统,可以将其他指令集翻译成Loongarch指令兼容X86,ARM,MIPS。目前信创产业国内也有很多的参与方,其中ARM的鲲鹏计算推进比较快,最近我也同华为的鲲鹏生态的相关负责人沟通,他们在鲲鹏生态对.NET支持是很支持的,而不是坊间流传的不支持.NET, 我和华为云的同学一起在华为云上建立了一个生态合作伙伴论坛的.net技术专区 :https://bbs.huaweicloud.com/forum/forum-1184-1.html。 9月份我给华为云鲲鹏计算的全国各地的产业基地的同学们分享了一次.NET 技术。

在信创产业背景下的中国.NET社区的发展也正在加速,活跃的社区加上具有说服力的开源产品的不断涌现,结合.NET的性能优势,充分发挥.NET的跨平台能力,在各行各业的开发者在各自领域都可以推出有竞争力的产品,亦或是基于其他语言流行产品的.NET版本或者客户端,这里举一个例子就是看到有些人觉得国内的.NET开源项目之中大多数ORM或者Web框架之类,同质化严重,我觉得有竞争才是好事,能说服社区的产品就是要货比三家、大浪淘沙。

微软是非常有诚意发展.NET社区的,通过成立类似于Apache基金会的.NET基金会来支持.NET社区和开源,旨在拓宽和加强.NET生态系统和社区。这可以通过多种方式完成,包括项目指导,指导,法律和营销帮助,技术和财务支持设置等,2014年 .NET基金会的创始成员中有六位创始人,均非微软公司员工。随着微软的收购动作,Miguel 也成了微软员工,Migel一直在努力让.NET基金会独立于微软。2014年以来已经有众多知名公司加入.NET基金会, 仅在平台项目中,.NET平台上有87%贡献者其实不在Microsoft工作。在.net conf 2019 AWS加入了支持.NET Foundation的.NET开源生态系统中越来越多的行业领导者,这些成员包括Microsoft,Google,Red Hat,JetBrains,Unity,三星,Pivotal,Insight和Telerik,AWS等公司。

我对所有参与社区建设的人都充满敬意,也鼓励各位.NET开发者积极融入社区,去了解、参与甚至创造.NET开源项目,请不要在社区里充满了嘲讽、不屑和鄙夷(经常可以在微信群,QQ群,博客评论里见到这种言论)。不要抱怨社区没有什么,而是想想能为社区做什么。等到.NET社区充满了战斗力,受益的最终还是整个开发群体。

这几年.NET社区得到了很大的发展,还是有赖于.NET 本身的技术发展,.NET技术方面的优化和升级,也是.NET发展的强劲动力,很多人在谈到.NETCore相对于.NET Framework的优点时,第一时间想到的是开源跨平台。其实跨平台只是起点而非目的。.NET Core的更大的意义在于性能的提升,以及保持与时俱进的设计甚至引领潮流。即将在2020 dotnet conf 上发布的.NET 5 将支持所有 .NET 应用程序类型:Xamarin、ASP.NET、IoT 和桌面,将利用一个单独的基类库 (BCL)、两个独立的运行时(MonoCLR和CoreCLR,因为很难将两个截然不同的运行时单独作为源)和一个工具链(比如 dotnet CLI),结果将是行为、API 和开发人员体验之间的一致性。.NET 的统一有很多优点。将框架、运行时和开发人员工具集统一到一个代码库中,将减少开发人员(Microsoft 和社区)需要维护和扩展的重复代码量。

并且所有 .NET 5 源代码都将是开放源代码,所有人都能见证和参与其中,这让全球真心热爱这个平台或C#语言的有志之士有了一个集中的交流地,也极大的促进了国内.NET的发展,这些年虽然缺少了微软中国的布道支持,国内的.NET开源社区一样发展的不错,如果有微软中国的资源投入支持,相信这个结果会更好。

性能的提升直接使得很多人开始关注和学习.NET 带来的优化,例如基础库中相当多的线程安全的静态方法被优化和重写,大幅减少竞争资源的损耗;推出性能极佳的System.Text.Json基础库替代包袱沉重的Json.NET,还有更底层的Span<T>/Memory<T>, ref struct 等的引入,让C#在高效生产力的条件下拥有C/C++的性能。从C# 7.0开始一路完善的模式匹配(当然还是有很多人对这些新特性不是很满意),以及Range/Index的切片语法等等,这些都使得基于.NET的编程体验更上一层楼。在设计上引领潮流方面来说,以ASP.NET Core最为典型---依赖注入无处不在,认证、授权、日志、配置、中间件等模块都非常值得学习,对Docker,云服务、微服务、IOT、ML等支持和持续优化,也使得.NET/C#在较前沿的工程领域占有一席之地,特别是基于WebAssembly技术的Blazor框架在前后端分离的前端框架上也是引领潮流的。

回顾自2014年以来的.NET 的开源发展路程,一路发展也不是一帆风顺的,中间也有不少批评和困扰。例如在.NET Core 2.1的HttpClient 出现了一些严重的性能问题,使得很多开发者怨声载道,EF Core 3.0 不再默认使用客户端评估(https://docs.microsoft.com/zh-cn/ef/core/querying/client-eval)这样的一个较大的破坏性更新,让开发者在升级项目的数据访问层代码时遭遇打击。.NET的版本升级现在也是很快,这里强烈建议大火把项目升级到当前最新的LTS版本,以后的升级尽量避免隔代升级,比如即将到来的.NET,从3.1升级上去会比较顺滑,这里特别要提醒的是别以为.NET 4.8也可以顺滑的升级到.NET 5。这些发展道路上的问题确实也打击了部分开发者的耐心和信心,以至于他们在当时不得不额外花费时间,承受进度压力处理问题的时候,对.NET的评论极其负面。这同时也阻挠了相当一部分人将.NET Framework项目迁移到.NETCore或升级旧版本.NET Core的信心,随着.NET Core/Framework,新旧版本之间的差距越来越大,最终造成了恶性循环,项目的老化积重难返,想找到靠谱的人维护也变得逐渐困难。

但是从总体上来说,这些年.NET的在技术发展上取得的成绩是值得欣喜的,它走出的每一步都是让.NET继续焕发青春,接下来几年时间里也是国家信息技术应用创新产业发展的黄金时间,一个完全开放的.NET生态会是这里非常重要的参与者。

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

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

相关文章

蓝桥杯- 包子凑数

一:题目 题目描述 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 NN 种蒸笼&#xff0c;其中第 ii 种蒸笼恰好能放 A_iA i ​ 个包子。每种蒸笼都有非常多笼&#xff0c;可以认为是无限笼。 每当有顾客想买 XX 个包子&#xff0c;卖包子的大叔就会迅速选出若…

秋天 | 等疫情过后,我们继续背起相机去旅行

这是头哥侃码的第218篇原创2020年&#xff0c;注定是不平凡的一年。八个月前&#xff0c;我正和家人一起沉浸在春节的喜悦中&#xff0c;可没成想一场疫情的到来彻底改变了欢快的气氛。别的倒没什么&#xff0c;只是之前所有的计划全部被打乱了。先说春节假期&#xff0c;和舅舅…

简单理解CAP-BASE

1、CAPCAP是分布式系统的指导理论&#xff0c;是NoSQL数据库的理论基石。CAP其实就是对分布式系统的特性总结&#xff0c;即一致性&#xff08;Consistency&#xff09;、可用性&#xff08;Availability&#xff09;、分区容错性&#xff08;Partition tolerance&#xff09;。…

面试必问系列之在浏览器中输入URL后到网页显示 其间发生了什么?

文章目录[TOC](文章目录)1:解析URL网址,从而生成发送给Web服务器的Http请求信息2:真实地址查询-----(DNS域名解析)3:调用协议栈4:可靠的传输 TCP5:远程定位--IP地址6:两点传输--获取MAC地址7:网卡--出口8:送别者--交换机9:出境大门--路由器10:相互扒皮--服务端与客户端1:解析UR…

C# 中的 is 真的是越来越强大,越来越语义化

一&#xff1a;背景 1. 讲故事最近发现 C#7 之后的 is 是越来越看不懂了&#xff0c;乍一看花里胡哨的&#xff0c;不过当我静下心来仔细研读&#xff0c;发现这 is 是越来越短小精悍&#xff0c;而且还特别语义化&#xff0c;那怎是一个爽字了得????&#xff0c;这一篇就和…

leetcode209. 长度最小的子数组(滑动窗口)

一:题目 二:上码 class Solution { public:/**思路:1.滑动窗口解法1>:确定窗口内是什么2>:确定窗口的起始位置3>:确定窗口的终止位置2.窗口:也就是我们的求的连续字符串的和3.窗口的起始位置: 窗口的起始位置最先是我们数组的起始位置,当窗口内连续数组的和大于targe…

开源特训营 - Lesson 4 - 如何运营社区

编辑&#xff1a;李明康责编&#xff1a;袁睿斌作者&#xff1a;课程助教 - 苏斌主讲教师&#xff1a;庄表伟&#xff08;开源社理事长&#xff09;、赵生宇&#xff08;同济大学&#xff09;本次课程的主题为《如何运营社区》&#xff0c;主讲者为开源社的理事长庄表伟老师和来…

leetcode904. 水果成篮(滑动窗口)

一:题目 二:上码 class Solution { public:/**思路:滑动窗口1.滑动窗口为我们 两个品种水果的个数2.滑动窗口的起始位置为数组的起始位置,当遇见一个新的水果种类的时候,这时候就需要移动我们的起始位置这里移动起始位置是要注意的,我们需要移动起始到我们的窗口中 完全没有 这…

拥抱.NET 5,从自研微服务框架开始

“ 2016年发布了.NET Core第一个正式版本&#xff0c;而.NET5也将在下个月就正式来临了&#xff0c;技术日新月异&#xff0c;也有点让人应接不暇。在框架设计上&#xff0c;.NET Framework的全家桶理念&#xff0c;培养了一大批的CRUD&#xff0c;而.NET Core转变成了按需使用…

leetcode周赛第一题6037. 按奇偶性交换后的最大数字(冒泡法)

一:题目 二:上码 class Solution { public:int largestInteger(int num) {string str to_string(num);for (int i 0; i < str.size()-1; i) {for (int j i1; j < str.size(); j) {int num1 str[j]-0;int num2 str[i]-0;if (num1%2 num2%2) {//这里我们控制的是奇数…

从零开始打造专属钉钉机器人

一、前言废话不多的实现简单的钉钉机器人。我们分为下面几个步骤来逐步讲解。1.钉钉机器人的类型2.如何打造一个最最简单的钉钉机器人二、钉钉机器人的类型常用的钉钉机器人有两种&#xff0c;1、通知类型的机器人&#xff1a;适合在群内进行一些通知&#xff0c;推荐消息等内容…

Azure 内容审查器之文本审查

内容审查器Azure 内容审查器也是一项认知服务。它支持对文本、图形、视频进行内容审核。可以过滤出某些不健康的内容&#xff0c;关键词。使你的网站内容符合当地的法律法规&#xff0c;提供更好的用户体验。文本内容审核其中文本内容的审核应用比较广泛。比如在审核游戏中的群…

java并发之CAS

文章目录1:何为CAS2:CAS图示3:CAS和Volatile的关系4:为何CAS效率更高一些5:CAS的特点7:受保护得共享数据类型(1):原子基本数据类型(2):原子引用数据类型7:ABA问题(1):什么是ABA(2):如何解决呢&#xff1f;1:何为CAS CAS(Compare And Swap)&#xff0c;即比较并交换。是解决多线…

快速了解 ASP.NET Core Blazor

最近在几个微信 .NET 交流群里大家讨论比较频繁的话题就是这几天自己的面试经历。面试官&#xff1a;“你刚说你喜欢研究新技术&#xff0c;那你有了解过 Blazor 吗&#xff1f;”作为一位专注于 .NET 开发的软件工程师&#xff0c;你好意思说你对 Blazor 一点也不解吗&#xf…

ASP.NET Core集成Nacos配置中心之适配多格式配置

前言 默认情况下&#xff0c;用nacos-sdk-csharp集成ASP.NET Core的配置系统&#xff0c;是基于JSON格式的数据。随着业务系统的多样化&#xff0c;可能用的配置格式也是各有千秋的。有的会用yaml/yml&#xff0c;有的会用ini&#xff0c;有的会用xml&#xff0c;等等。那么如果…

Git的使用(快速入门)

文章目录[TOC]一:将本地的项目提交到Git上二:GIt的基本操作1:建立一个本地仓库(1):类别(2):创建全新的仓库(3):克隆远程仓库2:查看文件的状态3:在桌面上的文件提交到远程仓库4:在idea中的文件提交到远程仓库5:分支(1):何为分支(2):常用命令(3)注意6:解决合并冲突(1):问题展示(2…

为什么这么忙,还依然做不好事情?

一直都很喜欢《重来》系列&#xff0c;最近出了《重来3&#xff1a;跳出疯狂的忙碌》&#xff0c;第一时间在微信读书中阅读了&#xff0c;让我们印象比较深刻的就是「冷静」和「效率」&#xff0c;本文主要说说效率的问题。书的作者是贾森弗里德&#xff08;Jason Fried&#…

开源特训营 - Lesson 6 - 如何提交一个合格的PR

编辑&#xff1a;李明康责编&#xff1a;袁睿斌作者&#xff1a;课程助教 - 苏斌主讲教师&#xff1a;张齐勋&#xff08;北京大学&#xff09;、赵生宇&#xff08;同济大学&#xff09;本次课程的主题为《如何提交一个合格的PR》&#xff0c;主讲者为来自北京大学的张齐勋老师…

改进程架构,Edge优化浏览器内存问题

微软 Edge 团队称&#xff0c;“今天的浏览器更像是操作系统&#xff0c;而不是文档查看器。用户正在浏览器中执行越来越多的任务&#xff0c;而在桌面应用程序中执行的任务越来越少。与此同时&#xff0c;每个网页、Web 应用程序和扩展程序都在使用内存&#xff0c;这也会使用…

中芯国际第二代FinFET工艺有望与2020年底试产

媒体报道&#xff0c;第一代FinFET 14纳米已于2019年四季度量产&#xff1b;第二代FinFET N1已进入客户导入阶段&#xff0c;可望于2020年底小批量试产。梁孟松披露&#xff0c;中芯国际的下一代N1工艺和14nm相比&#xff0c;性能提升了20%&#xff0c;功耗降低了57%&#xff0…