C# 和 .NET Core 的关系

目录
  • 一、.NET 框架的背景

  • 二、为什么选择 .NET Core(和 Xamarin)

  • 三、.NET Core 的目标

  • 四、多平台支持

  • 五、快速发展和升级

  • 六、程序占用空间小、部署简单、版本问题少

  • 七、开源社区支持

  • 八、改进的应用程序性能

  • 十一、.NET 框架的未来

  • 十二、Xamarin 的适用之处

一、.NET 框架的背景

.NET 框架最初是在 2002 年发布的。从编程框架的角度来说,它已经很“成熟”了,几乎包含了所有重要的、人们想要的、在主流编程语言中目前可用的功能。但是,认为 .NET 已经步入了“老年阶段”是错误的,“中年”可能是更恰当的描述。毕竟,C 和 C++ 的存在时间远远超过了 C#。

虽然 .NET 框架仍然是开发它设计之初用来创建的应用程序类型的绝佳选择,但在过去的 15 年中,计算机领域已经发生了很大的变化,我们将在下一节中进行描述。

二、为什么选择 .NET Core(和 Xamarin)

.NET 框架主要用于为运行 Windows 操作系统的计算机(包括服务器和客户端工作站)开发应用程序。在 .NET 被引入时,微软在个人电脑操作系统中占据主导地位,智能手机还需要数年时间才会诞生。然而,随着时间的推移,Unix 和 Apple 都成功地削减了微软在计算机领域的市场份额。此外,一个更为重要的发展是向移动设备的巨大转移,而微软在移动领域的份额(无论是硬件还是软件)甚至可以忽略不计。第三个主要趋势是基于 Web 的应用程序(而非基于桌面的应用程序)的份额增加。

这三种趋势降低了 Windws 桌面应用程序的重要性,而有利于 Web 和移动应用程序以及在 Windows 以外的操作系统上运行的桌面应用程序的发展。这绝不意味着 Windows 桌面应用程序很快就会消失,只是大多数人认为未来最大的增长将来自 Web 应用和移动应用。

基于此,微软得出结论,它可以用 .NET 框架的一个基于云的、跨平台的、开源衍生产品,更好地解决 Web 开发以及 Linux 或 macOS 计算机的开发。它将这个新框架称为 .NET Core。大约在同一时间,微软收购了 Xamarin 以解决 Android 和 IOS 等移动平台的开发问题。

你需要知道的是,无论是开发完整的 .NET 框架应用程序、.NET Core 应用程序还是 Xamarin 应用程序,你都可以使用 C# 语言。

三、.NET Core 的目标

以下列表总结了 .NET Core 的主要目标:

  • 多平台支持

  • 快速开发和升级

  • 更小的应用程序占用空间

  • 更简单的部署

  • 更少的版本问题

  • 开源社区支持

  • 改进的应用程序性能

  • 全新的开始

四、多平台支持

自计算机时代开始以来,编程框架的圣杯一直是“次编写,到处运行”。尽管大多数新的努力似乎让我们更接近这个目标,但是即便是现在,这个目标仍然令人难以企及。.NET Core 允许开发人员创建在 Windows 上运行的应用程序,并且只需进行少量的修改就可在 Linux 和 macOS 上运行。在撰写本文时,有一些测试版的 .NET Core 能够在 ARM 处理器(例如 Raspberry Pi)上运行。

多平台支持还包括在 Windows 以外的操作系统上进行开发。Visual Studio Code 是微软创建的一个新的集成开发环境,可以在 Linux、macOS 和 Windows 上运行。

五、快速发展和升级

过去,软件通常每两到三年就会升级一次主版本。例如,Windows 95 之后是 Windows 98,然后是 Windows 2000。同样,Microsoft Office 2010 之后是 Microsoft Office 2013 和 Microsoft ffice 2016。在主版本之间,通常是一个或多个包含错误修复和小改进的服务包。

如今,用户希望能够加快改进速度。例如,电动汽车制造商特斯拉经常并且频繁地为其车辆中的软件提供在线升级。

.NET 框架的初始版本大部分是通过光盘进行分发的,再往前几年,主要的软件发布还需要使用大量的软盘。当互联网首次进人公众视野时,拨号速度通常为每秒 14.4 或 28.8 千比特。相比之下,今天,大多数软件都是通过互联网分发的,速度比之前快几百甚至几千倍。应用程序加入了检查服务器是否有可用更新的功能,并根据用户的偏好自动安装或提示用户选择安装时间。

应用程序通常以模块化方式设计,以便可以独立升级不同的组件,而无须更换整个应用程序。在这方面,.NET Core 是高度模块化的,可以通过 NuGet 包自动升级,如下一节所述。

六、程序占用空间小、部署简单、版本问题少

.NET Core 基于 NuGet 包进行分发。是提供某些功能单元的代码库。包存储在 NuGet Galley上,可以根据需要从中下载。开发人员可以决定他们创建的包的模块化程度。

