我对.Net和C#领域比较陌生.

对于这一切,我真的搞不懂.我搜索了很多,但找不到任何关于语言和它与.NET的关系的简单而直接的解释/故事(也指所有其他不同的版本名称,如标题)

我有几个问题.

  1. 微软是否撤回了对.Net框架的支持,不是安全更新,而是C#语言的改进和新功能、特性等(众所周知,微软已经撤回了对.Net Core的支持--实际上是2.x、3.x和标准--实际上是1.x、2.0、2.1,但我还没有看到.Net框架的任何支持)

  2. 如果第二个问题的答案是否定的,那么为什么没有更新版本的C#用于.Net框架:Source 1:Source 2:

  3. 为什么.Net有不同的名称(正如我在标题中所写的那样).哪一个是给谁的?

推荐答案

以下是.NET标准的简化说明,包括.NET的不同名称和版本:

.NET Standard:这是一个规范,它定义了一组可由.NET应用程序使用的公共API.这使得编写可以在不同的.NET平台上运行的代码成为可能,例如.NET框架、.NET Core和.NET 5及更高版本.

.NET Framework:这是.NET平台的原始版本,主要用于构建Windows桌面和Web应用程序.它仍然受到支持,但它被认为是一项遗留技术.

.NET Core:这是一个跨平台版本的.NET,引入它是为了克服.NET框架的一些限制.它轻量级、速度快,适合构建可以在Windows、MacOS和Linux上运行的跨平台应用程序..NET Core是新项目的推荐 Select .

.NET 5 and beyond Microsoft决定简化命名,并将.NET Core和.NET框架融合到称为.NET 5的单一平台中.这一新平台完全受支持,是新项目的推荐 Select .

总之,如果您要开始一个新项目,您应该使用最新版本的.NET Standard,例如.NET Standard 2.1或更高版本.这将为您提供最先进的功能和改进,还将使您的应用程序更加跨平台.

Csharp相关问答推荐

如果没有中间变量,可空引用类型将无法工作

System.Text.Json:反序列化返回为空数组的字典时出错

如何使用FastEndpoints和.NET 8 WebAppliationBuilder进行集成测试?

C# Json重新初始化动态类型

Microsoft.AspNetCore.Mvc. Controller Base.用户:属性或索引器Controller Base.用户无法分配给--它是只读的

在命令行中使用时安装,但在单击时不会安装

ASP.NET MVC中创建视图的过滤器

如果属性名为xyz,我需要使用System.Text.Json修改字符串类型的值""<>

如何分配对象后的class的属性?

限制特定REST API不被访问,但部署代码

获取具有AutoFaces的所有IOptions对象的集合

附加标题不起作用,而添加则起作用

我的MRG32k3a算法实现返回的数字超出了预期的[0,1]范围

Linux Docker上的.NET6在某个时间抛出后,在加密操作期间发生System.Security.Cryptography.CryptographicException:错误

Regex字母数字校验

有没有更好的方法来在CosmosDB上插入非id?

当空判断结果赋给变量时,为什么会出现可能空异常警告的解引用?

Blazor Server/.NET 8/在初始加载时调用异步代码是否冻结屏幕,直到第一次异步调用完成?

在.NET8中如何反序列化为私有字段?

如何对列表<;列表>;使用集合表达式?