.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发展的强劲动力,很多人在谈到.NET Core相对于.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项目迁移到.NET Core或升级旧版本.NET Core的信心,随着.NET Core/Framework,新旧版本之间的差距越来越大,最终造成了恶性循环,项目的老化积重难返,想找到靠谱的人维护也变得逐渐困难。
但是从总体上来说,这些年.NET的在技术发展上取得的成绩是值得欣喜的,它走出的每一步都是让.NET继续焕发青春,接下来几年时间里也是国家信息技术应用创新产业发展的黄金时间,一个完全开放的.NET生态会是这里非常重要的参与者。
.NET 是信息技术应用创新产业重要参与者的更多相关文章
- 【RPA之家转载RPA创新产业峰会回看】机器人流程自动化专利态势报告
[RPA之家转载RPA创新产业峰会回看]机器人流程自动化专利态势报告 自动化的一个专利情况的监测,就是全球监测的情况.今天我可能给大家汇报的主要是三个方面,第一个方面就是讲一下全球投资智能化的专利的一 ...
- OneAPM 获得“2018中国 IT 服务创新奖”,彰显技术创新实力
6月30日,主题为“智能服务 数字中国”的中国 IT 服务创新大会在京召开.作为第22届中国国际软件博览会的重头戏,本次大会由工业和信息化部.北京市人民政府共同主办,中国电子工业标准化技术协会信息技术 ...
- 焦虑的 BAT、不安的编程语言,揭秘程序员技术圈生存现状!
[程序人生编者按]在迭代不休的技术圈中,仅在过去的一个月期间,我们见证了有史以来第一张黑洞照片的诞生:经历了为让人义愤填膺的 996:思考了作为程序员的年龄之槛:膜拜了技术大神的成长历程:追逐了如编程 ...
- 一文解读AIoT (转)
AIoT即AI+IoT,指的是人工智能技术与物联网在实际应用中的落地融合.目前,越来越多的行业及应用将AI与IoT结合到了一起,AIoT已经成为各大传统行业智能化升级的最佳通道,也是未来物联网发展的重 ...
- [转帖]方正数码发布基于龙芯3A3000系列整机
方正数码发布基于龙芯3A3000系列整机 http://www.loongson.cn/news/company/730.html 方正数码也出过龙芯相关的服务器和PC笔记本等 发布时间:2019-0 ...
- AIoT开放平台及应用
AIoT开放平台及应用 阿里AIoT开放平台,是阿里云IoT面向开发者的能力接入渠道,开发者可以在这里完成能力的申请.开通.部署.配置和集成开发等一些列工作.这些能力并不的独立交付,而是通过关联到行业 ...
- 详解六大国产CPU处理器
一个执着于技术的公众号 CPU作为计算机设备的运算和控制核心,负责指令读取.译码与执行,因研发门槛高.生态构建难,被认为是集成电路产业中的"珠穆朗玛峰". 纵观全球,Intel.A ...
- ASP.NET MVC4入门到精通系列目录汇总
序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...
- 30天,O2O速成攻略【8.16武汉站】
活动概况 时间:2015年08月16日13:30-16:30 地点:光谷创业咖啡(光谷广场资本大厦一楼停车场内) 主办:APICloud.爱立示.MBA移动业务助理 网址:www.apicloud.c ...
随机推荐
- linux网络配置及虚拟机连接不上网排错思路
第1章 操作系统与虚拟软件的使用 1.1 虚拟软件使用方法 Vmware 1.1.1 开启vmware 注: 同时只能开启一个VMware软件,如果开了两个VMware窗口 提示 ...
- go语言之文件操作
一: 相关的API 1func Create(name string) (file *File, err Error) 根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666 2 func ...
- 揭秘!containerd 镜像文件丢失问题,竟是镜像生成惹得祸
导语 作者李志宇,腾讯云后台开发工程师,日常负责集群节点和运行时相关的工作,熟悉 containerd.docker.runc 等运行时组件.近期在为某位客户提供技术支持过程中,遇到了 contain ...
- C# Chart各个属性详细解析、应用
Chart笔记 前台页面代码: <form id="form1" runat="server"> <div> <asp:Chart ...
- Salesforce LWC学习(二十三) Lightning Message Service 浅谈
本篇参考: https://trailhead.salesforce.com/content/learn/superbadges/superbadge_lwc_specialist https://d ...
- jumpserver如何在远程时使用复制粘贴-windwos系统下
jumpserver堡垒机搭建好了,但是在使用的时候,有时候会出现远程下不能复制粘贴,这让体验十分不爽. 于是着手解决这个问题,附上参考链接,感谢大佬:http://itren.xiaolee.net ...
- Maven 仓库镜像设置
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>al ...
- 让mvn打包时跳过Junit测试
原来在使用命令 “mvn clean package” 发生了测试报错,说是几个testcase出现问题了. 另一方催jar得紧,于是用 命令 “mvn package -DskipTests”,只让 ...
- python基础:网络编程
一.网络编程 简而言之,就是通过代码打开一个url,获得返回结果并做处理.通常所说的python爬虫,就属于网络编程 二.urllib模块进行网络编程 这个方法很繁琐,不建议使用.了解 示例1: 获取 ...
- java中双亲委派机制(+总结)
类加载器 加载类的开放性 类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因.在类加载的第一阶段"加载"过程中,需要通过一个类的全限定名来获 ...