-
Book Overview & Buying
-
Table Of Contents
Tools and Skills for .NET 10 - Second Edition
By :
Before you start programming, you’ll need a code editor for C#. Microsoft has a family of code editors and integrated development environments (IDEs), which include:
What is the best tool and application type for learning how to use tools and skills with C# and .NET?
I want you to be free to choose any C# code editor or IDE to complete the coding tasks in this book, including Visual Studio, VS Code, Rider, or a code editor that I’ve never heard of.
In this book, I give general instructions that work with all tools, so you can use whichever tool you prefer.
Visual Studio can create most types of applications, including console apps, websites, web services, desktop, and mobile apps. Visual Studio only runs on Windows 10 version 1909 or later, or Windows Server 2016 or later, and only on 64-bit versions. Version 17.4 was the first version to support native ARM64.
Warning! Visual Studio for Mac does not officially support .NET 8 or later and it reached its end-of-life in August 2024. If you have been using Visual Studio for Mac, then you should switch to VS Code for Mac or Rider for Mac, or use Visual Studio in a virtual machine on your local computer or in the cloud using a technology like Microsoft Dev Box. The retirement announcement can be read here: https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/.
The most modern and lightweight code editor to choose from, and the only one from Microsoft that is cross-platform, is VS Code. It can run on all common operating systems, including Windows, macOS, and many varieties of Linux, including Red Hat Enterprise Linux (RHEL) and Ubuntu. VS Code is a good choice for modern cross-platform development because it has an extensive and growing set of extensions to support many languages beyond C#.
Being cross-platform and lightweight, it can be installed on all platforms that your apps will be deployed to for quick bug fixes and so on. Choosing VS Code means a developer can use a cross-platform code editor to develop cross-platform apps.
VS Code is by far the most popular IDE, with over 75% of professional developers selecting it in the Stack Overflow 2025 survey, which you can read at the following link:
https://survey.stackoverflow.co/2025/technology/#1-dev-id-es.
GitHub Codespaces is a fully configured development environment based on VS Code that can be spun up in an environment hosted in the cloud and accessed through any web browser. It supports Git repositories, extensions, and a built-in command-line interface so you can edit, run, and test from any device. Since it runs in the cloud and you interact with it via a web browser, there is nothing to download and install, and since it is based on VS Code, it works the same way VS Code does on your local computer.
You can learn more about GitHub Codespaces at the following link: https://github.com/features/codespaces.
Reviews of GitHub Codespaces are available at the following links:
Rider is a third-party code editor from JetBrains, the maker of IntelliJ IDEA, the leading Java and Kotlin IDE, and ReSharper, the popular Visual Studio plugin for .NET developers. Rider runs on multiple platforms: Windows, macOS, and Linux.
Developers who use it are often professionals who appreciate the extra features it has like live code inspections, context actions, and refactorings. Using Rider can be an indicator of a more advanced developer.
You should expect new versions of Rider to support the latest version of .NET a few weeks after Visual Studio. For example, .NET 8 was released on November 14, 2023, and Visual Studio with official support for .NET 8 was released on the same day. But Rider version 2023.3 with official support for .NET 8 was not released until December 7, 2023.
Although JetBrains is a fantastic company with great products, both Rider and the ReSharper extension for Visual Studio are software, and all software has bugs and quirky behavior. For example, they might show errors like “Cannot resolve symbol” in your Razor Pages, Razor views, and Blazor components. Yet, you can build and run those files because there is no actual problem.
Warning! If you use Rider and you have installed the Unity Support or Heap Allocation Viewer plugins, then it will complain a lot about boxing. A common scenario when boxing happens is when value types like int and DateTime are passed as positional arguments to string formats. This is a problem for Unity projects because they use a different memory garbage collector than the normal .NET runtime. For non-Unity projects, like all the projects in this book, you can ignore these boxing warnings because they are not relevant. You can read more about this Unity-specific issue at the following link: https://docs.unity3d.com/Manual/performance-reference-types.html.
A reader, @automaton, posed a thought in the Discord channel for this book: “I wonder if the idea long term is to merge Code and VS.”
My best guess is that .NET developers on Windows will continue to prefer Visual Studio (this is likely about 70% of my readers), and everyone else will split between VS Code and Rider, especially now that Rider is free for non-commercial use.
Microsoft has been clear about their commitment to improving both Visual Studio and VS Code but keeping them distinct in their roles. While VS Code continues to be enhanced with new features and cross-platform capabilities, Visual Studio remains focused on being a best-in-class IDE for development on Windows.
Visual Studio is deeply integrated with Windows-specific technologies and APIs. It leverages components such as the Windows Presentation Foundation (WPF), which is not natively supported on other operating systems. Rewriting or adapting these dependencies for other platforms would require significant effort and resources.
My belief is that Microsoft will never port Visual Studio to other platforms or merge the two products. Instead, they will continue to add features from one to the other. For example, Solution Explorer has been added to VS Code, and HTTP Editor has been added to Visual Studio.
To write and test the code for this book, I used the following hardware and software:
I hope that you have access to a variety of hardware and software too, because seeing the differences on various platforms deepens your understanding of development challenges, although any one of the preceding combinations is enough to learn how to build practical apps and websites.
Your choice of code editor and operating system for development does not limit where your code gets deployed.
.NET 10 supports the following platforms for deployment:
You can review the latest supported operating systems and versions at the following link: https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md.
Many professional .NET developers use Visual Studio in their day-to-day development work. Even if you choose to use VS Code to complete the coding tasks in this book, you might want to familiarize yourself with Visual Studio too.
If you do not have a Windows computer, then you can skip this section and continue to the next section, where you will download and install VS Code on macOS or Linux.
Since October 2014, Microsoft has made a professional-quality edition of Visual Studio available to students, open-source contributors, and individuals for free. It is called Community Edition. Any edition is suitable for this book. If you have not already installed it, let’s do so now:
At the time of publishing in January 2026, the latest version of Visual Studio is version 18.0, and it is branded as Visual Studio 2026. If you choose to do so, you should be able to use Visual Studio 2022 to complete this book, although the user interface might move things around a bit.
In this book, I will avoid showing keyboard shortcuts since they are often customized. Where they are consistent across code editors and commonly used, I will try to show them.
If you want to identify and customize your keyboard shortcuts, then you can, as shown at the following link: https://learn.microsoft.com/en-us/visualstudio/ide/identifying-and-customizing-keyboard-shortcuts-in-visual-studio.
VS Code has rapidly improved over the past couple of years and has pleasantly surprised Microsoft with its popularity. If you are brave and like to live on the bleeding edge, then there is the Insiders edition, which is a daily build of the next version.
Even if you plan to only use Visual Studio for development, I recommend that you download and install VS Code and try the coding tasks in this chapter using it, and then decide if you want to stick with just using Visual Studio for the rest of the book.
Let’s now download and install VS Code, the .NET SDK, and the C# Dev Kit extension:
If you need more help installing VS Code on any operating system, you can read the official setup guide at the following link: https://code.visualstudio.com/docs/setup/setup-overview.
Good practice: The latest SDK version at the time of publishing is 10.0.101. Always install or update to the latest patched version.
C# Dev Kit in the search box.Good practice: Be sure to read the license agreement for the C# Dev Kit. It has a more restrictive license than the C# extension: https://aka.ms/vs/csdevkit/license.
In later chapters of this book, you will use more VS Code extensions. If you want to install them now, all the extensions that we will use are shown in Table 1.1:
|
Extension name and identifier |
Description |
|
C# Dev Kit
|
An official C# extension from Microsoft. Manage your code with a solution explorer and test your code with integrated unit test discovery and execution. It includes the C# and IntelliCode for C# Dev Kit extensions. |
|
C#
|
This offers C# editing support, including syntax highlighting, IntelliSense, Go To Definition, Find All References, debugging support for .NET, and support for |
|
GitHub Copilot Chat
|
GitHub Copilot is an AI peer programming tool that helps you write code faster and smarter. |
|
MSBuild project tools
|
This provides IntelliSense for MSBuild project files, including autocomplete for |
|
SQL Server (mssql) for VS Code
|
This is for developing SQL Server, Azure SQL Database, and SQL Data Warehouse everywhere with a rich set of functionalities. |
|
REST Client
|
With this, you can send an HTTP request and view the response directly in VS Code. |
|
ilspy-vscode
|
With this, you can decompile Microsoft Intermediate Language (MSIL) aka .NET assemblies. It supports modern .NET, .NET Framework, .NET Core, and .NET Standard. |
Table 1.1: VS Code extensions used in this book
You can manage VS Code extensions at the command prompt or terminal, as shown in Table 1.2:
|
Command |
Description |
|
|
List installed extensions. |
|
|
Install the specified extension. |
|
|
Uninstall the specified extension. |
Table 1.2: Working with extensions at the command prompt
For example, to install the C# Dev Kit extension, enter the following at the command prompt:
code --install-extension ms-dotnettools.csdevkit
I have created PowerShell scripts to install and uninstall the VS Code extensions in the preceding table. You can find them at the following link: https://github.com/markjprice/tools-skills-net10/tree/main/scripts/extension-scripts.
Microsoft releases a new feature version of VS Code (almost) every month and bug-fix versions more frequently. For example:
The version of VS Code is less important than the version of the C# extension. While the C# extension is not required, it provides IntelliSense as you type, code navigation, and debugging features, so it’s something that’s very handy to install and keep updated to support the latest C# language features.
In this book, I will avoid showing keyboard shortcuts used for tasks like creating a new file since they are often different on different operating systems. The situations where I will show keyboard shortcuts are when you need to repeatedly press the key, for example, while debugging. These are also more likely to be consistent across operating systems.
If you want to customize your keyboard shortcuts for VS Code, then you can, as shown at the following link: https://code.visualstudio.com/docs/getstarted/keybindings.
I recommend that you download a PDF of keyboard shortcuts for your operating system from the following list:
According to the Stack Overflow Survey, about 20% of professional C# and .NET developers use Rider in their day-to-day development work. Rider is cross-platform, so you can install and run it on Windows, macOS, and varieties of Linux. You can use an evaluation license key for a free 30-day trial.
JetBrains also offers Toolbox App to manage your IDEs easily and it’s free. It is especially useful for Linux users because Rider does not update through the apt (Advanced Package Tool) command like normal Linux programs. Plus, it gives you access to early access programs for software like JetBrains Fleet, a next-generation code editor.
If you have not already installed Rider and you want to use it, let’s do so now:
If you’re on Ubuntu 16.04 or later, you can install Rider from the command prompt or terminal, as shown in the following command: sudo snap install rider --classic
If you have installed JetBrains ReSharper in Visual Studio, you will get similar tools as in Rider.
JetBrains offers a suite of tools designed to enhance productivity, code quality, and application performance for .NET developers. A brief overview of dotPeek, dotTrace, dotMemory, and dotCover, highlighting their capabilities and benefits, is included in the following list:
Together, these JetBrains tools form a comprehensive toolkit that can significantly enhance the productivity and efficiency of .NET development teams.
Change the font size
Change margin width
Change background colour