呼吁 《上海市卫生健康信息技术应用创新白皮书》改正 C# 被认定为A 组件是错误认知

news/2024/9/22 7:04:22

近日,《上海市卫生健康“信息技术应用创新”白皮书》(以下简称《白皮书》)正式发布,介绍了“医疗信创核心应用适配方法、公立医院信息系统及全民健康信息平台信创设计思路”, 其中发现了一个错误的认知,C#/.NET 被认定为A 组件, 具体详见下图:

C#/.NET 平台需要被区分为两个阶段:.NET Core 1.0 对应的 C# 版本是 C# 7.0 为界线,我们来看下C# 的发展历程:

  1. C# 1.0(2002年1月):作为与 Visual Studio .NET 2002 一起发布的版本,C# 1.0 在设计上受到了 Java 的影响。它的主要功能包括类、结构、接口、事件、属性、委托、运算符和表达式、语句以及特性,运行平台.NET Framework 1.0/Mono 1.0。

  2. C# 2.0(2005年11月):此版本引入了泛型、匿名方法和迭代器等特性,大幅提高了语言的灵活性和性能,运行平台.NET Framework 2.0/Mono 2.0。

  3. C# 3.0(2007年11月):这个版本伴随着 .NET 3.5 的发布,引入了LINQ、匿名类型、隐式类型的局部变量、对象和集合初始化器、扩展方法、查询表达式、Lambda 表达式等特性, 运行平台.NET Framework 3.5/Mono 2.0。

  4. C# 4.0(2010年4月):增加了动态绑定、命名和可选参数、泛型协变和逆变、嵌入的互操作类型等特性, 运行平台.NET Framework 4.0/Mono 2.0。

  5. C# 5.0(2012年8月):此版本引入了异步编程、调用方信息、协变返回类型和成员等特性, 运行平台.NET Framework 4.5/Mono 3.0。

  6. C# 6.0(2015年7月):引入了自动属性初始化器、表达式体成员、字符串内插、空合并运算符、异常过滤器等特性, 运行平台.NET Framework 4.8/Mono 4.4,在2014年成立了.NET基金会。

  7. C# 7.0(2017年3月):增加了 out 变量、元组、模式匹配、局部函数、ref 局部变量和返回、扩展异步返回类型等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET Core 1.0。

  8. C# 7.1 和 7.2:这两个小版本分别在 2017 年 8 月和 2017 年 11 月发布,引入了默认表达式、异步 Main 方法、推断元组名称、数字分隔符、ref 结构、in 参数等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET Core 2.0。

  9. C# 8.0(2019年9月):引入了可空引用类型、异步流、范围和索引、默认接口方法、只读成员、解构委托等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET Core 3.1。

  10. C# 9.0(2020年11月):随 .NET 5 一起发布,引入了记录、仅限 Init 的资源库、顶级语句、模式匹配增强、本机大小的整数、函数指针等特性 , 运行平台.NET Framework 4.8/Mono 6.12/.NET 5.0。

  11. C# 10(2021年11月):引入了记录结构、结构类型的改进、内插字符串处理程序、global using 指令、文件范围的命名空间声明、扩展属性模式、对 Lambda 表达式的改进、可使用 const 内插字符串、记录类型可密封 ToString()、改进型明确赋值、在同一析构中可同时进行赋值和声明、可在方法上使用 AsyncMethodBuilder 属性、CallerArgumentExpression 属性、增强的 #line pragma 等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET 6.0 。

  12. C# 11(2022年11月):增加了原始字符串字面量、泛型数学支持、泛型属性、UTF-8 字符串字面量、字符串内插表达式中的换行符、列表模式、文件本地类型、必需的成员、自动默认结构、常量 string 上的模式匹配 Span、扩展的 nameof 范围、数值 IntPtr、ref 字段和 scoped ref、改进了方法组向委托的转换、警告波 等特性, 运行平台.NET Framework 4.8/Mono 6.12/.NET 7.0 。

  13. 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 开发人员的华为云》。

image

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 协议基础上构建的,对于商业是友好的。

image

大家也可以下载信通院的《全球开源生态研究报告(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 中文社区的网站

image


上海市卫生健康“信息技术应用创新”白皮书,这样的内容作为白皮书向全社会发布,需要遵守公平、公正的原则。 这里呼吁相关白皮书的发布单位及时纠正其中的错误。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【译】VisualStudio.Extensibility 17.10:用 Diagnostics Explorer 调试您的扩展

VisualStudio. Extensibility 帮助您构建在主 IDE 进程之外运行的扩展,以提高性能和可靠性。它还提供了一个时尚而直观的基于 .NET 8 的 API 和全面且维护良好的文档,可以帮助您开发出色的扩展。想象一下,创建的扩展比以往任何时候都运行得更快、更流畅!如果您最近还没有跟…

一个非侵入式跟踪分析程序

otel-profiling-agent为elastic开源项目,用于对生产环境中的应用程序进行性能分析,帮助开发者理解程序的运行情况,识别瓶颈,优化性能。用于包括CPU和内存使用情况的分析、调用跟踪、性能指标收集等功能。它是一个用于Linux的全系统、跨语言的性能分析器,通过eBPF(Extende…

2024CISCN华东南-WEB-gxngxngxn

WEB 差不多2小时就把web给ak了,没想到华东南强度最大的不是题目,而是场地连续8小时的30多度高温(welcomesubmit-BREAKsubmit-FIX 修复点在upload.php <?php // $path = "./uploads"; error_reporting(0); $path = "./uploads"; $name=$_FILES[myfile…

openai开源 shap-e 根据文本或图像生成 3D 模型,支持导入blender

OpenAI开源Shap-E,部署与使用详细教程。文本图片可生成3D动画和建模文件。介绍 github仓库地址:https://github.com/openai/shap-e 技术原理论文:https://arxiv.org/abs/2305.02463 官方生成效果示例:部署安装 打开colab:https://colab.research.google.com/ 新建一个笔记,…

山东大学项目实训-基于LLM的中文法律文书生成系统(十九)- RAG(5)

项目代码解读 # 官方库 import os import shutil import time from datetime import datetime import logging import pickle from glob import glob from typing import List# 第三方库 # langchain库 from langchain.document_loaders import UnstructuredPowerPointLoader, …

GitHub上狂揽62Kstars的程序员做饭指南

写在前面 作为一名程序员,我们经常会在全球最大的同性交友网站 GitHub上寻找一些优质的开源项目来学习,以提升自己的专业技能。 今天给大家推荐的是一个GitHub上狂揽61K⭐⭐的开源项目。项目名叫做HowToCook,只听名字,大家应该能想到这是一个教程序员怎么做饭的项目。 作为一…

VueX Vue: Could not find a declaration file for module vuex.

vuex4.0.2 webstorm报如下错误 Vue: Could not find a declaration file for module vuex.解决办法 在src目录下新建一个vuex.d.ts 文件内容如下 declare module "vuex" {export * from "vuex/types/index.d.ts";export * from "vuex/types/helpers.d…

webstorm vue3+ts报错:Cannot find module ‘@/views/xxx.vue‘ or its corresponding type declarations

意思是说找不到对应的模块“@/views/xxx.vue”或其相应的类型声明因为ts只能解析 .ts 文件,无法解析 .vue文件 解决方法很简单,一开始的时候env.d.ts是空文件(如vite-env.d.ts),我们可以在项目的env.d.ts中引入如下代码: declare module *.vue {import { DefineComponent }…