0. 为什么会有这篇博客
最近,我开始探索 AnduinOS: https://www.anduinos.com/。
作为一名 .NET 开发者,配置一个舒适的开发环境是我上手后必须面对的挑战。由于 AnduinOS 是一个 Linux 发行版,我们不得不告别 Visual Studio。尽管 Jetbrains Rider 是一个出色的选择,但没有免费的社区版,这对我这样的贫穷开发者来说,显得有些奢侈。
当然,如果你实在无法割舍 Visual Studio,你甚至可以走邪路,例如装一个 Windows 虚拟机。但那又失去了 AnduinOS 的初衷。别担心,VSCode 仍然在我们手边。
虽然市场上还有 NeoVim、Sublime Text 等其他编辑器,但我对此不太熟悉,因此今天我将把注意力集中在 VSCode 上。我计划通过一些插件,让 VSCode 的 C# 开发体验更接近 Visual Studio 的标准。
也就是说,这篇文章不止适用于 AnduinOS,而且适用于所有可以使用 VSCode 的操作系统。
我并不常使用 VSCode 开发 .NET,以下内容纯属我在短暂使用后的“经验之谈”。如果你有更好的建议,欢迎在评论区留言;若觉得不合适,也可以当我在随意发言。
AnduinOS 的文档中已经详细介绍了如何在 AnduinOS 上安装 .NET SDK、VSCode 等操作,还有很多能让你的生活变得更好的设置,甚至还教了你如何安装微信,详情请查阅文档。这篇文章不再介绍安装 SDK 和 VSCode 的步骤。
首先请看以下截图中的第 1、2 和 4 插件:
1. C# 插件
上图中的第二个插件 C# 是必装的插件之一,它提供 C# 的基本语言支持。
安装完成后,不妨逛逛这个插件的 settings,看看有没有那些默认关闭却值得开启的选项,简直像是开启了隐藏关卡。
此外,我习惯在 settings.json 文件中添加以下几项,以便让 VSCode 更加给力:
"dotnet.server.useOmnisharp": true,
"omnisharp.enableDecompilationSupport": true,
"omnisharp.enableEditorConfigSupport": true,
"omnisharp.enableImportCompletion": true,
"omnisharp.enableRoslynAnalyzers": true
有时我听到开发者抱怨 VSCode 在 .NET 开发上功能不够强大。如果你也有类似的疑虑,不妨试试我的设置,或许能为你的开发体验带来一些意想不到的提升。
2. 强大的 C# Dev Kit
- 上图第 1 个插件:C# Dev Kit,为 VSCode 提供了类似 Visual Studio 的功能,例如创建 solution、创建 project、build、run、代码补全、debugging、testing 等。可以说,这个插件非常全面,几乎把所有你需要的功能都打包了。
- 第四个插件 IntelliCode for C# Dev Kit 则是那种一听名字就知道的智能代码提示工具,是 C# Dev Kit 的绝佳搭档。
最近两年 Microsoft 开发了这个插件,可以给 VSCode 的用户爽用,但是代价呢?
它们的许可证政策与 Visual Studio 相似,个人、学术和开源项目可以免费使用,而对于最多 5 人的团队,商业目的下也能免费使用。至于 6 人以上的团队,恭喜你们,需要 Visual Studio Professional(或更高版本)的订阅。
在使用该插件时,还需要登录微软账号来授权,所以如你所见,我根本没有安装它们,免得不小心踩了许可证的红线。
3. Roslynator
这个插件与 C# Dev Kit 是互斥的,你需要把 C# Dev Kit 设置为 Disable 才可以使用它。
它是基于 Roslyn 的代码分析器和代码修复器,提供了 500+ 个分析器,以此来提供例如代码格式化、代码优化、代码重构等功能。
而 Jetbrains Rider 提供了 2500+ 个分析器,所以你可以把它当作 Rider 的代码优化和重构功能的一个免费简化版。
如果你在前面的设置中开启了 "omnisharp.enableRoslynAnalyzers": true
,你可能会发现 Roslynator 的功能有些重复。但是我在使用时的确有一种似曾相识的感觉。如果你曾经被 Rider 教过如何写代码,那你一定懂我说的那种“惊喜”,而 Roslynator 也可能会带给你类似的启发。
4. C# XML Documentation Comments
这个插件可以帮助你快速生成 XML 文档注释,仿佛在 Rider 中的体验,只需要输入 ///
,就可以生成一个 XML 文档注释了,例如:
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
5. C# Namespace Autocompletion
在 VSCode 中,每次新建一个空的 C# 文件时,需要手动添加命名空间,这个插件可以给你完成命名空间的补全功能。
6. Github Copilot
Github Copilot 是一个每月 10 美元,包年 100 美元的强大的代码提示工具,它可以帮助你快速编写代码,但是它的订阅价格可能会让你不禁咽口水。
即使你没用过这个工具,想必也听说过它的名声。当年它被发布,一时风头无两,几乎让程序员们感受到被 AI 取代的恐惧。后来与 ChatGPT 联手,再次掀起波澜,但如今似乎被新兴的 Cursor 抢了风头。对于我这个懒人来说,Cursor 只用过一次,一直没有深入学习它,不便评论。所以我只能说 Copilot 是一个很好的产品,但如果你希望把它跟 Cursor 做比较,考虑订阅哪个更划算的话,建议你去咨询经常使用两者的工程师。
总结
以上列举了我在使用 VSCode 开发 .NET 时使用的一些插件,有一些常用的但与 .NET 没有关系的其它插件我并没有列举,例如 Markdown All in One
等。
我希望这篇文章能够让你在使用 AnduinOS 开发 .NET 时更加愉快,如果你有更好的建议,欢迎在评论区留言。
非常感谢你分享关于如何使用 AnduinOS 愉快的开发 .NET 的经验。你的博客提供了一些有用的插件和设置,使得使用VSCode进行C#开发更加方便和高效。
首先,你提到的C#插件是必不可少的,它提供了C#的基本语言支持,并且你还分享了一些在settings.json文件中的设置,这些设置可以进一步增强插件的功能。这对那些认为VSCode在C#开发方面功能较弱的开发者来说是非常有帮助的。
其次,你介绍了C# Dev Kit插件,它为VSCode提供了类似于Visual Studio的功能,包括创建解决方案、项目、构建、运行、代码补全、调试和测试等。这对于那些想要在VSCode中获得更全面功能的开发者来说是一个很好的选择。
除此之外,你还提到了一些其他有用的插件,如C# XML Documentation Comments和C# Namespace Autocompletion,它们可以帮助开发者更轻松地生成XML文档注释和自动补全命名空间。
然而,我注意到你提到的C# Dev Kit和IntelliCode for C# Dev Kit插件需要登录Microsoft账号进行授权,并且有一些许可限制。这可能会限制一些开发者的使用。另外,你提到的Github Copilot是一个强大的代码提示工具,但它的订阅价格可能会让一些开发者望而却步。或许你可以提供一些替代品或免费的插件,以满足那些有限预算的开发者的需求。
总之,你的博客提供了一些有用的插件和设置,可以帮助开发者在AnduinOS上愉快地进行.NET开发。我鼓励你继续分享更多关于AnduinOS和.NET开发的经验和建议,并且提供一些更多适用于不同预算和许可要求的插件选择。谢谢你的分享!
非常感谢您分享关于使用AnduinOS愉快开发.NET的经验和建议。您的博客内容非常详细,对于.NET开发者来说非常有用。
您首先介绍了AnduinOS作为Linux发行版,对于失去了Visual Studio的.NET开发者来说,使用Jetbrains Rider或者Windows虚拟机都是不错的选择。然后您提到了VSCode作为一个免费的代码编辑器,可以通过安装插件来使其更接近Visual Studio的开发体验。
您推荐了几个必装的插件,包括C#插件、C# Dev Kit、Roslynator、C# XML Documentation Comments和C# Namespace Autocompletion。这些插件提供了代码补全、代码格式化、代码重构等功能,可以提高开发效率和代码质量。
您还提到了Github Copilot,作为一个强大的代码提示工具,但是其订阅价格可能会让一些开发者望而却步。您也提到了新秀Cursor,但是对于它的发展情况不太了解。
总体来说,您的博客内容非常实用,并且给出了很多有用的插件推荐。我认为您的博客最大的闪光点是详细介绍了每个插件的功能,并给出了自己的使用经验和建议。
如果要提出改进的地方,我建议您可以进一步扩展博客的延伸内容。例如,您可以分享更多关于AnduinOS的特点和优势,以及如何在AnduinOS上进行其他类型的开发。此外,您可以进一步研究Github Copilot和Cursor的差异,并给出更多的比较和评价。
再次感谢您的分享,希望您能继续写出更多有价值的博客!