跳至页脚内容
Iron Academy Logo
学习 C#
学习 C#

其他类别

C#在Linux上:系列介绍

Tim Corey
14m 29s

对于大多数C#开发者来说,Windows一直是他们唯一使用过的操作系统。 工具、IDE、部署目标都围绕单一平台。 这一直有效,直到不再有效,无论是由于近期操作系统更改引发的隐私问题、想要重新利用旧硬件的愿望,还是只是希望了解多个环境的职业优势。

在他的视频"C# on Linux: Series Introduction"中,Tim Corey开启了一系列在Linux上完全开发.NET应用程序的多部分系列。 这一开篇讨论了在编写任何代码之前的背景:选择哪个Linux发行版,哪些编辑器适用于C#开发,您能和不能构建哪些类型的项目,以及当工作流程不再像Windows时该期待什么。 如果您对在其传统主场之外运行.NET感到好奇,这是规划图。

为什么选择Linux? 更多选择的理由

[0:00 - 1:17] Tim开篇有一个坦诚的观察:被锁定在一个平台上限制了您的灵活性。 关于微软对Windows的AI相关变化的先前视频引发了关于替代方案的讨论,而这个系列就是从这些讨论中发展而来的。 目标不是放弃Windows,而是将一个可行的第二环境添加到您的技能中。

拥有这样的广度确实具有职业价值。 如果新工作需要在Mac或Linux上工作,或者如果部署目标在Linux服务器上运行,体验过这种工作流程的开发者就有明显的优势。 Tim将这个系列定位为通过从不同的角度来加深您的.NET知识,而不是作为平台竞争。

选择Linux Mint

[1:28 - 2:42] 让新手感到不知所措的一点是,"Linux"并不是单一的操作系统。 它是一个内核,底层支持着数百个不同的发行版,每个发行版都有其独有的桌面环境、包管理器默认设置和设计理念。 Tim承认,如此多的选择可能令人不知所措,但为这个系列简化了决策:Linux Mint。

Mint在稳定性和熟悉感之间取得了平衡。 它的桌面布局类似于Windows用户已经熟悉的东西,带有任务栏、启动菜单等效项,以及一个行为可预见的文件管理器。 这种视觉上的相似性简化了转换而无需假装这两个系统是相同的。 其他版本如Pop!_OS也是不错的选择,但Mint为习惯了Windows操作的开发人员提供了最易接近的起点。

.NET开发的IDE选项

[2:42 - 3:57] 由于Visual Studio是Windows专用应用程序,Linux开发者需要一个不同的编辑器。 Tim强调了两个主要路径:VS Code搭配C# Dev Kit扩展和JetBrains Rider。

使用C# Dev Kit的VS Code已经在最近的版本中得到了显著的提升,尽管Tim指出一些粗糙的边缘仍然存在。 许可遵循与Visual Studio相同的模型:对个人开发者和小团队免费,对大组织有付费层级。 JetBrains Rider现在为个人项目提供一个免费的社区版本,给开发者第二个无需前期费用的选择。该系列将偏向VS Code,但会同时涵盖两者,因为每个工具在特定任务中有自己的优势。

机器配置:您实际需要什么

[4:00 - 6:14] Linux的一个最实际的卖点是它对硬件的需求极少。 Tim分享了两个可以说明范围的例子。 首先,他描述了在一个树莓派键盘计算机上运行带C# Dev Kit的VS Code,这台设备大约有400 MHz的处理能力和一个双核CPU。 他在其上构建并运行了一个Blazor应用程序。 体验虽然缓慢,但它确实工作了。

第二个例子对大多数开发者来说更容易理解。 一台在Windows 10下已无法使用的旧笔记本电脑(点击超时,应用程序拒绝加载)在全新安装Mint后无问题运行。 同样的硬件,原本几乎无法渲染Windows桌面的设备,变成了一台功能齐全的开发机。Tim明确表示,更好的规格仍然可以带来更好的体验,但在Linux上进行C#开发的最低标准远低于Windows。

您能构建和不能构建的项目类型

