官方服务微信:dat818 购买与出租对接

微软.NET 跨平台之路:艰辛付出与海量工作的成果展示

1万

主题

2

回帖

3万

积分

管理员

积分
31280
发表于 2024-11-10 03:28:58 | 显示全部楼层 |阅读模式
    微软在.NET跨平台道路上投入了大量的精力,做了大量的工作。首先推出统一的API标准规范库.NET,并不断补充和完善标准库。截至目前(2021-5-26),最新版本为.NET 2.1。随后,跨平台解决方案.NET Core发布,.NET基金会成立,生态建设大力发展。全球知名IT公司纷纷加入并做出贡献,社区发展极为活跃。收购该公司后,Mono也加入了微软大家庭,填补了微软技术栈在移动APP开发领域的技术空白。

    此后, .NET 演变为新的统一架构,如下图所示。

    。网

    .NET开发平台包括公共语言运行时(CLR)和基类库(BCL)。前者负责管理代码执行,后者提供丰富的类库来构建应用程序。  最初设计 .NET 是为了实现应用程序跨平台的可能性,但随着  将其实施工作付诸实践,他们发现该平台在 .NET 上运行效果最佳。

    自从 .NET .5.2 成为操作系统的官方组件以来,.NET 已安装在超过 10 亿台计算机上,因此必须尽可能少地对其进行更改。即使修复错误也可能会导致问题,因此更新很少。在计算机上,为 .NET 编写的所有应用程序共享相同版本的 CLR 和存储在全局程序集缓存 (GAC) 中的库,如果其中某些应用程序需要特定版本来确保兼容性,则可能会出现问题。

    事实上,.NET 仅适用于系统,并且由于它是一个旧平台,因此不建议使用它创建新的应用程序。

    应用场景:对于传统的桌面解决方案,使用WPF和.

    .NET核心

    现代移动技术和计算的发展使得操作系统不再那么重要。因此, 一直致力于将 .NET 从与 .NET 的紧密联系中分离出来。在将 .NET 重写为真正跨平台的同时,微软还利用这个机会重构并删除了不再被视为核心的主要部分。

    新产品称为 .NET Core,包括称为 .NET Core 的 CLR 跨平台实现和称为 .NET Core 的简化类库。

    微软 .NET 项目经理 Scott 认为:“40% 的 .NET Core 客户是新平台开发人员。这正是我们想要的。我们希望引入新人才。”

   


    .NET Core 运行速度快,因为它可以与应用程序并行部署,因此 .NET Core 可以频繁更改,因为更改不会影响同一台计算机上的其他 .NET Core 应用程序。  对 .NET Core 所做的改进无法添加到 .NET 中。

    应用场景:跨平台(Linux、macOS)的解决方案,如物联网IoT、人工智能AI、AR、MR、Web等。

    一家第三方公司开发了一个名为 Mono 项目的 .NET 实现。 Mono 是跨平台的,但它远远落后于官方的 .NET 实现。 Mono 发现了其作为移动平台以及跨平台游戏开发平台(例如 Unity)基础的价值。

    微软于 2016 年收购了它,并在微软免费提供曾经昂贵的扩展。微软重新命名了一款只能为 Mac 创建移动应用程序的开发工具,并赋予其创建其他类型应用程序的能力。借助 99 for Mac,微软将能够用 99 for Mac 替换编辑器的部分功能,以提供更接近的体验和性能。

    应用场景:iOS、tvOS、.

    。网

    自.NET平台开发以来,微软控制了三个技术平台,如上图所示。

    上述每个 .NET 平台都有优点和缺点,因为它们是针对不同的场景而设计的。这会导致这样的问题:开发人员必须学习三个 .NET 平台,每个平台都有令人讨厌的怪癖和限制。因此,微软定义了.NET,它是所有.NET平台都可以实现的一组API规范,以控制其兼容性级别。例如,与.NET .4兼容的平台表示基本支持。

    在 .NET 2.0 及更高版本中, 将这三个 .NET 平台融合为现代最低标准,这使得开发人员可以更轻松地在任何类型的 .NET 之间共享代码。在.NET Core 2.0及更高版本中,微软添加了许多缺失的API,开发人员需要将为.NET编写的旧代码移植到跨平台的.NET Core。但一些 AP 已经实现,可以抛出异常,以向开发人员表明实际上不应该使用它们。这通常是由于 .NET Core 运行的操作系统不同造成的。

    重要的是要了解 .NET 只是一个标准。您不能像安装 HTML5 一样安装 .NET。要使用 HTML5,您必须安装实现 HTML5 标准的 Web 浏览器。

    要使用 .NET,您必须安装实现 .NET 规范的 .NET 平台。 .NET .0 由最新版本的 .NET、.NET Core 和 .NET 实现。

    最新的.NET .1仅由.NET Core3、Mono和.NET实现。 C# 8.0 的某些功能需要 ..1,.NET .8 不实现 .NET .1,因此 .NET 应被视为旧技术。

   


    .NET的详细介绍和使用可以参考我的博客《.NET平台系列20.NET应用详解》系列

    公共基础设施,简称CI。它位于体系结构的最低层,构建在操作系统之上。主要包括开发语言、编译器和运行时。详细介绍请参考我的博客

    开发工具

    从第一代产品到现在的2019年,它们都与系统紧密结合。跨平台需求出现后,微软开发了Mac的跨平台开发工具。下载地址:2019版&Mac版()

    随着VS产品不断升级,功能越来越强大,产品自然也变得更大、略显笨重,对开发者的电脑硬件配置要求也在不断提高。而且包括2019年在内,VS一直是32位应用,主进程最大只能有4GB,从而限制了VS的使用场景。 2021年4月18日,微软宣布将于今年夏天发布首个64位版本2022。

    官方测试视频显示,当打开包含1600个项目、约30万个文件的解决方案时,最大内存占用可以达到5G+,没有任何问题! 2022年还将大幅提升文件打开速度、代码调试性能、代码搜索性能、更强大的代码预测AI引擎、更好的macOS支持等改进,继续在成为宇宙第一IDE的道路上前进。跑步!
您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|关于我们

Copyright © 2001-2025, Tencent Cloud.    Powered by Discuz! X3.5    京ICP备20013102号-30

违法和不良信息举报电话:86-13718795856 举报邮箱:hwtx2020@163.com

GMT+8, 2025-1-6 04:26 , Processed in 0.052944 second(s), 18 queries .