|
| 1 | +--- |
| 2 | +title: Setup a development environment on Windows |
| 3 | +description: A guide to help you setup your development environment on Windows and install your preferred tools and code languages. |
| 4 | +ms.topic: article |
| 5 | +ms.subservice: windows-nodejs |
| 6 | +ms.date: 01/07/2025 |
| 7 | +--- |
| 8 | + |
| 9 | +# Set up your development environment on Windows |
| 10 | + |
| 11 | +Windows invites you to code as you are. Use whatever coding language or framework you prefer - whether developing with tools on Windows or with Linux tools on the Windows Subsystem for Linux, this guide will help you get set up and install what you need to start coding, debugging, and accessing services to put your work into production. |
| 12 | + |
| 13 | +## Developer tools |
| 14 | + |
| 15 | +:::row::: |
| 16 | + :::column::: |
| 17 | + [](/windows/terminal/)<br> |
| 18 | + **[Windows Terminal](/windows/terminal/)**<br> |
| 19 | + Customize your terminal environment to work with multiple command line shells. |
| 20 | + <br> |
| 21 | + [Install Terminal](https://www.microsoft.com/p/windows-terminal/9n0dx20hk701?rtc=1&activetab=pivot:overviewtab) |
| 22 | + :::column-end::: |
| 23 | + :::column::: |
| 24 | + [](/windows/dev-drive)<br> |
| 25 | + **[Dev Drive](/windows/dev-drive/)**<br> |
| 26 | + Improve performance by storing project files on a Dev Drive and keep files secure with trust designation, antivirus configuration, and attached filters. |
| 27 | + <br> |
| 28 | + [Create a Dev Drive](/windows/dev-drive#how-to-set-up-a-dev-drive) |
| 29 | + :::column-end::: |
| 30 | + :::column::: |
| 31 | + [](../package-manager/index.md)<br> |
| 32 | + **[Windows Package Manager](../package-manager/index.md)**<br> |
| 33 | + Use the winget.exe client, a comprehensive package manager, with your command line to install applications on Windows.<br> |
| 34 | + [Install Windows Package Manager](../package-manager/winget/index.md#install-winget) |
| 35 | + :::column-end::: |
| 36 | + :::column::: |
| 37 | + [](/windows/wsl/)<br> |
| 38 | + **[Windows Subsystem for Linux](/windows/wsl/)**<br> |
| 39 | + Use your favorite Linux distribution fully integrated with Windows (no more need for dual-boot).<br> |
| 40 | + [Install WSL](/windows/wsl/install) |
| 41 | + :::column-end::: |
| 42 | +:::row-end::: |
| 43 | + |
| 44 | +:::row::: |
| 45 | + :::column::: |
| 46 | + [](../package-manager/configuration/index.md)<br> |
| 47 | + **[WinGet Configuration](../package-manager/configuration/index.md)**<br> |
| 48 | + Consolidate manual machine setup and project onboarding to a single command that is reliable and repeatable.<br> |
| 49 | + [Author a configuration file](../package-manager/configuration/create.md) |
| 50 | + :::column-end::: |
| 51 | + :::column::: |
| 52 | + [](../powertoys/index.md)<br> |
| 53 | + **[Microsoft PowerToys](../powertoys/index.md)**<br> |
| 54 | + Tune and streamline your Windows experience for greater productivity with this set of power user utilities.<br> |
| 55 | + [Install PowerToys](../powertoys/install.md) |
| 56 | + :::column-end::: |
| 57 | + :::column::: |
| 58 | + [](/windows/sudo/)<br> |
| 59 | + **[Sudo for Windows](/windows/sudo/)**<br> |
| 60 | + Sudo for Windows is a new way for users to run elevated commands directly from an unelevated console session. |
| 61 | + <br> |
| 62 | + [Enable and configure Sudo for Windows](/windows/sudo) |
| 63 | + :::column-end::: |
| 64 | +:::row-end::: |
| 65 | +<br> |
| 66 | + |
| 67 | +## AI for Windows apps |
| 68 | + |
| 69 | +:::row::: |
| 70 | + :::column::: |
| 71 | + [](/windows/ai/)<br> |
| 72 | + **[Windows AI Hub](/windows/ai)**<br> |
| 73 | + A new era of AI has arrived at Microsoft. See how AI is being integrated in Windows 11.<br> |
| 74 | + [Visit Windows AI Hub](/windows/ai) |
| 75 | + :::column-end::: |
| 76 | + :::column::: |
| 77 | + [](/windows/ai/npu-devices)<br> |
| 78 | + **[Copilot+ PCs Developer Guide](/windows/ai/npu-devices/)**<br> |
| 79 | + Copilot+ PCs are a new class of Windows 11 hardware powered by a high-performance Neural Processing Unit (NPU).<br> |
| 80 | + [Develop for Copilot+ PCs](/windows/ai/npu-devices) |
| 81 | + :::column-end::: |
| 82 | + :::column::: |
| 83 | + [](/windows/ai/directml/dml)<br> |
| 84 | + **[DirectML](/windows/ai/directml/dml)**<br> |
| 85 | + Pairing DirectML with the ONNX Runtime is often the most straightforward way for many developers to bring hardware-accelerated AI to their users at scale.<br> |
| 86 | + [Get Started with DirectML](/windows/ai/directml/dml-get-started) |
| 87 | + :::column-end::: |
| 88 | + :::column::: |
| 89 | + [](/windows/ai/rai)<br> |
| 90 | + **[Responsible AI guidance for Windows](/windows/ai/rai)**<br> |
| 91 | + Recommended responsible development practices to use as you create apps that utilize AI features on Windows.<br> |
| 92 | + [Develop Responsibly](/windows/ai/rai) |
| 93 | + :::column-end::: |
| 94 | +:::row-end::: |
| 95 | + |
| 96 | +## Development paths |
| 97 | + |
| 98 | +:::row::: |
| 99 | + :::column::: |
| 100 | + [](./javascript/index.md)<br> |
| 101 | + **[Get started with JavaScript](./javascript/index.md)**<br> |
| 102 | + Get started with JavaScript by setting up your development environment on Windows or Windows Subsystem for Linux and install [Node.js](./javascript/nodejs-overview.md), [React](./javascript/react-overview.md), [Vue](./javascript/vue-overview.md), [Express](./javascript/nodejs-beginners-tutorial.md), [Gatsby](./javascript/gatsby-on-wsl.md), [Next.js](./javascript/nextjs-on-wsl.md), or [Nuxt.js](./javascript/nuxtjs-on-wsl.md). |
| 103 | + :::column-end::: |
| 104 | + :::column::: |
| 105 | + [](../python/index.yml)<br> |
| 106 | + **[Get started with Python](../python/index.yml)**<br> |
| 107 | + Install Python and get your development environment setup on Windows or Windows Subsystem for Linux. |
| 108 | + :::column-end::: |
| 109 | + :::column::: |
| 110 | + [](/windows/android)<br> |
| 111 | + **[Get started with Android](/windows/android)**<br> |
| 112 | + Install Android Studio, or choose a cross-platform solution like .NET MAUI, React, or creating a PWA, and get your development environment setup on Windows. |
| 113 | + :::column-end::: |
| 114 | + :::column::: |
| 115 | + [](../apps/index.yml)<br> |
| 116 | + **[Get started building Windows apps](../apps/index.yml)**<br> |
| 117 | + Get started building desktop apps for Windows using the Windows App SDK, UWP, Win32, WPF, Windows Forms, or updating and deploying existing desktop apps with MSIX and XAML Islands. |
| 118 | + :::column-end::: |
| 119 | +:::row-end::: |
| 120 | + |
| 121 | +:::row::: |
| 122 | + :::column::: |
| 123 | + [](/cpp/)<br> |
| 124 | + **[Get started with C++ and C](/cpp/)**<br> |
| 125 | + Get started with C++, C, and assembly to develop apps, services, and tools. |
| 126 | + :::column-end::: |
| 127 | + :::column::: |
| 128 | + [](/dotnet/csharp/)<br> |
| 129 | + **[Get started with C#](/dotnet/csharp/)**<br> |
| 130 | + Get started building apps using C# and .NET. |
| 131 | + :::column-end::: |
| 132 | + :::column::: |
| 133 | + [](/dotnet/fsharp/)<br> |
| 134 | + **[Get started with F#](/dotnet/fsharp/)**<br> |
| 135 | + Get started building apps using F# and .NET. |
| 136 | + :::column-end::: |
| 137 | + :::column::: |
| 138 | + [](./rust/index.yml)<br> |
| 139 | + **[Get started with Rust](./rust/index.yml)**<br> |
| 140 | + Get started programming with Rust—including how to set up Rust for Windows by consuming the *windows* crate. |
| 141 | + :::column-end::: |
| 142 | +:::row-end::: |
| 143 | + |
| 144 | +:::row::: |
| 145 | + :::column::: |
| 146 | + [](/powershell/)<br> |
| 147 | + **[Get started with PowerShell](/powershell/)**<br> |
| 148 | + Get started with cross-platform task automation and configuration management using PowerShell, a command-line shell and scripting language. |
| 149 | + :::column-end::: |
| 150 | + :::column::: |
| 151 | + [](../dev-environment/docker/overview.md)<br> |
| 152 | + **[Get started with Docker Desktop for Windows](../dev-environment/docker/overview.md)**<br> |
| 153 | + Create remote development containers with support from Visual Studio, VS Code, .NET, Windows Subsystem for Linux, or a variety of Azure services. |
| 154 | + :::column-end::: |
| 155 | + :::column::: |
| 156 | + [](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor)<br> |
| 157 | + **[Get started with Blazor](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor)**<br> |
| 158 | + Get started with Blazor, a client-side UI framework within ASP.NET Core. Use HTML, CSS, and C# (rather than JavaScript) to create UI components and single page applications for the web. |
| 159 | + :::column-end::: |
| 160 | +:::row-end::: |
| 161 | + |
| 162 | +## More for developers |
| 163 | + |
| 164 | +:::row::: |
| 165 | + :::column::: |
| 166 | + [](https://code.visualstudio.com/docs)<br> |
| 167 | + **[VS Code](https://code.visualstudio.com/docs)**<br> |
| 168 | + A lightweight source code editor with built-in support for JavaScript, TypeScript, Node.js, a rich ecosystem of extensions (C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).<br> |
| 169 | + [Install VS Code](https://code.visualstudio.com/download) |
| 170 | + :::column-end::: |
| 171 | + :::column::: |
| 172 | + [](/visualstudio/windows/)<br> |
| 173 | + **[Visual Studio](/visualstudio/windows/)**<br> |
| 174 | + An integrated development environment that you can use to edit, debug, build code, and publish apps, including compilers, intellisense code completion, and many more features.<br> |
| 175 | + [Install Visual Studio](/visualstudio/install/install-visual-studio) |
| 176 | + :::column-end::: |
| 177 | + :::column::: |
| 178 | + [](/azure/guides/developer/azure-developer-guide)<br> |
| 179 | + **[Azure](/azure/guides/developer/azure-developer-guide)**<br> |
| 180 | + A complete cloud platform to host your existing apps and streamline new development. Azure services integrate everything you need to develop, test, deploy, and manage your apps.<br> |
| 181 | + [Set up an Azure account](https://azure.microsoft.com/free/) |
| 182 | + :::column-end::: |
| 183 | + :::column::: |
| 184 | + [](https://dotnet.microsoft.com/)<br> |
| 185 | + **[.NET](/dotnet/standard/get-started/)**<br> |
| 186 | + An open source development platform with tools and libraries for building any type of app, including web, mobile, desktop, gaming, IoT, cloud, and microservices.<br> |
| 187 | + [Install .NET](https://dotnet.microsoft.com/download) |
| 188 | + :::column-end::: |
| 189 | +:::row-end::: |
| 190 | + |
| 191 | +<br> |
| 192 | + |
| 193 | +## Run Windows and Linux |
| 194 | + |
| 195 | +Windows Subsystem for Linux (WSL) allows developers to run a Linux operating system right alongside Windows. Both share the same hard drive (and can access each other’s files), the clipboard supports copy-and-paste between the two naturally, there's no need for dual-booting. WSL enables you to use BASH and will provide the kind of environment most familiar to Mac users. |
| 196 | + |
| 197 | +Learn more in the [WSL docs](/windows/wsl). |
| 198 | + |
| 199 | +> [!VIDEO https://learn.microsoft.com/shows/One-Dev-Minute/What-can-I-do-with-WSL--One-Dev-Question/player?format=ny] |
| 200 | +
|
| 201 | +You can also use Windows Terminal to open all of your favorite command line tools in the same window with multiple tabs, or in multiple panes, whether that's PowerShell, Windows Command Prompt, Ubuntu, Debian, Azure CLI, Oh-my-Zsh, Git Bash, or all of the above. |
| 202 | + |
| 203 | +Learn more in the [Windows Terminal docs](/windows/terminal). |
| 204 | + |
| 205 | +> [!VIDEO https://learn.microsoft.com/shows/One-Dev-Minute/What-are-the-main-features-of-the-new-Terminal--One-Dev-Question/player?format=ny] |
| 206 | +
|
| 207 | +## Transitioning between Mac and Windows |
| 208 | + |
| 209 | +Check out our [guide to transitioning between a Mac and Windows](./mac-to-windows.md) (or Windows Subsystem for Linux) development environment. It can help you map the difference between: |
| 210 | + |
| 211 | +- [Keyboard shortcuts](./mac-to-windows.md#keyboard-shortcuts) |
| 212 | +- [Trackpad shortcuts](./mac-to-windows.md#trackpad-shortcuts) |
| 213 | +- [Terminal and shell tools](./mac-to-windows.md#command-line-shells-and-terminals) |
| 214 | +- [Apps and utilities](./mac-to-windows.md#apps-and-utilities) |
| 215 | + |
| 216 | +## Game development documentation |
| 217 | + |
| 218 | +- [Microsoft's Game Dev documentation](/gaming/) |
| 219 | + |
| 220 | + |
0 commit comments