呼吁 《上海市卫生健康“信息技术应用创新白皮书》改正 C# 被认定为A 组件是错误认知
近日,《上海市卫生健康“信息技术应用创新”白皮书》(以下简称《白皮书》)正式发布,介绍了“医疗信创核心应用适配方法、公立医院信息系统及全民健康信息平台信创设计思路”, 其中发现了一个错误的认知,C#/.NET 被认定为A 组件, 具体详见下图:
C#/.NET 平台需要被区分为两个阶段:.NET Core 1.0 对应的 C# 版本是 C# 7.0 为界线,我们来看下C# 的发展历程:
C# 1.0(2002年1月):作为与 Visual Studio .NET 2002 一起发布的版本,C# 1.0 在设计上受到了 Java 的影响。它的主要功能包括类、结构、接口、事件、属性、委托、运算符和表达式、语句以及特性,运行平台.NET Framework 1.0/Mono 1.0。
C# 2.0(2005年11月):此版本引入了泛型、匿名方法和迭代器等特性,大幅提高了语言的灵活性和性能,运行平台.NET Framework 2.0/Mono 2.0。
C# 3.0(2007年11月):这个版本伴随着 .NET 3.5 的发布,引入了LINQ、匿名类型、隐式类型的局部变量、对象和集合初始化器、扩展方法、查询表达式、Lambda 表达式等特性, 运行平台.NET Framework 3.5/Mono 2.0。
C# 4.0(2010年4月):增加了动态绑定、命名和可选参数、泛型协变和逆变、嵌入的互操作类型等特性, 运行平台.NET Framework 4.0/Mono 2.0。
C# 5.0(2012年8月):此版本引入了异步编程、调用方信息、协变返回类型和成员等特性, 运行平台.NET Framework 4.5/Mono 3.0。
C# 6.0(2015年7月):引入了自动属性初始化器、表达式体成员、字符串内插、空合并运算符、异常过滤器等特性, 运行平台.NET Framework 4.8/Mono 4.4,在2014年成立了.NET基金会。
C# 7.0(2017年3月):增加了 out 变量、元组、模式匹配、局部函数、ref 局部变量和返回、扩展异步返回类型等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET Core 1.0。
C# 7.1 和 7.2:这两个小版本分别在 2017 年 8 月和 2017 年 11 月发布,引入了默认表达式、异步 Main 方法、推断元组名称、数字分隔符、ref 结构、in 参数等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET Core 2.0。
C# 8.0(2019年9月):引入了可空引用类型、异步流、范围和索引、默认接口方法、只读成员、解构委托等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET Core 3.1。
C# 9.0(2020年11月):随 .NET 5 一起发布,引入了记录、仅限 Init 的资源库、顶级语句、模式匹配增强、本机大小的整数、函数指针等特性 , 运行平台.NET Framework 4.8/Mono 6.12/.NET 5.0。
C# 10(2021年11月):引入了记录结构、结构类型的改进、内插字符串处理程序、global using 指令、文件范围的命名空间声明、扩展属性模式、对 Lambda 表达式的改进、可使用 const 内插字符串、记录类型可密封 ToString()、改进型明确赋值、在同一析构中可同时进行赋值和声明、可在方法上使用 AsyncMethodBuilder 属性、CallerArgumentExpression 属性、增强的 #line pragma 等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET 6.0 。
C# 11(2022年11月):增加了原始字符串字面量、泛型数学支持、泛型属性、UTF-8 字符串字面量、字符串内插表达式中的换行符、列表模式、文件本地类型、必需的成员、自动默认结构、常量 string 上的模式匹配 Span、扩展的 nameof 范围、数值 IntPtr、ref 字段和 scoped ref、改进了方法组向委托的转换、警告波 等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET 7.0 。
C# 12(2023年11月):引入了主构造函数、集合表达式、内联数组、Lambda 表达式中的可选参数、ref readonly 参数、创建任何类型的别名、试验性属性、拦截器等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET 8.0.
我们从C# 的发展历程来看,他的运行平台一共有3个 Windows上的.NET Framework, 以及跨平台(Windows/Linux/Macos)运行的mono 和.NET Core/.NET , 从时间线上来看2014年成立.NET基金会是一个分水岭,2020 .NET 5的发布(2019年新冠疫情的爆发,统一的.NET时间变成了2020年),把.NET Framework/Mono/.NET Core 这三大平台开始统一为.NET,下面这张图来自我2019年参加华为云的一个演讲PPT《面向 .NET 和 .NET Core 开发人员的华为云》。
C# 从他的诞生之日就是标准的ECMA 334/335 标准,JavaScript 最初由 Netscape 开发,现在由 ECMA 标准化的 ECMAScript 版本广泛应用于网页开发。这些语言的标准化工作有助于确保不同平台和环境之间的兼容性和互操作性。
从标准化角度来说,把C#归类为A组件是完全错误的,从开源项目和版权归属来说C# 在2014年成为开源项目,并且所有的版权和专利都归属社区中立的.NET 基金会。Java 语言由 Sun Microsystems 开发,后来成为 Oracle 的一部分。Java的版权都归属Oracle,因此C#应当归类为浅蓝色的开源组件。
.NET 平台现在是指从(.NET 5.0开始的) 统一的C# 运行平台, 他的知识产权归属方是.NET基金会,使用最宽松的MIT和Apache 2开源协议,文档协议遵循CC-BY。这将允许任何人任何组织和企业任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版权和许可提示,后者协议将会除了为用户提供版权许可之外,还有专利许可,并且授权是免费,无排他性的(任何个人和企业都能获得授权)并且永久不可撤销。早在2022年微软就已经特别公告过 .NET 不受 美国出口管理条例(EAR) 的约束。微软已经在出口软件页面:https://www.microsoft.com/en-us/exporting/exporting-information.aspx 明确了.NET的所有版本(除了老的.NET Framework)不遵守美国出口管理条例EAR: https://www.bis.doc.gov/ ,因此我们完全不需要担心存在“断供”问题。
中国信通院在2022 | OSCAR开源产业大会 大会上发布的 全球开源生态研究报告里 首次提出 开源社区成熟度度量模型,.NET 是法律合规表现出色,组件许可证兼容性较高。.NET开源生态是基于MIT 和 Apache 2.0 协议基础上构建的,对于商业是友好的。
大家也可以下载信通院的《全球开源生态研究报告(2022年)》:http://www.caict.ac.cn/kxyj/qwfb/bps/202209/P020220916644891972234.pdf。
在国内,同样有这么一支在龙芯旗下的.NET编译器团队,他们在参与dotnet的核心开发,当然还有很多社区同学也在参与dotnet 的开源协作。龙芯.NET 团队已经发布了.NET Core 3.1和 .NET 6、.NET 7和.NET 8 , 他们也正在准备着发布.NET 9。具体可以关注他们的产品官网 http://www.loongnix.cn/zh/api/dotnet/。
中科院软件所还有一个团队在移植 RISC-V的工作。
OpenEuler 社区对.NET 的支持也是完整的。 OpenEuler 社区的李洋 在2023年12月份 中国 .NET 开发者峰会2023 上大家分享《openEuler社区对.NET的兼容支持介绍》,资料和视频参见
.NET 中文社区的网站。
上海市卫生健康“信息技术应用创新”白皮书,这样的内容作为白皮书向全社会发布,需要遵守公平、公正的原则。 这里呼吁相关白皮书的发布单位及时纠正其中的错误。
呼吁 《上海市卫生健康“信息技术应用创新白皮书》改正 C# 被认定为A 组件是错误认知的更多相关文章
- .NET 是信息技术应用创新产业重要参与者
今天是国庆节,也是中秋节,月满中秋,举国欢庆,在这里祝各位开发者中秋国庆快乐. 放假在家就想把这几年对于.NET发展相关生态做个梳理,写一篇文章来总结一下这两年从腾讯出来自己创业,推动.NET在国内的 ...
- OneAPM 获得“2018中国 IT 服务创新奖”,彰显技术创新实力
6月30日,主题为“智能服务 数字中国”的中国 IT 服务创新大会在京召开.作为第22届中国国际软件博览会的重头戏,本次大会由工业和信息化部.北京市人民政府共同主办,中国电子工业标准化技术协会信息技术 ...
- 9102 IT人保持记忆力及健康的方法
做技术时间久了,我们会发现有的时候我们会感觉记忆力衰减太快,前脚刚忙完的事或者刚做完计划任务没多久就遗忘了,或者是以前轻车熟入的方法死活都记不起来了,亦或者之前学习一门技术很快就掌握真谛,现在即便花N ...
- IT行业的创新的读后感
一.什么是创新 创新是以新思维.新发明和新描述为特征的一种概念化过程.它原意有三层含义,第一,更新:第二,创造新的东西:第三,改变.创新是人类特有的认识能力和实践能力,是人类主观能动性的高级表现形式, ...
- IT行业创新的读后感
一.什么是创新 创新是以新思维.新发明和新描述为特征的一种概念化过程.它原意有三层含义,第一,更新:第二,创造新的东西:第三,改变.创新是人类特有的认识能力和实践能力,是人类主观能动性的高级表现形式, ...
- 2017人工智能元年,AI在喧嚣和质疑中一路走来
前百度首席科学家吴恩达说:就像100年前的电力.20年前的互联网一样,AI也会改变每一个产业! 有人说,现在就像1995年,那一年,第一家互联网公司--网景上市,一天之内大涨208%,互联网正式登上历 ...
- 一文解读AIoT (转)
AIoT即AI+IoT,指的是人工智能技术与物联网在实际应用中的落地融合.目前,越来越多的行业及应用将AI与IoT结合到了一起,AIoT已经成为各大传统行业智能化升级的最佳通道,也是未来物联网发展的重 ...
- .NET 在信创常用软件适配清单之中?
2020年8月份写了一篇文章<.NET Core也是国产化信息系统开发的重要选项>, 这又过去了大半年了,在信创领域发生了很大的变化,今天写这篇文章主要是想从信创常用软件适配清单 看一看. ...
- AIoT开放平台及应用
AIoT开放平台及应用 阿里AIoT开放平台,是阿里云IoT面向开发者的能力接入渠道,开发者可以在这里完成能力的申请.开通.部署.配置和集成开发等一些列工作.这些能力并不的独立交付,而是通过关联到行业 ...
- You Only Live Once
从做 PreAngel 以来,每年我都会抽空去美国一两次,主要是在硅谷(湾区)一带见见当地的朋友,他们主要有 VC.创业者.斯坦福和伯克利的学生创业组织负责人.无线科技领域的各种组织机构负责人等,我一 ...
随机推荐
- GitHub 的 Action 判断仅在主仓库才执行脚本
我有一个 GitHub 项目,这个项目配置了仅需要在源仓库才能执行的 Action 如推送 NuGet 等发布动作.如何在 Action 里面设置让 Fork 的仓库不执行 Action 的步骤 想要 ...
- vue-苟曰的老板不发工资230行原创js代码写个扫雷小游戏
上gif: 1.开局提示动画 2.游戏中状态提示 3.开挂模式提示 4.计时器 5.游戏模式扫雷成功,蓝色进度条表示当次扫雷的完成度 6.若当次时间小于最佳记录,则更新最佳记录,如果最佳记录小于设置的 ...
- Java中HTTP下载文件——并解决跨域
1.常用的需要设置的MIME类型 任何文件(二进制文件) application/octet-stream .doc application/msword .dot application/mswor ...
- 【Android】Binder的Oneway拦截
在某些虚拟化,免安装,打点,环境检测,拦截器等场景,针对Android系统服务接口的拦截是常用的技术方案.通常只是针对正向的接口调用,如果涉及被动的服务回调拦截,则实现起来就有些许麻烦. 说明 由于我 ...
- goland配置在远程linux里运行代码开发,并debug调适
环境: windows 10 phpstudy8.1.1.3 Vmware安装centos7.6 场景 window10里goland开发,在远程linux里运行,并debug断点调适 步骤: win ...
- Could not find mimemagic-0.3.2 in any of the sources
rails s报如下错误 Could not find mimemagic-0.3.2 in any of the sources Run `bundle install` to install mi ...
- Git基本操作命令大全
一.全局配置命令 ## 配置级别: –local(默认,高级优先):只影响本地仓库 –global(中优先级):只影响所有当前用户的git仓库 –system(低优先级):影响到全系统的git仓库 # ...
- Cesium的HeadingPitchRange 用法
这个有别于headingpitchroll, headingpitchroll是用在orientation属性上的(比如相机的setView,flyTo,以及entities.add中) Headin ...
- pageoffice6 版本实现word 文件添加水印
在很多场景下,Word文档正式发文之前,或者说形成最终文档之前,常常需要往Word文件中添加水印,并且会根据文件类型或内容的不同,需要添加的水印也不一样. 添加水印是Word软件里的一个简单功能,直接 ...
- 通过 InnoSetup 美化安装界面
InnoSetup 的美化相应的帖子也比较多,但是代码不是很全...所以我专门出了这篇文章来记录下这个美化过程.废话不多说,先上个成果: 前端er们可以直接下载 vue-nw-seed 这个分支,一键 ...