闲话 .NET(4):为什么要跨平台?

简介: 闲话 .NET(4):为什么要跨平台?

前言

.NET Core 有一个关键词就是跨平台,为什么要跨平台呢?Windows 操作系统不香吗?今天我们来聊聊这个

原因一:安全考虑

Windows OS 是闭源的,而 Linux 是开源的,因此有些公司的技术负责人就认为 Linux 比 Windows OS 更安全,比如我以前教《现代操作系统》课程的老师就非常推崇 Linux,对 Windows OS 则是嗤之以鼻,斥之为 "伪操作系统 "。姑且不论这种认知是否客观,但是这种固有认知是很难被改变的,所以作为程序猿的我们只能去适应这种认知,特别是在近几年,政企项目开始要求 “国产化”,也就是数据库、操作系统等都使用国产的产品,而国产操作系统大部分都是基于 Linux 的,因此在 Linux 下运行系统的需求非常迫切。

原因二:成本

Windows 是收费的,而很多 Linux 发行版都是开源、免费的,对于服务器数量很多的系统,其操作系统的成本是一个不得不考虑的因素。

原因三:生态

由于 Linux 是开源的,因此吸引了大批开发人员为 Linux 开发软件,比如 Apache、Nginx、MySQL、Kafka、Redis、Docker 等,数不胜数。虽然这些软件大部分也移植到了 Windows 下,但是这些毕竟是优先为 Linux 开发的软件,它们在 Windows 下的版本只能说是 “可以运行” 而已,其性能和功能与 Linux 版本的比起来都有一定的差距。并不是说基于 Windows 平台开发不出同样优秀的软件,而是说很少有人愿意优先基于 Windows 开发服务器端软件。这就导致了比较优秀的服务器端软件生态环境大多在 Linux 下。

原因四:稳定性

由于 Linux 特有的设计,Linux 在运行时,相对 Windows OS 会稳定很多,网上曾经有公开数据说 Linux 可以几个月不关机,同时非常稳定的持续计算,速度丝毫不减慢,非常的稳定,Windows OS 就很难做到这一点。

结语

Java 因为开源和能够跨平台而受到大厂们的生睐,在国内发展得非常快,如今 .NET 也积极拥抱开源,并且武装上了 “跨平台” 和 “基于云开发” 这对翅膀,.NET 在成长,在变化,在褪去外壳,迎接新生,一句话,.NET 未来可期

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。


相关文章
|
9天前
|
Linux C# Android开发
.NET开源跨平台桌面和移动应用的统一框架 - Eto.Forms
.NET开源跨平台桌面和移动应用的统一框架 - Eto.Forms
|
15天前
|
BI Linux API
掌握 SkiaSharp 轻松实现 .NET 跨平台绘图
.NET 框架的发展,我们越来越多地寻求能够在多个平台上无缝运行的应用解决方案。
124 2
|
27天前
|
存储 安全 物联网
.NET 跨平台工业物联网网关解决方案
【9月更文挑战第28天】本文介绍了利用 .NET 构建跨平台工业物联网网关的解决方案。通过 .NET Core 和多种通信协议(如 MQTT 和 Modbus),实现工业设备的高效接入和数据采集。系统架构包括设备接入层、数据处理层、通信层、应用层和数据库层,确保数据的准确采集、实时处理和安全传输。此外,还详细阐述了设备身份认证、数据加密及安全审计等机制,确保系统的安全性。该方案适用于不同操作系统和工业环境,具备高度灵活性和扩展性。
|
1月前
|
Ubuntu 持续交付 API
如何使用 dotnet pack 打包 .NET 跨平台程序集?
`dotnet pack` 是 .NET Core 的 NuGet 包打包工具,用于将代码打包成 NuGet 包。通过命令 `dotnet pack` 可生成 `.nupkg` 文件。使用 `--include-symbols` 和 `--include-source` 选项可分别创建包含调试符号和源文件的包。默认情况下,`dotnet pack` 会先构建项目,可通过 `--no-build` 跳过构建。此外,还可以使用 `--output` 指定输出目录、`-c` 设置配置等。示例展示了创建类库项目并打包的过程。更多详情及命令选项,请参考官方文档。
130 11
|
1月前
|
Linux C# Android开发
一个开源、跨平台的.NET UI框架 - Avalonia UI
一个开源、跨平台的.NET UI框架 - Avalonia UI
|
1月前
|
前端开发 关系型数据库 MySQL
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
ThingsGateway:一款基于.NET8开源的跨平台高性能边缘采集网关
|
1月前
|
机器学习/深度学习 人工智能 算法
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
|
2月前
|
物联网 编译器 API
.NET 6震撼发布:解锁跨平台新纪元,性能飞跃背后的秘密,未来软件开发将如何被重新定义?
【8月更文挑战第28天】.NET 6在简化开发方面也做出了诸多努力。最小Web API的引入,让开发者仅需几行代码即可构建出功能完整的Web服务。
53 3
|
2月前
|
移动开发 开发框架 C#
跨平台移动开发王者之战:Xamarin对决Uno Platform,谁将主宰.NET的未来?
【8月更文挑战第28天】Xamarin和Uno Platform是.NET生态下的两大跨平台移动开发框架。Xamarin自2011年起成为.NET的重要组成部分,使用C#实现高度代码共享。Uno Platform则是较新的框架,支持C#和XAML,并能将代码编译为WebAssembly,兼容Web平台。两者在代码共享、性能、社区支持及平台兼容性方面各有优势。Xamarin在性能和生态上更为成熟,Uno Platform则在Web兼容性方面表现出色。开发者可根据项目需求和技术栈选择合适的框架。
38 3
|
1月前
|
网络协议 C#
NSmartProxy:一款.NET开源、跨平台的内网穿透工具
NSmartProxy:一款.NET开源、跨平台的内网穿透工具