[6:17 - 8:23] 并非所有.NET项目类型都能在Windows之外运行,预测这些限制可以防止后期的沮丧。 WinForms和WPF都依赖于嵌入到操作系统中的Windows专用库。 UWP也有同样的限制。 这些都不会在Linux上编译或运行。

MAUI添加了一种值得注意的微妙之处。 尽管它面向多个平台(Windows、macOS、iOS、Android),但Linux不在其列。 这一区别非常重要,因为开发人员有时假设"跨平台"意味着"到处",但实际上MAUI的触及范围排除了Linux和Web。

可用的内容覆盖了广泛的表面。 形成C#学习基础的控制台应用程序无需修改即可运行。 服务应用程序(在Linux中称为守护进程)完全支持。 整个ASP.NET Core Web栈,包括API、Blazor应用、gRPC服务和工作服务,在Linux上以相同的方式运行。 对于需要跨越操作系统的桌面应用程序,Uno Platform作为该系列中的一个未来主题出现,允许您从Linux构建并同时部署到Windows和macOS。

此系列将不做的事情

[8:37 - 11:52] Tim早早设定了三个预期。 首先,该系列并不是反对微软。 GitHub、Azure、Edge、VS Code和.NET本身都是微软的产品,几个将在整个系列中出现。 关键在于选择您自己的术语来采用哪些工具,而不是被强加给您。

其次,这些视频将不会将Linux定位为唯一正确的选择。Windows仍然是大量开发者和工作流的正确环境。 Linux扩展了您的选择; 它不会替代Windows处理得很好的每种情况。 价值在于理解两个平台,以便在给定的情况下选择最合适的那个。

第三,可能对切换开发者最重要的是:不要指望Linux的工作方式与Windows相同。 安装软件会比命令行更多的交互。 包管理遵循一种从根本上不同的模型。 在Windows上感觉自动化的某些工作流程在Linux上需要明确的步骤。 该系列将引导您逐步了解这些差异,解释它们存在的原因和如何处理它们。

期待差异,而不是缺陷

[11:52 - 13:34] 切换平台时的一个常见陷阱是将一切与您已知的内容进行比较。 Tim直接谈到这一点:离开Windows意味着接受某些任务看起来和感觉不一样。 窗口管理、软件安装和系统配置在Linux上都有自己的约定。

其中一些模式确实更好。 例如,Linux的包管理器模型通过一个单一系统保持您的整个软件堆栈更新,而不是依赖每个应用程序去管理其自己的更新程序。 其他差异只是需要调整。 Tim将其比作从Windows切换到Mac,在那儿,他安装了第三方工具来获得他偏爱的窗口捕捉行为。 在Linux上也会发生类似的情况:您会随着时间的推移调整环境以适应您的喜好,而不是期待它去反映您所离开的体系。

总结:该系列的路线图

[13:34 - 14:10] Tim通过概述接下来的内容作结。 该系列从将Linux Mint安装到USB驱动器开始,以便您可以在不接触现有Windows安装的情况下测试整个体验。 从那以后,后续集将涵盖永久安装、设置开发工具和构建真实应用。 旁支视频将在途中解决Linux专用配置任务。

结论

[14:10 - 14:29] 这一引言的关键点非常简单:Linux是一个可行且有能力的平台,用于C#和.NET开发,您在深入之前应了解几个限制。 硬件要求适中,工具已成熟,而对现代开发最重要的项目类型(Web、API、服务、控制台)在不妥协的情况下都能运行。

对于一直在Windows上工作的开发者来说,这个系列提供了一条结构化的路径,以拓宽您的影响力。 从U盘开始意味着不会有任何损失,同时可以获得一项有意义的技能。

示例提示:在全安装前,先将Linux Mint从便携式USB棒引导到您的主计算机上。您将能在不更改现有设置的情况下感受桌面、终端和一般工作流程。如果体验令人满意,您可以在了解预期的情况下过渡到永久安装。

观看完整视频在他的YouTube频道并获得更多关于在Linux上开发C#的洞察。

Hero Worlddot related to C#在Linux上:系列介绍
Hero Affiliate related to C#在Linux上:系列介绍

分享您的所爱,赚取更多收入

您为使用 .NET、C#、Java、Python 或 Node.js 的开发人员创建内容吗?将您的专业知识转化为额外收入!

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我