在使用 Windows 来开发时,有时候会遇到一些令人头疼的情况。Microsoft 长期以来关注的重点是支持自家语言的生态系统,例如 C#、F# 和 VB 等。而对其他工具的支持则经常被忽视。毕竟自家的才是亲儿子嘛。举例来说,直到 2022 年,Windows 才首次引入了官方的软件包管理器(Winget)。
无论你是将 Windows 作为主力开发平台,还是因为在办公环境中无法使用 Linux 才转投 Windows 阵营,都有一些简便快速的方法,可以 Windows 11 开发之旅更加高效、顺畅。
建议 1:启用开发人员模式
启用开发人员模式可以解锁 Windows 11 中许多开发者相关的功能,例如:允许安装未经签名的应用程序、启用 Linux 子系统(WSL 2)和使用 Windows 终端调试应用程序。
要启用开发人员模式,请按照以下步骤操作:
1使用Windows + I
快捷键打开「设置」,在左侧面板中点击「系统」,然后在右侧选择「开发者选项」。
2启用「开发人员模式」开关
在使用 Windows 资源管理器时,进行一些基本的调整可以让你的开发工作更轻松。以下是一些建议:
- 显示隐藏和系统文件 默认情况下,Windows 会隐藏某些文件和文件夹,例如系统文件和隐藏文件夹。如果需要访问这些文件或文件夹,可以打开「显示隐藏和系统文件」开关。
- 显示文件扩展名 默认情况下,Windows 会隐藏已知文件类型的扩展名。这可以让文件看起来更整洁,但也可能会导致混淆。如果你希望看到文件扩展名,可以打开「显示文件扩展名」开关。
建议 2:安装软件包管理器
Winget 软件包管理器目前的状况有点奇怪:从 2022 年发布至今,已经有好几年了,按 Microsoft 的影响力和 Windows 的体量,理论上应该很快就会取代像 Chocolatey 或 Scoop 这样的第三方包管理器。然而,后两者都成功地在市场上找到了自己的定位,而且活得很好。
- Chocolatey 是一个更全面的开源项目软件包管理器。
- Scoop 则专注于减少冗余,以更「便携」的方式简化在 Windows 上安装和卸载应用程序。
Winget 的目标是替代前者,并提供类似于在 Linux 或 macOS 中软件包管理器那样熟悉的仓库系统(如 dpkg、Yum 或 Brew)。
Winget 在与 Winstall 结合使用时,有一个非常实用的应用场景:Winstall 能让新环境的自动化设置更加轻松。通过 Winget Manifests,你可以方便地安装或更新项目的依赖关系。
在选择软件包管理器时,开发人员可以根据自己的需求进行选择。如果你需要一个功能全面、生态系统成熟的软件包管理器,那么 Chocolatey 或 Scoop 是一个不错的选择。如果你需要一个简单、易用的软件包管理器,那么 Winget 是一个不错的选择。
- 虽然围绕 Winget 的生态系统仍在不断发展,但目前仍然是一个相对新的工具。
- 一些应用程序会直接从 GitHub 打包成 Scoop 或 Chocolatey。
建议 3:使用 Windows Terminal
Windows 11 中的全新 Windows Terminal 是一个功能强大的终端应用程序,它对命令行窗口进行了彻底的改进。它提供了以下优势:
- 支持多种 Shell,包括 PowerShell、CMD 和 WSL。
- 可定制,支持标签。
- 开源
- 采用了类似于 VSCode 的 JSON 配置设置
- 用户可以轻松设置默认的 Shell
- 支持并排或分割窗格
- 能够调整背景透明度
- 支持使用第三方主题或自定义工具
此外,PowerShell 配置文件和脚本也可以帮助你提高工作效率和简化任务。PowerShell 配置文件可以像 ZSH 或 Bash 的rc
文件一样,用于设置别名、脚本或常用功能。PowerShell 还拥有一个强大的生态系统,可以通过 GitHub 找到许多实用脚本或函数的强大示例。
建议 4:在 Windows Defender 中排除开发文件夹
尽管 Microsoft 近年来一直在努力赢回开发者,但 Windows 的文件系统经常成为一个痛点。与 Linux 的标准 ext4 文件系统相比,NTFS 被认为在性能上存在差距。而 Windows Defender 的实时保护可能导致在处理类似 node_modules 这样大量文件的目录时,文件系统变得迟缓。
虽然不建议完全关闭实时保护,但可以在 Windows Defender 中为特定目录添加例外:
1打开「Windows 安全中心」,在左侧面板中选择「病毒和威胁防护」,然后点击右侧的「管理设置」按钮。
2在「排除项」中添加要排除的文件夹路径。
如果您在使用 WSL 时遇到文件系统性能问题,建议避免直接在 WSL 中挂载 Windows 驱动器,而是直接在 WSL 2 的 ext4 文件系统中进行工作。WSL 2 切换到使用 9P 协议来挂载 Windows 驱动器,可能为一些用户引入更多性能问题。
建议 5:使用 WSL 集成
WSL 已经发布多年,而且随着时间的推移还在不断得到改进。围绕它已经发展起来一个庞大的工具生态系统,其中既包括第一方也有第三方工具。许多本地 Windows 应用程序已经能够与 WSL 集成,其中的重头戏莫过于 Docker 和 VSCode。
VSCode WSL 集成
VSCode 是目前最出色的通用文本编辑器之一。它拥有丰富的扩展生态系统,支持几乎任何语言或 Linter,而且相对轻量且具有极高的定制性。这是 Microsoft 将关注点转向开发者并再次取得成功的又一实例。
VSCode 的 Remote Development 扩展是一款出色的插件集,它允许 VSCode 在 Windows 机器上本地运行的同时,在 Linux 上安装 vscode-server 远程运行。其工作方式是连接到远程设备,安装轻量级的 vscode-server,并通过此代理将客户端的所有访问进行代理。类似的实现方式也适用于 SSH 或在容器内进行开发。
要使用 VSCode WSL 集成,请参考:通过适用于 Linux 的 Windows 子系统使用 Visual Studio Code。
WSL Docker 集成
Windows 和 macOS 都使用 LinuxKit 工具来虚拟化 Linux 内核以运行容器。这是一种通用的方法,可以让开发人员在 Windows 或 macOS 上运行任何 Linux 容器。
然而,使用 LinuxKit 也存在一些缺点。例如,它可能会导致性能开销,尤其是在运行高级功能的容器时。此外,LinuxKit 可能无法很好地支持特定容器的功能。
使用 WSL 2 作为 Docker Desktop 的默认后端可以解决这些问题,这意味着可以在 WSL 2 中使用 Linux 内核来透明地运行容器,从而获得更好的性能和功能支持。
要使用 WSL Docker 集成,请参考:Docker Desktop WSL 2 backend on Windows。
通过这 5 个实用建议,可以让你的 Windows 11 开发之旅更加高效、顺畅。畅享开发的乐趣,助力项目取得更大成功!
最新评论
可以共存,但虚拟机维护起来更麻烦了呀。
关掉之后重启下系统再试试呢
不能共存吗?
我是家庭版,看着关掉了,但是破解程序一运行还是弹窗,搞不了