相比之下,.NET 框架现在包含 20000 多个类,在任何开发工作站和每个应用程序用户的计算机上都必须完整安装。通过仅指定相关的包,.NET Core 应用程序的总占用空间可以比完整的 .NET 框架应用程序小得多。不可否认,每个客户端工作站(每个版本)只需安装一次 .NET 框架,但相比之下,该安装过程是相当漫长的。

此外,要求运行 .NET 框架应用程序的所有目标计算机必须与开发应用程序的计算机具有相同的 .NET 版本,但是如果出于某种原因,无法在目标计算机上升级 .NET 框架,则可能会出现问题。这可能是由权限、公司政策或其他因素造成的,就需要为特定用户或者使用早期 .NET 版本的用户重新编译该应用程序。

相比之下,.NET Core 应用程序不会受到同样的约束。.NET Core 框架可以与应用程序代码并行发布,因此永远不会发生版本冲突。在目标计算机上已存在 .NET Core 框架(版本也合适)的情况下,应用程序可以选择使用现有代码,从而进一步减少应用程序的安装占用空间。

此外,由于每个应用程序都可以拥有自己的 .NET Core 库副本,因此可以在同一台计算机上使用不同版本的 .NET Core 来并行运行多个 .NET Core 应用程序。这将允许在不同时间升级不同的应用程序,而无须同时升级所有的应用程序。

七、开源社区支持

一般认为开源软件的好处是成本更低、灵活性更高(包括可定制化)、自由度更大、安全性更高和责任性更强。

私有软件的源代码通常是一个严格保守的秘密。如果该软件包含错误或极端情况下的异常行为,那么该软件的用户无法知道软件内部是如何工作的。相比之下,任何拥有适当工具的人都可以看到开源软件(的源代码),以便了解可能导致错误或异常行为的原因。有了这些知识,开发人员可以修复错误或修改自己的与这部分代码交互的代码,从而避免不良后果。

当有数百甚至数千名开发人员可以在错误发现的第一时间就进行修复时,这些修复就可能会比私有软件更快。至少在理论上,这可以产生更安全和更稳定的代码。

开发人员也可以自由地修改或扩展开源软件。与私有软件相比,这给用户提供了更大的灵活性。此外,如果将这些修改或扩展反过来提供给项目,则其他用户也可以从中受益。

八、改进的应用程序性能

通过基于现有 .NET 框架创建一个新的框架,但又不放弃完整的 .NET 框架,微软能够解耦过时和遗留的东西,同时实现一个更适合当今环境的新框架结构。

.NET Core 1.0 于 2016 年 6 月发布,随后版本 1.1 于 2017 年 3 月发布,增加了对几个新的操作系统发行版的支持,增加了一些新的 API,还修复了一些错误。

版本 2.0 于 2017 年 8 月发布。此版本显著增加了 API 的数量,性能也有很大的改进。此版本还包括对 Visual Basic .NET 的支持。如你所见,.NET Core 的改进速度比 .NET框架快得多。

十一、.NET 框架的未来

虽然你刚刚阅读了这些内容,但没有必要担心 .NET 框架的命运。微软承诺 .NET 框架将继续发展,并将继续在 Windows 操作系统的当前和未来版本中得到支持。因此,它将继续在 Windows桌面应用程序的开发中发挥关键作用,特别是在企业领域。如前所述,.NET Core 的优势使其成为 Web (ASP.NET Core)和通用 Windows 平台应用程序开发的首选平台。同时,.NET Core 通常也是开发旨在 Linux 或 macOS 上运行的应用程序的最佳选择。

十二、Xamarin 的适用之处

Xamarin 是一个允许使用 C# 和 .NET 库开发原生 Android、IOS 和 Windows 应用程序的平台。在 PC 上,Xamarin 的开发是在 Visual Studio 上进行的(在启用附加功能之后)。在 Mac 上,开发是在 Xamarin Studio 的继任者 Visual Studio for Mac 上进行的。不管是什么 IDE,也不管目标平台是 Android、iOS 还是 Windows,开发语言都是 C#。因此,Xamarin 扩展了可将 C# 用作开发语言的范围。

2016 年,Xamarin 被微软收购,随后 Xamarin 和 Visual Studio 捆绑在了一起。 连 Visual Studio 的社区(免费)版也包括了 Xamarin。Xamarin SDK 现在已经是开源的了。微软将 Xamarin 称为“.NET 跨平台移动开发”。虽然从技术上讲,Xamarin 的功能远不止如此,但这超出了本文的范围。

原文链接:简单介绍 C# 和 .NET Core 的关系

(完)

(0)

相关推荐

  • 一文看懂:什么是.NET Core以及.NET Core能做什么?

    我们都知道.NET Core是一个可以用来构建现代.可伸缩和高性能的跨平台软件应用程序的通用开发框架.可用于为Windows.Linux和MacOS构建软件应用程序. 与其他软件框架不同,.NET C ...

  • .NET 5 重大变更

    .NET 5 重大变更系列的最后一个主题是 WPF 和 Windows Forms.这些桌面技术在.NET Core 3.0 之前是不可用的,因为.NET Core 的早期版本主要专注于基于 Web ...

  • 【翻译】.NET 5 Preview8发布

    今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本.预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本, ...

  • Windows平台部署Asp.Net Core应用

    一. 简介 Asp.Net Core 部署方式有两种:依赖框架和独立部署. 1. 框架依赖的部署: 顾名思义,依赖框架的部署 (FDD) 依赖目标系统上存在共享系统级版本的 .NET Core. 由于 ...

  • 为什么选择ASP.NET Core

    原创 张飞洪 dotNET跨平台 今天 什么是.NET 有一次小飞去面试,面试官上来就问了一个宏观的问题:"你觉得什么是.NET"?小飞的脑子嗡嗡的,支吾了半天,才吐了一些碎片化的 ...

  • .NET 5.0 正式版发布了!

    作为微软最早迈向开源的重要软件之一, .NET 的进展极具意义. 微软今天发布了 .NET 5.0 正式版.本次版本更新幅度很大,而且自首个预览版发布以来微软已经进行了广泛的内部部署,除了在 .NET ...

  • .NET Core和.NET Standard有什么不同

    近日,微软发布了.NET Core 2.0,但是开发人员中间仍然存在一些疑惑,就是.NET Core..NET Standard.Xamarin和.NET Framework有什么不同. .NET F ...

  • 【翻译】.NET 5 Preview 1 发布

    去年年底,我们发布了.NET Core 3.0和3.1.这些版本添加了桌面应用程序模型Windows Forms(WinForms)和WPF,ASP.NET Blazor用于构建SPA应用程序和用于构 ...

  • 3.介绍ASP.NET Core框架

    介绍ASP.NET Core框架 在这篇文章中,我将要向你们简短介绍一下ASP.NET Core 框架.当今社会,当提到软件开发,每个人都是讨论着开源以及跨平台开发.总所周知,微软是以它的基于Wind ...

  • C# 数据操作系列 - 6 EF Core 配置映射关系

    0. 前言 在<C# 数据操作系列 - 5. EF Core 入门>篇中,我们简单的通过两个类演示了一下EF增删改查等功能.细心的小伙伴可能看了生成的DDL SQL 语句,在里面发现了些端 ...

  • 五行与疾病的一些关系!

    一.木 1.甲木遇火多,多犯神经之疾.日干为甲木,流年与日柱天克地冲,多有伤头之灾. 2.甲乙居前见庚辛,忌伤头面.干上有甲或乙,又有庚或辛克甲乙,头面有伤,破相. 3.甲乙无根,怕逢申酉,杀合逢此双 ...

  • 易学应用基础知识之八:《奇门遁甲》中十二地支的相互关系

    这一部分内容,我们来介绍关于十二地支的相互关系. 关于十二地支之间的相互关系,在其它传统预测学中的应用是比较广泛的,比如八字.六爻等.在奇门遁甲中,十二地支之间的各种相互关系并不是所有的关系都能用得上 ...

  • 陈辉:字与画的逻辑关系

           中国文字是从新石器时代远古人类的图画中分流而来的,进而演变成为象形文字,再经过抽象提炼,以线条为主要艺术表达形态,是独立发展成型的一个艺术门类.书法和绘画之间因为很多的共性,始终存在着相 ...

  • 人到中年,异性关系再好,这三个“地方”怎样都不能去

    人到中年, 大部分人已经有家庭,有自己的家庭,同时,在我们的日常生活中也不能避免处理其他的异性,在这里,如果不是在处理,很容易引起人们的误解,但最怕的是家庭的误解,他妻子的误解,两个人沟通不及时,误解 ...

  • 滚导暗示《自杀小队》将有不止一个彩蛋!这片子和DCEU到底什么关系?

    滚导(James Gunn)暗示,他的<自杀小队>(The Suicide Squad)将可能有不止一个stinger. stinger是啥给大家说过了,详见:扎克·施奈德版<正义联 ...

  • 考场作文抓住4个关系、5个层面,写好6个题目,作文拿高分不是梦!

    首先,是"四个关系":人与他人.人与社会.人与自我.人与自然之间的关系. 1.人与他人的关系 包括倡导公平竞争,颂扬人与人之间的爱,学会沟通,学会尊重与宽容,学会赞美与鼓励,倾听他 ...

  • 异性关系再好,一旦这样聊天,就离越轨不远了

    分寸,永远是异性朋友之间最好的保护伞. 人人都说人到中年,谁逃不开中年危机对生活的影响. 何为中年危机?中年危机,说的不仅是身材的走样,还有着家庭的危机和精神的孤独. 所以,有很多的调查显示,中年是一 ...

  • 关系修炼:会用关系,会搞关系

    关系网表明关系数量,但不一定有质量 亲属关系是硬关系,战友.同学是紧关系,只要你不太出格,会来点事,这些关系都可以很好地利用.除此之外,还有同事关系,上下级关系.业务关系.网友关系等,这些你都得会经营 ...