From 8fe0b7eaaab9e7ee113cd59006e2d5d604b564a7 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Thu, 12 Feb 2026 12:26:36 -0800 Subject: [PATCH 01/12] restructure console app tutorials to use IDE zone pivot --- .openpublishing.redirection.json | 50 ++ .../tutorials/console-app-class-library.md | 416 +++++++++++++++++ ...h-visual-studio-code.md => console-app.md} | 125 ++++- ...tudio-code.md => debugging-console-app.md} | 209 ++++++++- .../tutorials/debugging-with-visual-studio.md | 173 ------- docs/core/tutorials/index.md | 31 +- .../library-with-visual-studio-code.md | 141 ------ .../tutorials/library-with-visual-studio.md | 141 ------ ...udio-code.md => publishing-console-app.md} | 115 ++++- .../publishing-with-visual-studio.md | 120 ----- .../testing-console-app-class-library.md | 426 ++++++++++++++++++ ...testing-library-with-visual-studio-code.md | 160 ------- .../testing-library-with-visual-studio.md | 201 --------- docs/core/tutorials/with-visual-studio.md | 108 ----- docs/fundamentals/index.yml | 6 +- docs/fundamentals/toc.yml | 73 ++- docs/standard/get-started.md | 10 +- docs/zone-pivot-groups.yml | 2 + 18 files changed, 1361 insertions(+), 1146 deletions(-) create mode 100644 docs/core/tutorials/console-app-class-library.md rename docs/core/tutorials/{with-visual-studio-code.md => console-app.md} (60%) rename docs/core/tutorials/{debugging-with-visual-studio-code.md => debugging-console-app.md} (52%) delete mode 100644 docs/core/tutorials/debugging-with-visual-studio.md delete mode 100644 docs/core/tutorials/library-with-visual-studio-code.md delete mode 100644 docs/core/tutorials/library-with-visual-studio.md rename docs/core/tutorials/{publishing-with-visual-studio-code.md => publishing-console-app.md} (61%) delete mode 100644 docs/core/tutorials/publishing-with-visual-studio.md create mode 100644 docs/core/tutorials/testing-console-app-class-library.md delete mode 100644 docs/core/tutorials/testing-library-with-visual-studio-code.md delete mode 100644 docs/core/tutorials/testing-library-with-visual-studio.md delete mode 100644 docs/core/tutorials/with-visual-studio.md diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 2a1fac42e3233..ff3412e83e564 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -1,5 +1,55 @@ { "redirections": [ + { + "source_path": "docs/core/tutorials/with-visual-studio.md", + "redirect_url": "/dotnet/core/tutorials/console-app", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/debugging-with-visual-studio.md", + "redirect_url": "/dotnet/core/tutorials/debugging-console-app", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/publishing-with-visual-studio.md", + "redirect_url": "/dotnet/core/tutorials/publishing-console-app", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/library-with-visual-studio.md", + "redirect_url": "/dotnet/core/tutorials/console-app-class-library", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/testing-library-with-visual-studio.md", + "redirect_url": "/dotnet/core/tutorials/testing-console-app-class-library", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/with-visual-studio-code.md", + "redirect_url": "/dotnet/core/tutorials/console-app", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/debugging-with-visual-studio-code.md", + "redirect_url": "/dotnet/core/tutorials/debugging-console-app", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/publishing-with-visual-studio-code.md", + "redirect_url": "/dotnet/core/tutorials/publishing-console-app", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/library-with-visual-studio-code.md", + "redirect_url": "/dotnet/core/tutorials/console-app-class-library", + "redirect_document_id": true + }, + { + "source_path": "docs/core/tutorials/testing-library-with-visual-studio-code.md", + "redirect_url": "/dotnet/core/tutorials/testing-console-app-class-library", + "redirect_document_id": true + }, { "source_path": "docs/core/tools/dotnet-migrate.md", "redirect_url": "/previous-versions/dotnet/fundamentals/tools/dotnet-migrate", diff --git a/docs/core/tutorials/console-app-class-library.md b/docs/core/tutorials/console-app-class-library.md new file mode 100644 index 0000000000000..2dd0a9434c224 --- /dev/null +++ b/docs/core/tutorials/console-app-class-library.md @@ -0,0 +1,416 @@ +--- +title: Create a .NET class library +description: Learn how to create a .NET class library using Visual Studio, Visual Studio Code, or GitHub Codespaces. +ms.date: 02/12/2026 +ai-usage: ai-assisted +zone_pivot_groups: code-editor-set-one +dev_langs: + - "csharp" + - "vb" +--- +# Tutorial: Create a .NET class library + +In this tutorial, you create a simple utility library that contains a single string-handling method. + +A *class library* defines types and methods that are called by an application. If the library targets .NET Standard 2.0, it can be called by any .NET implementation (including .NET Framework) that supports .NET Standard 2.0. If the library targets .NET 10, it can be called by any application that targets .NET 10. This tutorial shows how to target .NET 10. + +When you create a class library, you can distribute it as a third-party component or as a bundled component with one or more applications. + +## Prerequisites + +::: zone pivot="visualstudio" + +- [Visual Studio 2026 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=inline+link) with the **.NET desktop development** workload installed. The .NET SDK is automatically installed when you select this workload. + + For more information, see [Install the .NET SDK with Visual Studio](../install/windows.md#install-with-visual-studio). + +::: zone-end + +::: zone pivot="vscode" + +[!INCLUDE [Prerequisites](../../../includes/prerequisites-basic-winget.md)] + +::: zone-end + +::: zone pivot="codespaces" + +- A GitHub account to use [GitHub Codespaces](https://github.com/codespaces). If you don't already have one, you can create a free account at [GitHub.com](https://github.com). + +::: zone-end + +## Create a solution + +::: zone pivot="visualstudio" + +Start by creating a blank solution to hold the class library project. A Visual Studio solution serves as a container for one or more projects. Add related projects to the same solution. + +To create the blank solution: + +1. Start Visual Studio. + +1. On the start window, choose **Create a new project**. + +1. On the **Create a new project** page, enter **solution** in the search box. Choose the **Blank Solution** template, and then choose **Next**. + + :::image type="content" source="media/library-with-visual-studio/blank-solution.png" alt-text="Blank solution template in Visual Studio"::: + +1. On the **Configure your new project** page, enter **ClassLibraryProjects** in the **Solution name** box. Then choose **Create**. + +::: zone-end + +::: zone pivot="vscode" + +Start by creating a .NET class library project named "StringLibrary" and an associated solution. A solution serves as a container for one or more projects. You'll add additional, related projects to the same solution. + +1. Start Visual Studio Code. + +1. Go to the Explorer view and select **Create .NET Project**. Alternatively, you can bring up the Command Palette using Ctrl+Shift+P (Command+Shift+P on MacOS) and then type ".NET" and find and select the .NET: New Project command. + +1. Choose the project template **Class Library**. + +1. Then select the location where you would like the new project to be created: Create a folder named `ClassLibraryProjects` and select it. + +1. Name the project **StringLibrary**. + +1. Select **.sln** as the solution file format. + +1. Select **Show all template options**. + +1. Next select **.NET 10**. Then select **Create Project**. + +1. In the **Do you trust the authors of the files in this folder?** dialog, select **Yes, I trust the authors**. You can trust the authors because this folder only has files generated by .NET and added or modified by you. + +::: zone-end + +::: zone pivot="codespaces" + +Start by creating a GitHub Codespace with the tutorial environment, then create a .NET class library project. + +1. Open a browser window and navigate to the [tutorial codespace](https://github.com/dotnet/tutorial-codespace) repository. + +1. Select the green **Code** button, and then the **Codespaces** tab. + +1. Select the `+` sign or the green **Create codespace on main** button to create a new Codespace using this environment. + + :::image type="content" source="media/with-visual-studio-code/create-codespace-on-main.png" alt-text="Create a new Codespace from the tutorial repository"::: + +1. When your codespace loads, open the terminal and navigate to the tutorials folder: + + ```bash + cd tutorials + ``` + +1. Create a new class library project: + + ```dotnetcli + dotnet new classlib -n StringLibrary + ``` + +::: zone-end + +## Create a class library project + +::: zone pivot="visualstudio" + +1. Add a new .NET class library project named **StringLibrary** to the solution. + + 1. Right-click on the solution in **Solution Explorer** and select **Add** > **New Project**. + + 1. On the **Add a new project** page, enter **library** in the search box. Choose **C#** or **Visual Basic** from the Language list, and then choose **All platforms** from the Platform list. Choose the **Class Library** template, and then choose **Next**. + + 1. On the **Configure your new project** page, enter **StringLibrary** in the **Project name** box, and then choose **Next**. + + 1. On the **Additional information** page, select **.NET 10**, and then choose **Create**. + +1. Check to make sure that the library targets the correct version of .NET. Right-click on the library project in **Solution Explorer**, and then select **Properties**. The **Target Framework** text box shows that the project targets .NET 10.0. + +1. If you're using Visual Basic, clear the text in the **Default namespace** text box. + + :::image type="content" source="./media/library-with-visual-studio/vb/library-project-properties.png" alt-text="Project properties for the class library"::: + + For each project, Visual Basic automatically creates a namespace that corresponds to the project name. In this tutorial, you define a top-level namespace by using the [`namespace`](../../visual-basic/language-reference/statements/namespace-statement.md) keyword in the code file. + +1. Replace the code in the code window for *Class1.cs* or *Class1.vb* with the following code, and save the file. If the language you want to use isn't shown, change the language selector at the top of the page. + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs"::: + :::code language="vb" source="./snippets/library-with-visual-studio/vb/StringLibrary/Class1.vb"::: + + The class library, `UtilityLibraries.StringLibrary`, contains a method named `StartsWithUpper`. This method returns a value that indicates whether the current string instance begins with an uppercase character. The Unicode standard distinguishes uppercase characters from lowercase characters. The method returns `true` if a character is uppercase. + + `StartsWithUpper` is implemented as an [extension method](../../csharp/programming-guide/classes-and-structs/extension-methods.md) so that you can call it as if it were a member of the class. The question mark (`?`) after `string` in the C# code indicates that the string may be null. + +1. On the menu bar, select **Build** > **Build Solution** or press Ctrl+Shift+B to verify that the project compiles without error. + +::: zone-end + +::: zone pivot="vscode" + +1. The project is created and *Class1.cs* opens. + +1. Replace the contents of *Class1.cs* with the following code: + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs"::: + + The class library, `UtilityLibraries.StringLibrary`, contains a method named `StartsWithUpper`. This method returns a value that indicates whether the current string instance begins with an uppercase character. The Unicode standard distinguishes uppercase characters from lowercase characters. The method returns `true` if a character is uppercase. + + `StartsWithUpper` is implemented as an [extension method](../../csharp/programming-guide/classes-and-structs/extension-methods.md) so that you can call it as if it were a member of the class. + +1. Save the file. + +1. Expand **Solution Explorer** at the bottom of the **Explorer** view. + +1. Right click the solution in **Solution Explorer** and select **Build**, or open the Command Palette and select **.NET: Build** to build the solution and verify that the project compiles without error. + + The terminal output looks like the following example: + + ```output + Determining projects to restore... + All projects are up-to-date for restore. + StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net10.0\StringLibrary.dll + Build succeeded. + 0 Warning(s) + 0 Error(s) + Time Elapsed 00:00:02.78 + ``` + +::: zone-end + +::: zone pivot="codespaces" + +1. Navigate to the StringLibrary folder: + + ```bash + cd StringLibrary + ``` + +1. Open *Class1.cs* and replace its contents with the following code: + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs"::: + + The class library, `UtilityLibraries.StringLibrary`, contains a method named `StartsWithUpper`. This method returns a value that indicates whether the current string instance begins with an uppercase character. The Unicode standard distinguishes uppercase characters from lowercase characters. The method returns `true` if a character is uppercase. + + `StartsWithUpper` is implemented as an [extension method](../../csharp/programming-guide/classes-and-structs/extension-methods.md) so that you can call it as if it were a member of the class. + +1. Save the file and build the project: + + ```dotnetcli + dotnet build + ``` + + The build should succeed with no errors. + +::: zone-end + +## Add a console app to the solution + +Add a console application that uses the class library. The app will prompt the user to enter a string and report whether the string begins with an uppercase character. + +::: zone pivot="visualstudio" + +1. Add a new .NET console application named **ShowCase** to the solution. + + 1. Right-click on the solution in **Solution Explorer** and select **Add** > **New project**. + + 1. On the **Add a new project** page, enter **console** in the search box. Choose **C#** or **Visual Basic** from the Language list, and then choose **All platforms** from the Platform list. + + 1. Choose the **Console Application** template, and then choose **Next**. + + 1. On the **Configure your new project** page, enter **ShowCase** in the **Project name** box. Then choose **Next**. + + 1. On the **Additional information** page, select **.NET 10** in the **Framework** box. Then choose **Create**. + +1. In the code window for the *Program.cs* or *Program.vb* file, replace all of the code with the following code. + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/ShowCase/Program.cs"::: + :::code language="vb" source="./snippets/library-with-visual-studio/vb/ShowCase/Program.vb"::: + + The code uses the `row` variable to maintain a count of the number of rows of data written to the console window. Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user. + + The program prompts the user to enter a string. It indicates whether the string starts with an uppercase character. If the user presses the Enter key without entering a string, the application ends, and the console window closes. + +::: zone-end + +::: zone pivot="vscode" + +1. Right-click the solution in **Solution Explorer** and select **New Project**, or in the Command Palette select **.NET: New Project**. + +1. Select **Console App**. + +1. Give it the name **ShowCase**, select the default directory and select **Create Project**. + +1. Open *ShowCase/Program.cs* and replace all of the code with the following code. + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/ShowCase/Program.cs"::: + + The code uses the `row` variable to maintain a count of the number of rows of data written to the console window. Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user. + + The program prompts the user to enter a string. It indicates whether the string starts with an uppercase character. If the user presses the Enter key without entering a string, the application ends, and the console window closes. + +1. Save your changes. + +::: zone-end + +::: zone pivot="codespaces" + +1. Navigate back to the tutorials folder and create a new console app: + + ```bash + cd .. + dotnet new console -n ShowCase + ``` + +1. Open *ShowCase/Program.cs* and replace all of the code with the following code: + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/ShowCase/Program.cs"::: + + The code uses the `row` variable to maintain a count of the number of rows of data written to the console window. Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user. + + The program prompts the user to enter a string. It indicates whether the string starts with an uppercase character. If the user presses the Enter key without entering a string, the application ends, and the console window closes. + +1. Save your changes. + +::: zone-end + +## Add a project reference + +Initially, the new console app project doesn't have access to the class library. To allow it to call methods in the class library, create a project reference to the class library project. + +::: zone pivot="visualstudio" + +1. In **Solution Explorer**, right-click the `ShowCase` project's **Dependencies** node, and select **Add Project Reference**. + + :::image type="content" source="media/library-with-visual-studio/add-reference-context-menu.png" alt-text="Add reference context menu in Visual Studio"::: + +1. In the **Reference Manager** dialog, select the **StringLibrary** project, and select **OK**. + + :::image type="content" source="media/library-with-visual-studio/manage-project-references.png" alt-text="Reference Manager dialog with StringLibrary selected"::: + +::: zone-end + +::: zone pivot="vscode" + +1. In **Solution Explorer** right click on the **ShowCase** project and select **Add Project Reference**. + +1. Select StringLibrary. + +> [!TIP] +> Alternatively, add the following to *ShowCase.csproj*: +> +> ```xml +> +> +> +> ``` + +::: zone-end + +::: zone pivot="codespaces" + +Add a reference to the StringLibrary project from the ShowCase project: + +```bash +cd ShowCase +dotnet add reference ../StringLibrary/StringLibrary.csproj +``` + +::: zone-end + +## Run the app + +::: zone pivot="visualstudio" + +1. In **Solution Explorer**, right-click the **ShowCase** project and select **Set as StartUp Project** in the context menu. + + :::image type="content" source="media/library-with-visual-studio/set-startup-project-context-menu.png" alt-text="Visual Studio project context menu to set startup project"::: + +1. Press Ctrl+F5 to compile and run the program without debugging. + +1. Try out the program by entering strings and pressing Enter, then press Enter to exit. + + :::image type="content" source="media/library-with-visual-studio/run-showcase.png" alt-text="Console window with ShowCase running"::: + +::: zone-end + +::: zone pivot="vscode" + +1. Use the top menu bar to select **Run** > **Run without debugging**. + +1. Select **C#**. + +1. Select **C#: ShowCase**. + + If you get an error that says no C# program is loaded, close the folder that you have open, and open the `ShowCase` folder. Then try running the app again. + +1. Try out the program by entering strings and pressing Enter, then press Enter to exit. + + The terminal output looks like the following example: + + ```output + Press only to exit; otherwise, enter a string and press : + + A string that starts with an uppercase letter + Input: A string that starts with an uppercase letter + Begins with uppercase? : Yes + + a string that starts with a lowercase letter + Input: a string that starts with a lowercase letter + Begins with uppercase? : No + ``` + +::: zone-end + +::: zone pivot="codespaces" + +1. Run the ShowCase app: + + ```dotnetcli + dotnet run + ``` + +1. Try out the program by entering strings and pressing Enter, then press Enter to exit. + + The terminal output looks like the following example: + + ```output + Press only to exit; otherwise, enter a string and press : + + A string that starts with an uppercase letter + Input: A string that starts with an uppercase letter + Begins with uppercase? : Yes + + a string that starts with a lowercase letter + Input: a string that starts with a lowercase letter + Begins with uppercase? : No + ``` + +::: zone-end + +## Additional resources + +- [Develop libraries with the .NET CLI](libraries.md) +- [.NET Standard versions and the platforms they support](../../standard/net-standard.md). + +::: zone pivot="codespaces" + +## Cleanup resources + +GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "delete". + +::: zone-end + +## Next steps + +In this tutorial, you created a class library. In the next tutorial, you learn how to unit test the class library. + +> [!div class="nextstepaction"] +> [Unit test a .NET class library](testing-console-app-class-library.md) + +Or, you can skip automated unit testing and learn how to share the library by creating a NuGet package: + +> [!div class="nextstepaction"] +> [Create and publish a package using Visual Studio](/nuget/quickstart/create-and-publish-a-package-using-visual-studio) + +Or, learn how to publish a console app. If you publish the console app from the solution you created in this tutorial, the class library goes with it as a *.dll* file. + +> [!div class="nextstepaction"] +> [Publish a .NET console application](publishing-console-app.md) diff --git a/docs/core/tutorials/with-visual-studio-code.md b/docs/core/tutorials/console-app.md similarity index 60% rename from docs/core/tutorials/with-visual-studio-code.md rename to docs/core/tutorials/console-app.md index 45bee81113cf0..b40f58517dd9a 100644 --- a/docs/core/tutorials/with-visual-studio-code.md +++ b/docs/core/tutorials/console-app.md @@ -1,10 +1,28 @@ --- -title: Create a .NET console application using Visual Studio Code -description: Learn how to create a .NET console application using Visual Studio Code. -ms.date: 01/26/2026 +title: Create a .NET console application +description: Learn how to create a .NET console application using Visual Studio, Visual Studio Code, or GitHub Codespaces. +ms.date: 02/12/2026 +ai-usage: ai-assisted zone_pivot_groups: code-editor-set-one +dev_langs: + - "csharp" + - "vb" --- -# Tutorial: Create a .NET console application using Visual Studio Code +# Tutorial: Create a .NET console application + +::: zone pivot="visualstudio" + +This tutorial shows how to create and run a .NET console application in Visual Studio. + +In this tutorial, you: + +> [!div class="checklist"] +> +> * Create a Visual Studio solution and console app project. +> * Create a "HelloWorld" .NET console application. +> * Enhance the app to prompt the user for their name and display it in the console window. + +::: zone-end ::: zone pivot="vscode" @@ -36,6 +54,14 @@ In this tutorial, you: ## Prerequisites +::: zone pivot="visualstudio" + +- [Visual Studio 2026 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=inline+link) with the **.NET desktop development** workload installed. The .NET SDK is automatically installed when you select this workload. + + For more information, see [Install the .NET SDK with Visual Studio](../install/windows.md#install-with-visual-studio). + +::: zone-end + ::: zone pivot="vscode" [!INCLUDE [Prerequisites](../../../includes/prerequisites-basic-winget.md)] @@ -50,6 +76,56 @@ In this tutorial, you: ## Create the app +::: zone pivot="visualstudio" + +Create a .NET console app project named "HelloWorld". + +1. Start Visual Studio. + +1. On the start page, choose **Create a new project**. + + :::image type="content" source="./media/with-visual-studio/start-window.png" alt-text="Create a new project button selected on the Visual Studio start page"::: + +1. On the **Create a new project** page, enter **console** in the search box. Next, choose **C#** or **Visual Basic** from the language list, and then choose **All platforms** from the platform list. Choose the **Console App** template, and then choose **Next**. + + :::image type="content" source="./media/with-visual-studio/create-new-project.png" alt-text="Create a new project window with filters selected"::: + + > [!TIP] + > If you don't see the .NET templates, you're probably missing the required workload. Under the **Not finding what you're looking for?** message, choose the **Install more tools and features** link. The Visual Studio Installer opens. Make sure you have the **.NET desktop development** workload installed. + +1. In the **Configure your new project** dialog, enter **HelloWorld** in the **Project name** box. Then choose **Next**. + + :::image type="content" source="./media/with-visual-studio/configure-new-project.png" alt-text="Configure your new project window with Project name, location, and solution name fields"::: + +1. In the **Additional information** dialog: + - Select **.NET 10.0 (Long Term Support)**. + - Select **Create**. + + :::image type="content" source="./media/with-visual-studio/additional-information.png" alt-text="Enter additional information for the console app."::: + + The template creates a simple application that displays "Hello, World!" in the console window. The code is in the *Program.cs* or *Program.vb* file: + + ```csharp + // See https://aka.ms/new-console-template for more information + Console.WriteLine("Hello, World!"); + ``` + + ```vb + Imports System + + Module Program + Sub Main(args As String()) + Console.WriteLine("Hello World!") + End Sub + End Module + ``` + + If the language you want to use is not shown, change the language selector at the top of the page. + + The C# template uses top-level statements to call the method to display a message in the console window. The Visual Basic template defines a `Module Program` with a `Sub Main` method that calls the same method. + +::: zone-end + ::: zone pivot="vscode" Create a .NET console app project named "HelloWorld". @@ -111,6 +187,16 @@ In Codespaces, you'll create a [file-based app](../sdk/file-based-apps.md). File ## Run the app +::: zone pivot="visualstudio" + +1. Press Ctrl+F5 to run the program without debugging. + + A console window opens with the text "Hello, World!" printed on the screen. (Or "Hello World!" without a comma in the Visual Basic project template.) + +1. Press any key to close the console window. + +::: zone-end + ::: zone pivot="vscode" To run your app, select **Run** > **Run without Debugging** in the upper menu, or use the keyboard shortcut (Ctrl+F5). @@ -138,6 +224,29 @@ The program displays "Hello, World!" and ends. Enhance the application to prompt the user for their name and display it along with the date and time. +::: zone pivot="visualstudio" + +1. In *Program.cs* or *Program.vb*, replace the contents with the following code: + + :::code language="csharp" source="./snippets/with-visual-studio/csharp/Program.cs" id="MainMethod"::: + :::code language="vb" source="./snippets/with-visual-studio/vb/Program.vb" id="MainMethod"::: + + This code displays a prompt in the console window and waits until the user enters a string followed by the Enter key. It stores this string in a variable named `name`. It also retrieves the value of the property, which contains the current local time, and assigns it to a variable named `currentDate`. And it displays these values in the console window. Finally, it displays a prompt in the console window and calls the method to wait for user input. + + is a platform-independent and language-independent way to represent a line break. Alternatives are `\n` in C# and `vbCrLf` in Visual Basic. + + The dollar sign (`$`) in front of a string lets you put expressions such as variable names in curly braces in the string. The expression value is inserted into the string in place of the expression. This syntax is referred to as [interpolated strings](../../csharp/language-reference/tokens/interpolated.md). + +1. Press Ctrl+F5 to run the program without debugging. + +1. Respond to the prompt by entering a name and pressing the Enter key. + + :::image type="content" source="./media/with-visual-studio/hello-world-update.png" alt-text="Console window with modified program output"::: + +1. Press any key to close the console window. + +::: zone-end + ::: zone pivot="vscode" 1. Open *Program.cs*. @@ -201,6 +310,12 @@ Enhance the application to prompt the user for their name and display it along w ## Additional resources +::: zone pivot="visualstudio" + +- [Standard-term support (STS) releases and long-term support (LTS) releases](../releases-and-support.md#release-tracks). + +::: zone-end + ::: zone pivot="vscode" * [Setting up Visual Studio Code](https://code.visualstudio.com/docs/setup/setup-overview) @@ -223,4 +338,4 @@ GitHub automatically deletes your Codespace after 30 days of inactivity. If you In this tutorial, you created a .NET console application. In the next tutorial, you debug the app. > [!div class="nextstepaction"] -> [Debug a .NET console application using Visual Studio Code](debugging-with-visual-studio-code.md) +> [Debug a .NET console application](debugging-console-app.md) diff --git a/docs/core/tutorials/debugging-with-visual-studio-code.md b/docs/core/tutorials/debugging-console-app.md similarity index 52% rename from docs/core/tutorials/debugging-with-visual-studio-code.md rename to docs/core/tutorials/debugging-console-app.md index 7d9488f747f45..5def0e7815037 100644 --- a/docs/core/tutorials/debugging-with-visual-studio-code.md +++ b/docs/core/tutorials/debugging-console-app.md @@ -1,10 +1,23 @@ --- -title: Debug a .NET console application using Visual Studio Code -description: Learn how to debug a .NET console app using Visual Studio Code. -ms.date: 01/27/2026 +title: Debug a .NET console application +description: Learn how to debug a .NET console app using Visual Studio, Visual Studio Code, or GitHub Codespaces. +ms.date: 02/12/2026 +ai-usage: ai-assisted zone_pivot_groups: code-editor-set-one +dev_langs: + - "csharp" + - "vb" --- -# Tutorial: Debug a .NET console application using Visual Studio Code +# Tutorial: Debug a .NET console application + +::: zone pivot="visualstudio" + +This tutorial introduces the debugging tools available in Visual Studio. + +> [!IMPORTANT] +> All of the keyboard shortcuts are based on the defaults from Visual Studio. Your keyboard shortcuts may vary, for more information see [Keyboard shortcuts in Visual Studio](/visualstudio/ide/default-keyboard-shortcuts-in-visual-studio). + +::: zone-end ::: zone pivot="vscode" @@ -20,17 +33,55 @@ This tutorial introduces the debugging tools available in GitHub Codespaces for ## Prerequisites -This tutorial works with the console app that you create in [Create a .NET console application using Visual Studio Code](with-visual-studio-code.md). +This tutorial works with the console app that you create in [Create a .NET console application](console-app.md). + +::: zone pivot="visualstudio" + +## Use Debug build configuration + +*Debug* and *Release* are Visual Studio's built-in build configurations. You use the Debug build configuration for debugging and the Release configuration for the final release distribution. + +In the Debug configuration, a program compiles with full symbolic debug information and no optimization. Optimization complicates debugging, because the relationship between source code and generated instructions is more complex. The release configuration of a program has no symbolic debug information and is fully optimized. + +By default, Visual Studio uses the Debug build configuration, so you don't need to change it before debugging. + +1. Start Visual Studio. + +1. Open the project that you created in [Create a .NET console application](console-app.md). + + The current build configuration is shown on the toolbar. The following toolbar image shows that Visual Studio is configured to compile the Debug version of the app: + + :::image type="content" source="./media/debugging-with-visual-studio/use-debug-configuration.png" alt-text="Visual Studio toolbar with debug highlighted"::: + +::: zone-end ## Set a breakpoint A *breakpoint* temporarily interrupts the execution of the application before the line with the breakpoint is run. +::: zone pivot="visualstudio" + +1. Set a *breakpoint* on the line that displays the name, date, and time, by clicking in the left margin of the code window on that line. The left margin is to the left of the line numbers. Other ways to set a breakpoint are by placing the cursor in the line of code and then pressing F9 or choosing **Debug** > **Toggle Breakpoint** from the menu bar. + + As the following image shows, Visual Studio indicates the line on which the breakpoint is set by highlighting it and displaying a red dot in the left margin. + + :::image type="content" source="./media/debugging-with-visual-studio/set-breakpoint.png" alt-text="Visual Studio Program window with breakpoint set"::: + +1. Press F5 to run the program in Debug mode. Another way to start debugging is by choosing **Debug** > **Start Debugging** from the menu. + +1. Enter a string in the console window when the program prompts for a name, and then press Enter. + +1. Program execution stops when it reaches the breakpoint and before the `Console.WriteLine` method executes. The **Locals** window displays the values of variables that are defined in the currently executing method. + + :::image type="content" source="./media/debugging-with-visual-studio/breakpoint-hit.png" alt-text="Screenshot of a breakpoint in Visual Studio"::: + +::: zone-end + ::: zone pivot="vscode" 1. Start Visual Studio Code. -1. Open the folder of the project that you created in [Create a .NET console application using Visual Studio Code](with-visual-studio-code.md). +1. Open the folder of the project that you created in [Create a .NET console application](console-app.md). 1. Open the *Program.cs* file. @@ -44,7 +95,7 @@ A *breakpoint* temporarily interrupts the execution of the application before th ::: zone pivot="codespaces" -1. Open your GitHub Codespace that you created in [Create a .NET console application using Visual Studio Code](with-visual-studio-code.md). +1. Open your GitHub Codespace that you created in [Create a .NET console application](console-app.md). 1. Open the *HelloWorld.cs* file. @@ -56,10 +107,16 @@ A *breakpoint* temporarily interrupts the execution of the application before th ## Start debugging -*Debug* and *Release* are .NET's built-in build configurations. You use the Debug build configuration for debugging and the Release configuration for the final release distribution. +::: zone pivot="visualstudio" + +Program execution stops when it reaches the breakpoint, as described in the previous section. The **Locals** window displays the values of variables that are defined in the currently executing method. + +::: zone-end ::: zone pivot="vscode" +*Debug* and *Release* are .NET's built-in build configurations. You use the Debug build configuration for debugging and the Release configuration for the final release distribution. + By default, Visual Studio Code launch settings use the Debug build configuration, so you don't need to change it before debugging. 1. Open the Debug view by selecting the Debugging icon on the left side menu. @@ -104,6 +161,32 @@ By default, GitHub Codespaces uses the Debug build configuration, so you don't n ::: zone-end +::: zone pivot="visualstudio" + +## Use the Immediate window + +The **Immediate** window lets you interact with the application you're debugging. You can interactively change the value of variables to see how it affects your program. + +1. If the **Immediate** window is not visible, display it by choosing **Debug** > **Windows** > **Immediate**. + +1. Enter `name = "Gracie"` in the **Immediate** window and press the Enter key. + +1. Enter `currentDate = DateTime.Parse("2026-02-05T20:25:00Z").ToUniversalTime()` in the **Immediate** window and press the Enter key. + + The **Immediate** window displays the value of the string variable and the properties of the value. In addition, the values of the variables are updated in the **Locals** window. + + :::image type="content" source="./media/debugging-with-visual-studio/locals-immediate-window.png" alt-text="Locals and Immediate Windows in Visual Studio"::: + +1. Press F5 to continue program execution. Another way to continue is by choosing **Debug** > **Continue** from the menu. + + The values displayed in the console window correspond to the changes you made in the **Immediate** window. + +1. Press any key to exit the application and stop debugging. + +::: zone-end + +::: zone pivot="vscode,codespaces" + ## Use the Debug Console The **Debug Console** window lets you interact with the application you're debugging. You can change the value of variables to see how it affects your program. @@ -128,10 +211,66 @@ The **Debug Console** window lets you interact with the application you're debug 1. Press Enter to exit the application and stop debugging. +::: zone-end + ## Set a conditional breakpoint The program displays the string that the user enters. What happens if the user doesn't enter anything? You can test this with a useful debugging feature called a *conditional breakpoint*. +::: zone pivot="visualstudio" + +1. Right-click on the red dot that represents the breakpoint. In the context menu, select **Conditions** to open the **Breakpoint Settings** dialog. Select the box for **Conditions** if it's not already selected. + + :::image type="content" source="./media/debugging-with-visual-studio/breakpoint-settings.png" alt-text="Editor showing breakpoint settings panel - C#"::: + +1. For the **Conditional Expression**, enter the following code in the text field. + + ```csharp + string.IsNullOrEmpty(name) + ``` + + ```vb + String.IsNullOrEmpty(name) + ``` + + Each time the breakpoint is hit, the debugger calls the `String.IsNullOrEmpty(name)` method, and it breaks on this line only if the method call returns `true`. + + Instead of a conditional expression, you can specify a *hit count*, which interrupts program execution before a statement is executed a specified number of times. Another option is to specify a *filter condition*, which interrupts program execution based on such attributes as a thread identifier, process name, or thread name. + +1. Select **Close** to close the dialog. + +1. Start the program with debugging by pressing F5. + +1. In the console window, press the Enter key when prompted to enter your name. + +1. Because the condition you specified (`name` is either `null` or ) has been satisfied, program execution stops when it reaches the breakpoint and before the `Console.WriteLine` method executes. + +1. Select the **Locals** window, which shows the values of variables that are local to the currently executing method. In this case, `Main` is the currently executing method. Observe that the value of the `name` variable is `""`, or . + +1. Confirm the value is an empty string by entering the following statement in the **Immediate** window and pressing Enter. The result is `true`. + + ```csharp + ? name == String.Empty + ``` + + ```vb + ? String.IsNullOrEmpty(name) + ``` + + The question mark directs the immediate window to [evaluate an expression](/visualstudio/ide/reference/immediate-window#enter-commands). + + :::image type="content" source="./media/debugging-with-visual-studio/immediate-window-output.png" alt-text="Immediate Window returning a value of true after the statement is executed - C#"::: + +1. Press F5 to continue program execution. + +1. Press any key to close the console window and stop debugging. + +1. Clear the breakpoint by clicking on the dot in the left margin of the code window. Other ways to clear a breakpoint are by pressing F9 or choosing **Debug > Toggle Breakpoint** while the line of code is selected. + +::: zone-end + +::: zone pivot="vscode,codespaces" + 1. Right-click (Ctrl-click on macOS) on the red dot that represents the breakpoint. In the context menu, select **Edit Breakpoint** to open a dialog that lets you enter a conditional expression. :::image type="content" source="media/debugging-with-visual-studio-code/breakpoint-context-menu.png" alt-text="Breakpoint context menu"::: @@ -170,8 +309,44 @@ The program displays the string that the user enters. What happens if the user d 1. If you get a warning that the breakpoint condition will be lost, select **Remove Breakpoint**. +::: zone-end + ## Step through a program +::: zone pivot="visualstudio" + +Visual Studio also allows you to step line by line through a program and monitor its execution. Ordinarily, you'd set a breakpoint and follow program flow through a small part of your program code. Since this program is small, you can step through the entire program. + +1. Set a breakpoint on the line of code that displays the "What is your name?" prompt. + +1. Choose **Debug** > **Step Into**. Another way to debug one statement at a time is by pressing F11. + + Visual Studio highlights and displays an arrow beside the next line of execution. + + :::image type="content" source="./media/debugging-with-visual-studio/step-into-method.png" alt-text="Visual Studio step into method - C#"::: + + At this point, the **Locals** window shows that the `args` array is empty, and `name` and `currentDate` have default values. In addition, Visual Studio has opened a blank console window. + +1. Press F11. Visual Studio highlights the statement that includes the `name` variable assignment. The **Locals** window shows that `name` is `null`, and the console window displays the string "What is your name?". + +1. Respond to the prompt by entering a string in the console window and pressing Enter. The console is unresponsive, and the string you entered isn't displayed in the console window, but the method will nevertheless capture your input. + +1. Press F11. Visual Studio highlights the statement that includes the `currentDate` variable assignment. The **Locals** window shows the value returned by the call to the method. The console window also displays the string you entered at the prompt. + +1. Press F11. The **Locals** window shows the value of the `currentDate` variable after the assignment from the property. The console window is unchanged. + +1. Press F11. Visual Studio calls the method. The console window displays the formatted string. + +1. Choose **Debug** > **Step Out**. Another way to stop step-by-step execution is by pressing Shift+F11. + + The console window displays a message and waits for you to press a key. + +1. Press any key to close the console window and stop debugging. + +::: zone-end + +::: zone pivot="vscode,codespaces" + Visual Studio Code also allows you to step line by line through a program and monitor its execution. Ordinarily, you'd set a breakpoint and follow program flow through a small part of your program code. Since this program is small, you can step through the entire program. 1. Set a breakpoint on the line of code that displays the "What is your name?" prompt. @@ -218,9 +393,21 @@ Visual Studio Code also allows you to step line by line through a program and mo 1. Press any key to exit the program. +::: zone-end + ## Use Release build configuration -Once you've tested the Debug version of your application, you should also compile and test the Release version. The Release version incorporates compiler optimizations that can affect the behavior of an application. For example, compiler optimizations that are designed to improve performance can create race conditions in multithreaded applications. +Once you've tested the Debug version of your application, you should also compile and test the Release version. The Release version incorporates compiler optimizations that can sometimes negatively affect the behavior of an application. For example, compiler optimizations that are designed to improve performance can create race conditions in multithreaded applications. + +::: zone pivot="visualstudio" + +To build and test the Release version of your console application, change the build configuration on the toolbar from **Debug** to **Release**. + +:::image type="content" source="./media/debugging-with-visual-studio/use-release-configuration.png" alt-text="default Visual Studio toolbar with release highlighted"::: + +When you press F5 or choose **Build Solution** from the **Build** menu, Visual Studio compiles the Release version of the application. You can test it as you did the Debug version. + +::: zone-end ::: zone pivot="vscode" @@ -244,7 +431,7 @@ dotnet run --configuration Release HelloWorld.cs ## Next steps -In this tutorial, you used Visual Studio Code debugging tools. In the next tutorial, you publish a deployable version of the app. +In this tutorial, you used debugging tools. In the next tutorial, you publish a deployable version of the app. > [!div class="nextstepaction"] -> [Publish a .NET console application using Visual Studio Code](publishing-with-visual-studio-code.md) +> [Publish a .NET console application](publishing-console-app.md) diff --git a/docs/core/tutorials/debugging-with-visual-studio.md b/docs/core/tutorials/debugging-with-visual-studio.md deleted file mode 100644 index 1fc5f62b6b91c..0000000000000 --- a/docs/core/tutorials/debugging-with-visual-studio.md +++ /dev/null @@ -1,173 +0,0 @@ ---- -title: Debug a .NET console application using Visual Studio -description: Learn how to debug a .NET console app using Visual Studio. -ms.date: 01/14/2026 -ai-usage: ai-assisted -dev_langs: - - "csharp" - - "vb" -ms.custom: "vs-dotnet" ---- -# Tutorial: Debug a .NET console application using Visual Studio - -This tutorial introduces the debugging tools available in Visual Studio. - -> [!IMPORTANT] -> All of the keyboard shortcuts are based on the defaults from Visual Studio. Your keyboard shortcuts may vary, for more information see [Keyboard shortcuts in Visual Studio](/visualstudio/ide/default-keyboard-shortcuts-in-visual-studio). - -## Prerequisites - -This tutorial works with the console app that you create in [Create a .NET console application using Visual Studio](with-visual-studio.md). - -## Use Debug build configuration - -*Debug* and *Release* are Visual Studio's built-in build configurations. You use the Debug build configuration for debugging and the Release configuration for the final release distribution. - -In the Debug configuration, a program compiles with full symbolic debug information and no optimization. Optimization complicates debugging, because the relationship between source code and generated instructions is more complex. The release configuration of a program has no symbolic debug information and is fully optimized. - -By default, Visual Studio uses the Debug build configuration, so you don't need to change it before debugging. - -1. Start Visual Studio. - -1. Open the project that you created in [Create a .NET console application using Visual Studio](with-visual-studio.md). - - The current build configuration is shown on the toolbar. The following toolbar image shows that Visual Studio is configured to compile the Debug version of the app: - - :::image type="content" source="./media/debugging-with-visual-studio/use-debug-configuration.png" alt-text="Visual Studio toolbar with debug highlighted"::: - -## Set a breakpoint - -A *breakpoint* temporarily interrupts the execution of the application before the line with the breakpoint is executed. - -1. Set a *breakpoint* on the line that displays the name, date, and time, by clicking in the left margin of the code window on that line. The left margin is to the left of the line numbers. Other ways to set a breakpoint are by placing the cursor in the line of code and then pressing F9 or choosing **Debug** > **Toggle Breakpoint** from the menu bar. - - As the following image shows, Visual Studio indicates the line on which the breakpoint is set by highlighting it and displaying a red dot in the left margin. - - :::image type="content" source="./media/debugging-with-visual-studio/set-breakpoint.png" alt-text="Visual Studio Program window with breakpoint set"::: - -1. Press F5 to run the program in Debug mode. Another way to start debugging is by choosing **Debug** > **Start Debugging** from the menu. - -1. Enter a string in the console window when the program prompts for a name, and then press Enter. - -1. Program execution stops when it reaches the breakpoint and before the `Console.WriteLine` method executes. The **Locals** window displays the values of variables that are defined in the currently executing method. - - :::image type="content" source="./media/debugging-with-visual-studio/breakpoint-hit.png" alt-text="Screenshot of a breakpoint in Visual Studio"::: - -## Use the Immediate window - -The **Immediate** window lets you interact with the application you're debugging. You can interactively change the value of variables to see how it affects your program. - -1. If the **Immediate** window is not visible, display it by choosing **Debug** > **Windows** > **Immediate**. - -1. Enter `name = "Gracie"` in the **Immediate** window and press the Enter key. - -1. Enter `currentDate = DateTime.Parse("2026-02-05T20:25:00Z").ToUniversalTime()` in the **Immediate** window and press the Enter key. - - The **Immediate** window displays the value of the string variable and the properties of the value. In addition, the values of the variables are updated in the **Locals** window. - - :::image type="content" source="./media/debugging-with-visual-studio/locals-immediate-window.png" alt-text="Locals and Immediate Windows in Visual Studio"::: - -1. Press F5 to continue program execution. Another way to continue is by choosing **Debug** > **Continue** from the menu. - - The values displayed in the console window correspond to the changes you made in the **Immediate** window. - -1. Press any key to exit the application and stop debugging. - -## Set a conditional breakpoint - -The program displays the string that the user enters. What happens if the user doesn't enter anything? You can test this with a useful debugging feature called a *conditional breakpoint*. - -1. Right-click on the red dot that represents the breakpoint. In the context menu, select **Conditions** to open the **Breakpoint Settings** dialog. Select the box for **Conditions** if it's not already selected. - - :::image type="content" source="./media/debugging-with-visual-studio/breakpoint-settings.png" alt-text="Editor showing breakpoint settings panel - C#"::: - -1. For the **Conditional Expression**, enter the following code in the text field. - - ```csharp - string.IsNullOrEmpty(name) - ``` - - ```vb - String.IsNullOrEmpty(name) - ``` - - Each time the breakpoint is hit, the debugger calls the `String.IsNullOrEmpty(name)` method, and it breaks on this line only if the method call returns `true`. - - Instead of a conditional expression, you can specify a *hit count*, which interrupts program execution before a statement is executed a specified number of times. Another option is to specify a *filter condition*, which interrupts program execution based on such attributes as a thread identifier, process name, or thread name. - -1. Select **Close** to close the dialog. - -1. Start the program with debugging by pressing F5. - -1. In the console window, press the Enter key when prompted to enter your name. - -1. Because the condition you specified (`name` is either `null` or ) has been satisfied, program execution stops when it reaches the breakpoint and before the `Console.WriteLine` method executes. - -1. Select the **Locals** window, which shows the values of variables that are local to the currently executing method. In this case, `Main` is the currently executing method. Observe that the value of the `name` variable is `""`, or . - -1. Confirm the value is an empty string by entering the following statement in the **Immediate** window and pressing Enter. The result is `true`. - - ```csharp - ? name == String.Empty - ``` - - ```vb - ? String.IsNullOrEmpty(name) - ``` - - The question mark directs the immediate window to [evaluate an expression](/visualstudio/ide/reference/immediate-window#enter-commands). - - :::image type="content" source="./media/debugging-with-visual-studio/immediate-window-output.png" alt-text="Immediate Window returning a value of true after the statement is executed - C#"::: - -1. Press F5 to continue program execution. - -1. Press any key to close the console window and stop debugging. - -1. Clear the breakpoint by clicking on the dot in the left margin of the code window. Other ways to clear a breakpoint are by pressing F9 or choosing **Debug > Toggle Breakpoint** while the line of code is selected. - -## Step through a program - -Visual Studio also allows you to step line by line through a program and monitor its execution. Ordinarily, you'd set a breakpoint and follow program flow through a small part of your program code. Since this program is small, you can step through the entire program. - -1. Set a breakpoint on the line of code that displays the "What is your name?" prompt. - -1. Choose **Debug** > **Step Into**. Another way to debug one statement at a time is by pressing F11. - - Visual Studio highlights and displays an arrow beside the next line of execution. - - :::image type="content" source="./media/debugging-with-visual-studio/step-into-method.png" alt-text="Visual Studio step into method - C#"::: - - At this point, the **Locals** window shows that the `args` array is empty, and `name` and `currentDate` have default values. In addition, Visual Studio has opened a blank console window. - -1. Press F11. Visual Studio highlights the statement that includes the `name` variable assignment. The **Locals** window shows that `name` is `null`, and the console window displays the string "What is your name?". - -1. Respond to the prompt by entering a string in the console window and pressing Enter. The console is unresponsive, and the string you entered isn't displayed in the console window, but the method will nevertheless capture your input. - -1. Press F11. Visual Studio highlights the statement that includes the `currentDate` variable assignment. The **Locals** window shows the value returned by the call to the method. The console window also displays the string you entered at the prompt. - -1. Press F11. The **Locals** window shows the value of the `currentDate` variable after the assignment from the property. The console window is unchanged. - -1. Press F11. Visual Studio calls the method. The console window displays the formatted string. - -1. Choose **Debug** > **Step Out**. Another way to stop step-by-step execution is by pressing Shift+F11. - - The console window displays a message and waits for you to press a key. - -1. Press any key to close the console window and stop debugging. - -## Use Release build configuration - -Once you've tested the Debug version of your application, you should also compile and test the Release version. The Release version incorporates compiler optimizations that can sometimes negatively affect the behavior of an application. For example, compiler optimizations that are designed to improve performance can create race conditions in multithreaded applications. - -To build and test the Release version of your console application, change the build configuration on the toolbar from **Debug** to **Release**. - -:::image type="content" source="./media/debugging-with-visual-studio/use-release-configuration.png" alt-text="default Visual Studio toolbar with release highlighted"::: - -When you press F5 or choose **Build Solution** from the **Build** menu, Visual Studio compiles the Release version of the application. You can test it as you did the Debug version. - -## Next steps - -In this tutorial, you used Visual Studio debugging tools. In the next tutorial, you publish a deployable version of the app. - -> [!div class="nextstepaction"] -> [Publish a .NET console application using Visual Studio](publishing-with-visual-studio.md) diff --git a/docs/core/tutorials/index.md b/docs/core/tutorials/index.md index 4306002e1e468..d096796640bdd 100644 --- a/docs/core/tutorials/index.md +++ b/docs/core/tutorials/index.md @@ -1,7 +1,7 @@ --- title: .NET Tutorials description: Follow tutorials for learning .NET to build apps and libraries on Mac, Linux, and Windows. -ms.date: 10/23/2025 +ms.date: 02/12/2026 ai-usage: ai-assisted ms.custom: devdivchpfy22 titleSuffix: "" @@ -10,29 +10,22 @@ titleSuffix: "" The following tutorials show how to develop console apps and libraries for .NET Core, .NET 5, and later versions. For other types of applications, see [Tutorials for getting started with .NET](../../standard/get-started.md). -## Use Visual Studio +## Create apps and libraries -- [Create a console app](with-visual-studio.md) -- [Debug an app](debugging-with-visual-studio.md) -- [Publish an app](publishing-with-visual-studio.md) -- [Create a class library](library-with-visual-studio.md) -- [Unit test a class library](testing-library-with-visual-studio.md) +These tutorials support Visual Studio, Visual Studio Code, and GitHub Codespaces. Choose your preferred development environment using the zone pivot selector at the top of each article. + +- [Create a console app](console-app.md) +- [Debug an app](debugging-console-app.md) +- [Publish an app](publishing-console-app.md) +- [Create a class library](console-app-class-library.md) +- [Unit test a class library](testing-console-app-class-library.md) - [Install and use a package](/nuget/quickstart/install-and-use-a-package-in-visual-studio) - [Create and publish a package](/nuget/quickstart/create-and-publish-a-package-using-visual-studio) -- [Create an F# console app](../../fsharp/get-started/get-started-visual-studio.md) - -## Use Visual Studio Code -Choose these tutorials if you want to use Visual Studio Code or another code editor. All of them use the CLI for .NET Core development tasks, so all except the debugging tutorial can be used with any code editor. +## F# tutorials -- [Create a console app](with-visual-studio-code.md) -- [Debug an app](debugging-with-visual-studio-code.md) -- [Publish an app](publishing-with-visual-studio-code.md) -- [Create a class library](library-with-visual-studio-code.md) -- [Unit test a class library](testing-library-with-visual-studio-code.md) -- [Install and use a package](/nuget/quickstart/install-and-use-a-package-using-the-dotnet-cli) -- [Create and publish a package](/nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli) -- [Create an F# console app](../../fsharp/get-started/get-started-vscode.md) +- [Create an F# console app in Visual Studio](../../fsharp/get-started/get-started-visual-studio.md) +- [Create an F# console app in Visual Studio Code](../../fsharp/get-started/get-started-vscode.md) ## Advanced articles diff --git a/docs/core/tutorials/library-with-visual-studio-code.md b/docs/core/tutorials/library-with-visual-studio-code.md deleted file mode 100644 index fbb8b06e9f8a3..0000000000000 --- a/docs/core/tutorials/library-with-visual-studio-code.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: Create a .NET class library using Visual Studio Code -description: Learn how to create a .NET class library using Visual Studio Code. -ms.date: 01/29/2026 ---- -# Tutorial: Create a .NET class library using Visual Studio Code - -In this tutorial, you create a simple utility library that contains a single string-handling method. - -A *class library* defines types and methods that are called by an application. If the library targets .NET Standard 2.0, it can be called by any .NET implementation (including .NET Framework) that supports .NET Standard 2.0. If the library targets .NET 10, it can be called by any application that targets .NET 10. This tutorial shows how to target .NET 10. - -When you create a class library, you can distribute it as a third-party component or as a bundled component with one or more applications. - -## Prerequisites - -[!INCLUDE [Prerequisites](../../../includes/prerequisites-basic-winget.md)] - -## Create a class library project - -Start by creating a .NET class library project named "StringLibrary" and an associated solution. A solution serves as a container for one or more projects. You'll add additional, related projects to the same solution. - -1. Start Visual Studio Code. - -1. Go to the Explorer view and select **Create .NET Project**. Alternatively, you can bring up the Command Palette using Ctrl+Shift+P (Command+Shift+P on MacOS) and then type ".NET" and find and select the .NET: New Project command. - -1. Choose the project template **Class Library**. - -1. Then select the location where you would like the new project to be created: Create a folder named `ClassLibraryProjects` and select it. - -1. Name the project **StringLibrary**. - -1. Select **.sln** as the solution file format. - -1. Select **Show all template options**. - -1. Next select **.NET 10**. Then select **Create Project**. - -1. In the **Do you trust the authors of the files in this folder?** dialog, select **Yes, I trust the authors**. You can trust the authors because this folder only has files generated by .NET and added or modified by you. - -1. The project is created and *Class1.cs* opens. - -1. Replace the contents of *Class1.cs* with the following code: - - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs"::: - - The class library, `UtilityLibraries.StringLibrary`, contains a method named `StartsWithUpper`. This method returns a value that indicates whether the current string instance begins with an uppercase character. The Unicode standard distinguishes uppercase characters from lowercase characters. The method returns `true` if a character is uppercase. - - `StartsWithUpper` is implemented as an [extension method](../../csharp/programming-guide/classes-and-structs/extension-methods.md) so that you can call it as if it were a member of the class. - -1. Save the file. - -1. Expand **Solution Explorer** at the bottom of the **Explorer** view. - -1. Right click the solution in **Solution Explorer** and select **Build**, or open the Command Palette and select **.NET: Build** to build the solution and verify that the project compiles without error. - - The terminal output looks like the following example: - - ```output - Determining projects to restore... - All projects are up-to-date for restore. - StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net10.0\StringLibrary.dll - Build succeeded. - 0 Warning(s) - 0 Error(s) - Time Elapsed 00:00:02.78 - ``` - -## Add a console app to the solution - -Add a console application that uses the class library. The app will prompt the user to enter a string and report whether the string begins with an uppercase character. - -1. Right-click the solution in **Solution Explorer** and select **New Project**, or in the Command Palette select **.NET: New Project**. - -1. Select **Console App**. - -1. Give it the name **ShowCase**, select the default directory and select **Create Project**. - -1. Open *ShowCase/Program.cs* and replace all of the code with the following code. - - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/ShowCase/Program.cs"::: - - The code uses the `row` variable to maintain a count of the number of rows of data written to the console window. Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user. - - The program prompts the user to enter a string. It indicates whether the string starts with an uppercase character. If the user presses the Enter key without entering a string, the application ends, and the console window closes. - -1. Save your changes. - -## Add a project reference - -Initially, the new console app project doesn't have access to the class library. To allow it to call methods in the class library, create a project reference to the class library project. - -1. In **Solution Explorer** right click on the **ShowCase** project and select **Add Project Reference**. - -1. Select StringLibrary. - -> [!TIP] -> Alternatively, add the following to *ShowCase.csproj*: -> -> ```xml -> -> -> -> ``` - -## Run the app - -1. Use the top menu bar to select **Run** > **Run without debugging**. - -1. Select **C#**. - -1. Select **C#: ShowCase**. - - If you get an error that says no C# program is loaded, close the folder that you have open, and open the `ShowCase` folder. Then try running the app again. - -1. Try out the program by entering strings and pressing Enter, then press Enter to exit. - - The terminal output looks like the following example: - - ```output - Press only to exit; otherwise, enter a string and press : - - A string that starts with an uppercase letter - Input: A string that starts with an uppercase letter - Begins with uppercase? : Yes - - a string that starts with a lowercase letter - Input: a string that starts with a lowercase letter - Begins with uppercase? : No - ``` - -## Additional resources - -* [Develop libraries with the .NET CLI](libraries.md) -* [.NET Standard versions and the platforms they support](../../standard/net-standard.md). - -## Next steps - -In this tutorial, you created a library project and added a console app project that uses the library. In the next tutorial, you add a unit test project to the solution. - -> [!div class="nextstepaction"] -> [Test a .NET class library with .NET using Visual Studio Code](testing-library-with-visual-studio-code.md) diff --git a/docs/core/tutorials/library-with-visual-studio.md b/docs/core/tutorials/library-with-visual-studio.md deleted file mode 100644 index efb52170df955..0000000000000 --- a/docs/core/tutorials/library-with-visual-studio.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: Create a .NET class library using Visual Studio -description: Learn how to create a .NET class library using Visual Studio. -ms.date: 01/13/2026 -ai-usage: ai-assisted -dev_langs: - - "csharp" - - "vb" -ms.custom: vs-dotnet ---- -# Tutorial: Create a .NET class library using Visual Studio - -In this tutorial, you create a simple class library that contains a single string-handling method. - -A *class library* defines types and methods that an application calls. If the library targets .NET Standard 2.0, any .NET implementation (including .NET Framework) that supports .NET Standard 2.0 can call it. If the library targets .NET 10, any application that targets .NET 10 can call it. This tutorial shows how to target .NET 10. - -When you create a class library, you can distribute it as a NuGet package or as a component bundled with the application that uses it. - -## Prerequisites - -- [Visual Studio 2026 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=inline+link) with the **.NET desktop development** workload installed. The .NET SDK is automatically installed when you select this workload. - - For more information, see [Install the .NET SDK with Visual Studio](../install/windows.md#install-with-visual-studio). - -## Create a solution - -Start by creating a blank solution to hold the class library project. A Visual Studio solution serves as a container for one or more projects. Add related projects to the same solution. - -To create the blank solution: - -1. Start Visual Studio. - -1. On the start window, choose **Create a new project**. - -1. On the **Create a new project** page, enter **solution** in the search box. Choose the **Blank Solution** template, and then choose **Next**. - - :::image type="content" source="media/library-with-visual-studio/blank-solution.png" alt-text="Blank solution template in Visual Studio"::: - -1. On the **Configure your new project** page, enter **ClassLibraryProjects** in the **Solution name** box. Then choose **Create**. - -## Create a class library project - -1. Add a new .NET class library project named **StringLibrary** to the solution. - - 1. Right-click on the solution in **Solution Explorer** and select **Add** > **New Project**. - - 1. On the **Add a new project** page, enter **library** in the search box. Choose **C#** or **Visual Basic** from the Language list, and then choose **All platforms** from the Platform list. Choose the **Class Library** template, and then choose **Next**. - - 1. On the **Configure your new project** page, enter **StringLibrary** in the **Project name** box, and then choose **Next**. - - 1. On the **Additional information** page, select **.NET 10**, and then choose **Create**. - -1. Check to make sure that the library targets the correct version of .NET. Right-click on the library project in **Solution Explorer**, and then select **Properties**. The **Target Framework** text box shows that the project targets .NET 10.0. - -1. If you're using Visual Basic, clear the text in the **Default namespace** text box. - - :::image type="content" source="./media/library-with-visual-studio/vb/library-project-properties.png" alt-text="Project properties for the class library"::: - - For each project, Visual Basic automatically creates a namespace that corresponds to the project name. In this tutorial, you define a top-level namespace by using the [`namespace`](../../visual-basic/language-reference/statements/namespace-statement.md) keyword in the code file. - -1. Replace the code in the code window for *Class1.cs* or *Class1.vb* with the following code, and save the file. If the language you want to use isn't shown, change the language selector at the top of the page. - - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs"::: - :::code language="vb" source="./snippets/library-with-visual-studio/vb/StringLibrary/Class1.vb"::: - - The class library, `UtilityLibraries.StringLibrary`, contains a method named `StartsWithUpper`. This method returns a value that indicates whether the current string instance begins with an uppercase character. The Unicode standard distinguishes uppercase characters from lowercase characters. The method returns `true` if a character is uppercase. - - `StartsWithUpper` is implemented as an [extension method](../../csharp/programming-guide/classes-and-structs/extension-methods.md) so that you can call it as if it were a member of the class. The question mark (`?`) after `string` in the C# code indicates that the string may be null. - -1. On the menu bar, select **Build** > **Build Solution** or press Ctrl+Shift+B to verify that the project compiles without error. - -## Add a console app to the solution - -Add a console application that uses the class library. The app prompts the user to enter a string and reports whether the string begins with an uppercase character. - -1. Add a new .NET console application named **ShowCase** to the solution. - - 1. Right-click on the solution in **Solution Explorer** and select **Add** > **New project**. - - 1. On the **Add a new project** page, enter **console** in the search box. Choose **C#** or **Visual Basic** from the Language list, and then choose **All platforms** from the Platform list. - - 1. Choose the **Console Application** template, and then choose **Next**. - - 1. On the **Configure your new project** page, enter **ShowCase** in the **Project name** box. Then choose **Next**. - - 1. On the **Additional information** page, select **.NET 10** in the **Framework** box. Then choose **Create**. - -1. In the code window for the *Program.cs* or *Program.vb* file, replace all of the code with the following code. - - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/ShowCase/Program.cs"::: - :::code language="vb" source="./snippets/library-with-visual-studio/vb/ShowCase/Program.vb"::: - - The code uses the `row` variable to maintain a count of the number of rows of data written to the console window. Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user. - - The program prompts the user to enter a string. It indicates whether the string starts with an uppercase character. If the user presses the Enter key without entering a string, the application ends, and the console window closes. - -## Add a project reference - -Initially, the new console app project doesn't have access to the class library. To allow it to call methods in the class library, create a project reference to the class library project. - -1. In **Solution Explorer**, right-click the `ShowCase` project's **Dependencies** node, and select **Add Project Reference**. - - :::image type="content" source="media/library-with-visual-studio/add-reference-context-menu.png" alt-text="Add reference context menu in Visual Studio"::: - -1. In the **Reference Manager** dialog, select the **StringLibrary** project, and select **OK**. - - :::image type="content" source="media/library-with-visual-studio/manage-project-references.png" alt-text="Reference Manager dialog with StringLibrary selected"::: - -## Run the app - -1. In **Solution Explorer**, right-click the **ShowCase** project and select **Set as StartUp Project** in the context menu. - - :::image type="content" source="media/library-with-visual-studio/set-startup-project-context-menu.png" alt-text="Visual Studio project context menu to set startup project"::: - -1. Press Ctrl+F5 to compile and run the program without debugging. - -1. Try out the program by entering strings and pressing Enter, then press Enter to exit. - - :::image type="content" source="media/library-with-visual-studio/run-showcase.png" alt-text="Console window with ShowCase running"::: - -## Additional resources - -- [Develop libraries with the .NET CLI](libraries.md) -- [.NET Standard versions and the platforms they support](../../standard/net-standard.md). - -## Next steps - -In this tutorial, you created a class library. In the next tutorial, you learn how to unit test the class library. - -> [!div class="nextstepaction"] -> [Unit test a .NET class library using Visual Studio](testing-library-with-visual-studio.md) - -Or, you can skip automated unit testing and learn how to share the library by creating a NuGet package: - -> [!div class="nextstepaction"] -> [Create and publish a package using Visual Studio](/nuget/quickstart/create-and-publish-a-package-using-visual-studio) - -Or, learn how to publish a console app. If you publish the console app from the solution you created in this tutorial, the class library goes with it as a *.dll* file. - -> [!div class="nextstepaction"] -> [Publish a .NET console application using Visual Studio](publishing-with-visual-studio.md) diff --git a/docs/core/tutorials/publishing-with-visual-studio-code.md b/docs/core/tutorials/publishing-console-app.md similarity index 61% rename from docs/core/tutorials/publishing-with-visual-studio-code.md rename to docs/core/tutorials/publishing-console-app.md index 884e954b9cd75..0cfbf6b2fd29d 100644 --- a/docs/core/tutorials/publishing-with-visual-studio-code.md +++ b/docs/core/tutorials/publishing-console-app.md @@ -1,26 +1,59 @@ --- -title: Publish a .NET console application using Visual Studio Code -description: Learn how to use Visual Studio Code and the .NET CLI to create the set of files that are needed to run a .NET application. -ms.date: 01/28/2026 +title: Publish a .NET console application +description: Learn how to publish a .NET console application using Visual Studio, Visual Studio Code, or the .NET CLI. +ms.date: 02/12/2026 +ai-usage: ai-assisted zone_pivot_groups: code-editor-set-one --- -# Tutorial: Publish a .NET console application using Visual Studio Code +# Tutorial: Publish a .NET console application This tutorial shows how to publish a console app so that other users can run it. Publishing creates the set of files that are needed to run an application. To deploy the files, copy them to the target machine. -The .NET CLI is used to publish the app. - ## Prerequisites -- This tutorial works with the console app that you create in [Create a .NET console application using Visual Studio Code](with-visual-studio-code.md). +- This tutorial works with the console app that you create in [Create a .NET console application](console-app.md). ## Publish the app +::: zone pivot="visualstudio" + +1. Start Visual Studio. + +1. Open the *HelloWorld* project that you created in [Create a .NET console application](console-app.md). + +1. Make sure that Visual Studio is using the Release build configuration. If necessary, change the build configuration setting on the toolbar from **Debug** to **Release**. + + :::image type="content" source="media/publishing-with-visual-studio/use-release-configuration.png" alt-text="Visual Studio toolbar with release build selected."::: + +1. Right-click on the **HelloWorld** project (not the HelloWorld solution) and select **Publish** from the menu. + + :::image type="content" source="media/publishing-with-visual-studio/publish-context-menu.png" alt-text="Visual Studio Publish context menu."::: + +1. On the **Target** tab of the **Publish** page, select **Folder**, and then select **Next**. + + :::image type="content" source="media/publishing-with-visual-studio/pick-publish-target.png" alt-text="Pick a publish target in Visual Studio."::: + +1. On the **Specific Target** tab of the **Publish** page, select **Folder**, and then select **Next**. + + :::image type="content" source="media/publishing-with-visual-studio/pick-specific-publish-target.png" alt-text="Pick the specific publish target in Visual Studio."::: + +1. On the **Location** tab of the **Publish** page, select **Finish**. + + :::image type="content" source="media/publishing-with-visual-studio/publish-page-loc-tab.png" alt-text="Visual Studio Publish page Location tab."::: + +1. On the **Publish profile creation progress** page, select **Close**. + +1. On the **Publish** tab of the **Publish** window, select **Publish**. + + :::image type="content" source="media/publishing-with-visual-studio/publish-page.png" alt-text="Visual Studio Publish window."::: + +::: zone-end + ::: zone pivot="vscode" 1. Start Visual Studio Code. -1. Open the *HelloWorld* project folder that you created in [Create a .NET console application using Visual Studio Code](with-visual-studio-code.md). +1. Open the *HelloWorld* project folder that you created in [Create a .NET console application](console-app.md). 1. Choose **View** > **Terminal** from the main menu. @@ -47,7 +80,7 @@ The .NET CLI is used to publish the app. ::: zone pivot="codespaces" -1. Open your GitHub Codespace that you created in [Create a .NET console application using Visual Studio Code](with-visual-studio-code.md). +1. Open your GitHub Codespace that you created in [Create a .NET console application](console-app.md). 1. Add the following line of code to the top of *HelloWorld.cs*: @@ -80,6 +113,44 @@ The .NET CLI is used to publish the app. ## Inspect the files +::: zone pivot="visualstudio" + +By default, the publishing process creates a framework-dependent deployment, which is a type of deployment where the published application runs on a machine that has the .NET runtime installed. Users can run the published app by double-clicking the executable or issuing the `dotnet HelloWorld.dll` command from a command prompt. + +In the following steps, you'll look at the files created by the publish process. + +1. In **Solution Explorer**, select **Show All Files**. + + :::image type="content" source="media/publishing-with-visual-studio/show-all-files.png" alt-text="Solution Explorer option to Show All Files."::: + +1. In the project folder, expand *bin/Release/{net}/publish*. (Where {net} is the target framework folder, such as _net10.0_.) + + :::image type="content" source="media/publishing-with-visual-studio/published-files-output.png" alt-text="Solution Explorer showing published files."::: + + As the image shows, the published output includes the following files: + + - *HelloWorld.deps.json* + + This is the application's runtime dependencies file. It defines the .NET components and the libraries (including the dynamic link library that contains your application) needed to run the app. For more information, see [Runtime configuration files](https://github.com/dotnet/cli/blob/85ca206d84633d658d7363894c4ea9d59e515c1a/Documentation/specs/runtime-configuration-file.md). + + - *HelloWorld.dll* + + This is the [framework-dependent deployment](../deploying/index.md#cross-platform-dll-deployment) version of the application. To execute this dynamic link library, enter `dotnet HelloWorld.dll` at a command prompt. This method of running the app works on any platform that has the .NET runtime installed. + + - *HelloWorld.exe* + + This is the [framework-dependent executable](../deploying/index.md#framework-dependent-deployment) version of the application. To run it, enter `HelloWorld.exe` at a command prompt. The file is operating-system-specific. + + - *HelloWorld.pdb* (optional for deployment) + + This is the debug symbols file. You aren't required to deploy this file along with your application, although you should save it in the event that you need to debug the published version of your application. + + - *HelloWorld.runtimeconfig.json* + + This is the application's runtime configuration file. It identifies the version of .NET that your application was built to run on. You can also add configuration options to it. For more information, see [.NET runtime configuration settings](../runtime-config/index.md#runtimeconfigjson). + +::: zone-end + ::: zone pivot="vscode" By default, the publishing process creates a framework-dependent deployment, which is a type of deployment where the published application runs on a machine that has the .NET runtime installed. To run the published app you can use the executable file or run the `dotnet HelloWorld.dll` command from a command prompt. @@ -156,6 +227,30 @@ In the following steps, you'll look at the files created by the publish process. ## Run the published app +::: zone pivot="visualstudio" + +1. In **Solution Explorer**, right-click the *publish* folder, and select **Copy Full Path**. + +1. Open a command prompt and navigate to the *publish* folder. To do that, enter `cd` and then paste the full path. For example: + + ```console + cd C:\Projects\HelloWorld\bin\Release\net10.0\publish\ + ``` + +1. Run the app by using the executable: + + 1. Enter `HelloWorld.exe` and press Enter. + + 1. Enter a name in response to the prompt, and press any key to exit. + +1. Run the app by using the `dotnet` command: + + 1. Enter `dotnet HelloWorld.dll` and press Enter. + + 1. Enter a name in response to the prompt, and press any key to exit. + +::: zone-end + ::: zone pivot="vscode" 1. In **Explorer**, right-click the *publish* folder (Ctrl-click on macOS), and select **Open in Integrated Terminal**. @@ -207,4 +302,4 @@ GitHub automatically deletes your Codespace after 30 days of inactivity. If you In this tutorial, you published a console app. In the next tutorial, you create a class library. > [!div class="nextstepaction"] -> [Create a .NET class library using Visual Studio Code](library-with-visual-studio-code.md) +> [Create a .NET class library](console-app-class-library.md) diff --git a/docs/core/tutorials/publishing-with-visual-studio.md b/docs/core/tutorials/publishing-with-visual-studio.md deleted file mode 100644 index 8ff410ef7511c..0000000000000 --- a/docs/core/tutorials/publishing-with-visual-studio.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: Publish a .NET console application using Visual Studio -description: Learn how to use Visual Studio to create the set of files that are needed to run a .NET application. -ms.date: 01/14/2026 -ai-usage: ai-assisted -ms.custom: - - "vs-dotnet" - - sfi-image-nochange ---- -# Tutorial: Publish a .NET console application using Visual Studio - -This tutorial shows how to publish a console app so that other users can run it. Publishing creates the set of files that are needed to run your application. To deploy the files, copy them to the target machine. - -## Prerequisites - -This tutorial works with the console app that you create in [Create a .NET console application using Visual Studio](with-visual-studio.md). - -## Publish the app - -1. Start Visual Studio. - -1. Open the *HelloWorld* project that you created in [Create a .NET console application using Visual Studio](with-visual-studio.md). - -1. Make sure that Visual Studio is using the Release build configuration. If necessary, change the build configuration setting on the toolbar from **Debug** to **Release**. - - :::image type="content" source="media/publishing-with-visual-studio/use-release-configuration.png" alt-text="Visual Studio toolbar with release build selected."::: - -1. Right-click on the **HelloWorld** project (not the HelloWorld solution) and select **Publish** from the menu. - - :::image type="content" source="media/publishing-with-visual-studio/publish-context-menu.png" alt-text="Visual Studio Publish context menu."::: - -1. On the **Target** tab of the **Publish** page, select **Folder**, and then select **Next**. - - :::image type="content" source="media/publishing-with-visual-studio/pick-publish-target.png" alt-text="Pick a publish target in Visual Studio."::: - -1. On the **Specific Target** tab of the **Publish** page, select **Folder**, and then select **Next**. - - :::image type="content" source="media/publishing-with-visual-studio/pick-specific-publish-target.png" alt-text="Pick the specific publish target in Visual Studio."::: - -1. On the **Location** tab of the **Publish** page, select **Finish**. - - :::image type="content" source="media/publishing-with-visual-studio/publish-page-loc-tab.png" alt-text="Visual Studio Publish page Location tab."::: - -1. On the **Publish profile creation progress** page, select **Close**. - -1. On the **Publish** tab of the **Publish** window, select **Publish**. - - :::image type="content" source="media/publishing-with-visual-studio/publish-page.png" alt-text="Visual Studio Publish window."::: - -## Inspect the files - -By default, the publishing process creates a framework-dependent deployment, which is a type of deployment where the published application runs on a machine that has the .NET runtime installed. Users can run the published app by double-clicking the executable or issuing the `dotnet HelloWorld.dll` command from a command prompt. - -In the following steps, you'll look at the files created by the publish process. - -1. In **Solution Explorer**, select **Show All Files**. - - :::image type="content" source="media/publishing-with-visual-studio/show-all-files.png" alt-text="Solution Explorer option to Show All Files."::: - -1. In the project folder, expand *bin/Release/{net}/publish*. (Where {net} is the target framework folder, such as _net10.0_.) - - :::image type="content" source="media/publishing-with-visual-studio/published-files-output.png" alt-text="Solution Explorer showing published files."::: - - As the image shows, the published output includes the following files: - - - *HelloWorld.deps.json* - - This is the application's runtime dependencies file. It defines the .NET components and the libraries (including the dynamic link library that contains your application) needed to run the app. For more information, see [Runtime configuration files](https://github.com/dotnet/cli/blob/85ca206d84633d658d7363894c4ea9d59e515c1a/Documentation/specs/runtime-configuration-file.md). - - - *HelloWorld.dll* - - This is the [framework-dependent deployment](../deploying/index.md#cross-platform-dll-deployment) version of the application. To execute this dynamic link library, enter `dotnet HelloWorld.dll` at a command prompt. This method of running the app works on any platform that has the .NET runtime installed. - - - *HelloWorld.exe* - - This is the [framework-dependent executable](../deploying/index.md#framework-dependent-deployment) version of the application. To run it, enter `HelloWorld.exe` at a command prompt. The file is operating-system-specific. - - - *HelloWorld.pdb* (optional for deployment) - - This is the debug symbols file. You aren't required to deploy this file along with your application, although you should save it in the event that you need to debug the published version of your application. - - - *HelloWorld.runtimeconfig.json* - - This is the application's runtime configuration file. It identifies the version of .NET that your application was built to run on. You can also add configuration options to it. For more information, see [.NET runtime configuration settings](../runtime-config/index.md#runtimeconfigjson). - -## Run the published app - -1. In **Solution Explorer**, right-click the *publish* folder, and select **Copy Full Path**. - -1. Open a command prompt and navigate to the *publish* folder. To do that, enter `cd` and then paste the full path. For example: - - ```console - cd C:\Projects\HelloWorld\bin\Release\net10.0\publish\ - ``` - -1. Run the app by using the executable: - - 1. Enter `HelloWorld.exe` and press Enter. - - 1. Enter a name in response to the prompt, and press any key to exit. - -1. Run the app by using the `dotnet` command: - - 1. Enter `dotnet HelloWorld.dll` and press Enter. - - 1. Enter a name in response to the prompt, and press any key to exit. - -## Additional resources - -- [.NET application publishing overview](../deploying/index.md) -- [`dotnet publish`](../tools/dotnet-publish.md) -- [Tutorial: Publish a .NET console application using Visual Studio Code](publishing-with-visual-studio-code.md) -- [Use the .NET SDK in continuous integration (CI) environments](../../devops/dotnet-cli-and-continuous-integration.md) - -## Next steps - -In this tutorial, you published a console app. In the next tutorial, you create a class library. - -> [!div class="nextstepaction"] -> [Create a .NET class library using Visual Studio](library-with-visual-studio.md) diff --git a/docs/core/tutorials/testing-console-app-class-library.md b/docs/core/tutorials/testing-console-app-class-library.md new file mode 100644 index 0000000000000..3e82d3b067c9c --- /dev/null +++ b/docs/core/tutorials/testing-console-app-class-library.md @@ -0,0 +1,426 @@ +--- +title: Test a .NET class library +description: Learn how to create and run a unit test project for a .NET class library using Visual Studio, Visual Studio Code, or GitHub Codespaces. +ms.date: 02/12/2026 +ai-usage: ai-assisted +zone_pivot_groups: code-editor-set-one +dev_langs: + - "csharp" + - "vb" +--- +# Tutorial: Test a .NET class library + +This tutorial shows how to automate unit testing by adding a test project to a solution. + +## Prerequisites + +This tutorial works with the solution that you create in [Create a .NET class library](console-app-class-library.md). + +## Create a unit test project + +Unit tests provide automated software testing during your development and publishing. [MSTest](https://github.com/Microsoft/testfx-docs) is one of three test frameworks you can choose from. The others are [xUnit](https://xunit.net/) and [nUnit](https://nunit.org/). + +::: zone pivot="visualstudio" + +1. Start Visual Studio. + +1. Open the `ClassLibraryProjects` solution you created in [Create a .NET class library](console-app-class-library.md). + +1. Add a new unit test project named "StringLibraryTest" to the solution. + + 1. Right-click on the solution in **Solution Explorer** and select **Add** > **New project**. + + 1. On the **Add a new project** page, enter **mstest** in the search box. Choose **C#** or **Visual Basic** from the Language list, and then choose **All platforms** from the Platform list. + + 1. Choose the **MSTest Test Project** template, and then choose **Next**. + + 1. On the **Configure your new project** page, enter **StringLibraryTest** in the **Project name** box. Then choose **Next**. + + 1. On the **Additional information** page, select **.NET 10** in the **Framework** box, select **Microsoft.Testing.Platform** for the **Test runner**, and then choose **Create**. + + :::image type="content" source="./media/testing-library-with-visual-studio/additional-information-mstest.png" alt-text="Enter additional information for the MSTest Test Project"::: + +1. Visual Studio creates the project and opens the class file in the code window with the following code. If the language you want to use isn't shown, change the language selector at the top of the page. + + ```csharp + namespace StringLibraryTest + { + + [TestClass] + public sealed class Test1 + { + [TestMethod] + public void TestMethod1() + { + } + } + } + ``` + + ```vb + Imports Microsoft.VisualStudio.TestTools.UnitTesting + + Namespace StringLibraryTest + + Public Class Test1 + + Sub TestSub() + + End Sub + End Class + End Namespace + ``` + + The source code created by the unit test template does the following: + + - Includes in the StringLibraryTest project file in C#, and imports in Visual Basic. + - Applies the attribute to the `Test1` class. + - Applies the attribute to define `TestMethod1` in C# or `TestSub` in Visual Basic. + + Each method tagged with [[TestMethod]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute) in a test class tagged with [[TestClass]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute) executes automatically when the unit test runs. + +::: zone-end + +::: zone pivot="vscode" + +1. Start Visual Studio Code. + +1. Open the `ClassLibraryProjects` solution you created in [Create a .NET class library](console-app-class-library.md). + +1. From **Solution Explorer**, select **New Project**, or from the Command Palette select **.NET: New Project**. + +1. Select **MSTest Test Project**, name it "StringLibraryTest", select the default directory, and select **Create Project**. + + The project template creates a *UnitTest1.cs* file with the following code: + + ```csharp + namespace StringLibraryTest; + + [TestClass] + public class UnitTest1 + { + [TestMethod] + public void TestMethod1() + { + } + } + ``` + + The source code created by the unit test template does the following: + + - It applies the attribute to the `UnitTest1` class. + - It applies the attribute to define `TestMethod1`. + - It imports the namespace, which contains the types used for unit testing. The namespace is imported via a `global using` directive in *GlobalUsings.cs*. + + Each method tagged with [[TestMethod]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute) in a test class tagged with [[TestClass]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute) is run automatically when the unit test is invoked. + +::: zone-end + +::: zone pivot="codespaces" + +1. Open the terminal and navigate to the tutorials folder containing the StringLibrary and ShowCase projects. + +1. Create a new MSTest test project: + + ```dotnetcli + dotnet new mstest -n StringLibraryTest + ``` + + The project template creates a *UnitTest1.cs* file with the following code: + + ```csharp + namespace StringLibraryTest; + + [TestClass] + public class UnitTest1 + { + [TestMethod] + public void TestMethod1() + { + } + } + ``` + + The source code created by the unit test template does the following: + + - It applies the attribute to the `UnitTest1` class. + - It applies the attribute to define `TestMethod1`. + - It imports the namespace, which contains the types used for unit testing. + + Each method tagged with [[TestMethod]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute) in a test class tagged with [[TestClass]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute) is run automatically when the unit test is invoked. + +::: zone-end + +## Add a project reference + +For the test project to work with the `StringLibrary` class, add a reference in the `StringLibraryTest` project to the `StringLibrary` project. + +::: zone pivot="visualstudio" + +1. In **Solution Explorer**, right-click the **Dependencies** node of the **StringLibraryTest** project and select **Add Project Reference** from the context menu. + +1. In the **Reference Manager** dialog, select the box next to **StringLibrary**. + + :::image type="content" source="./media/testing-library-with-visual-studio/add-project-reference-string-library-test.png" alt-text="Add StringLibrary as a project reference for StringLibraryTest."::: + +1. Select **OK**. + +::: zone-end + +::: zone pivot="vscode" + +1. From **Solution Explorer** right click on the 'StringLibraryTest' Project and select **Add Project Reference**. + +1. Select "StringLibrary". + +::: zone-end + +::: zone pivot="codespaces" + +1. Navigate to the StringLibraryTest folder and add the project reference: + + ```bash + cd StringLibraryTest + dotnet add reference ../StringLibrary/StringLibrary.csproj + ``` + +::: zone-end + +## Add and run unit test methods + +When a unit test runs, each method marked with the attribute in a class marked with the attribute executes automatically. A test method ends when the first failure is found or when all tests contained in the method succeed. + +The most common tests call members of the class. Many assert methods include at least two parameters, one of which is the expected test result and the other of which is the actual test result. Some of the `Assert` class's most frequently called methods are shown in the following table: + +| Assert methods | Function | +| ------------------ | -------- | +| `Assert.AreEqual` | Verifies that two values or objects are equal. The assert fails if the values or objects aren't equal. | +| `Assert.AreSame` | Verifies that two object variables refer to the same object. The assert fails if the variables refer to different objects. | +| `Assert.IsFalse` | Verifies that a condition is `false`. The assert fails if the condition is `true`. | +| `Assert.IsNotNull` | Verifies that an object isn't `null`. The assert fails if the object is `null`. | + +You can also use the method in a test method to indicate the type of exception it's expected to throw. The test fails if the specified exception isn't thrown. + +In testing the `StringLibrary.StartsWithUpper` method, you want to provide a number of strings that begin with an uppercase character. You expect the method to return `true` in these cases, so you can call the method. Similarly, you want to provide a number of strings that begin with something other than an uppercase character. You expect the method to return `false` in these cases, so you can call the method. + +Since your library method handles strings, you also want to make sure that it successfully handles an [empty string (`String.Empty`)](xref:System.String.Empty) and a `null` string. An empty string is one that has no characters and whose is 0. A `null` string is one that hasn't been initialized. You can call `StartsWithUpper` directly as a static method and pass a single argument. Or you can call `StartsWithUpper` as an extension method on a `string` variable assigned to `null`. + +You'll define three methods, each of which calls an method for each element in a string array. You'll call a method overload that lets you specify an error message to be displayed in case of test failure. The message identifies the string that caused the failure. + +To create the test methods: + +::: zone pivot="visualstudio" + +1. In the *Test1.cs* or *Test1.vb* code window, replace the code with the following code: + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: + :::code language="vb" source="./snippets/library-with-visual-studio/vb/StringLibraryTest/UnitTest1.vb"::: + + The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433). + +1. On the menu bar, select **File** > **Save Test1.cs As** or **File** > **Save Test1.vb As**. In the **Save File As** dialog, select the arrow beside the **Save** button, and select **Save with Encoding**. + +1. In the **Confirm Save As** dialog, select the **Yes** button to save the file. + +1. In the **Advanced Save Options** dialog, select **Unicode (UTF-8 with signature) - Codepage 65001** from the **Encoding** drop-down list and select **OK**. + + If you fail to save your source code as a UTF8-encoded file, Visual Studio might save it as an ASCII file. When that happens, the runtime doesn't accurately decode the UTF8 characters outside of the ASCII range, and the test results aren't correct. + +1. On the menu bar, select **Test** > **Run All Tests**. If the **Test Explorer** window doesn't open, open it by choosing **Test** > **Test Explorer**. The three tests are listed in the **Passed Tests** section, and the **Summary** section reports the result of the test run. + + :::image type="content" source="./media/testing-library-with-visual-studio/test-explorer-window.png" alt-text="Test Explorer window with passing tests"::: + +::: zone-end + +::: zone pivot="vscode" + +1. Open *StringLibraryTest/UnitTest1.cs* and replace all of the code with the following code. + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: + + The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433). + +1. Save your changes. + +## Build and Run your Tests + +1. In **Solution Explorer**, right-click the solution and select **Build** or from the Command Palette, select **.NET: Build**. + +1. Select the **Testing** window, select **Run Tests** or from the Command Palette, select **Test: Run all Tests**. + + :::image type="content" source="media/testing-library-with-visual-studio-code/testingScreenshot.png" alt-text="Visual Studio Code Test Explorer"::: + +::: zone-end + +::: zone pivot="codespaces" + +1. Open *StringLibraryTest/UnitTest1.cs* and replace all of the code with the following code: + + :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: + + The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433). + +1. Save your changes and run the tests: + + ```dotnetcli + dotnet test + ``` + + The tests should pass. + +::: zone-end + +## Handle test failures + +If you're doing test-driven development (TDD), you write tests first and they fail the first time you run them. Then you add code to the app that makes the test succeed. For this tutorial, you created the test after writing the app code that it validates, so you haven't seen the test fail. To validate that a test fails when you expect it to fail, add an invalid value to the test input. + +1. Modify the `words` array in the `TestDoesNotStartWithUpper` method to include the string "Error". + + ```csharp + string[] words = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство", + "1234", ".", ";", " " }; + ``` + + ```vb + Dim words() As String = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство", + "1234", ".", ";", " " } + + ``` + +::: zone pivot="visualstudio" + +1. Run the test by selecting **Test** > **Run All Tests** from the menu bar. The **Test Explorer** window indicates that two tests succeeded and one failed. + + :::image type="content" source="./media/testing-library-with-visual-studio/failed-test-window.png" alt-text="Test Explorer window with failing tests"::: + +1. Select the failed test, `TestDoesNotStartWith`. + + The **Test Explorer** window displays the message produced by the assert: "Assert.IsFalse failed. Expected for 'Error': false; actual: True." Because of the failure, the strings in the array after "Error" weren't tested. + + :::image type="content" source="./media/testing-library-with-visual-studio/failed-test-detail.png" alt-text="Test Explorer window showing the IsFalse assertion failure"::: + +::: zone-end + +::: zone pivot="vscode" + +1. Run the tests by clicking on the green error next to the test in the editor. + + The output shows that the test fails, and it provides an error message for the failed test: "Assert.IsFalse failed. Expected for 'Error': false; actual: True". Because of the failure, no strings in the array after "Error" were tested. + + :::image type="content" source="media/testing-library-with-visual-studio-code/failedTest.png" alt-text="Visual Studio Code Failed Test"::: + +::: zone-end + +::: zone pivot="codespaces" + +1. Run the tests: + + ```dotnetcli + dotnet test + ``` + + The output shows that the test fails, and it provides an error message for the failed test: "Assert.IsFalse failed. Expected for 'Error': false; actual: True". Because of the failure, no strings in the array after "Error" were tested. + +::: zone-end + +1. Remove the string "Error" that you added. + +1. Rerun the test and the tests pass. + +## Test the Release version of the library + +Now that the tests have all passed when running the Debug build of the library, run the tests an additional time against the Release build of the library. A number of factors, including compiler optimizations, can sometimes produce different behavior between Debug and Release builds. + +::: zone pivot="visualstudio" + +To test the Release build: + +1. In the Visual Studio toolbar, change the build configuration from **Debug** to **Release**. + +1. In **Solution Explorer**, right-click the **StringLibrary** project and select **Build** from the context menu to recompile the library. + +1. Run the unit tests by choosing **Test** > **Run All Tests** from the menu bar. The tests pass. + +::: zone-end + +::: zone pivot="vscode" + +Run the tests with the Release build configuration: + +```dotnetcli +dotnet test StringLibraryTest/StringLibraryTest.csproj --configuration Release +``` + +The tests pass. + +::: zone-end + +::: zone pivot="codespaces" + +Run the tests with the Release build configuration: + +```dotnetcli +dotnet test --configuration Release +``` + +The tests pass. + +::: zone-end + +## Debug tests + +::: zone pivot="visualstudio" + +If you're using Visual Studio as your IDE, you can use the same process shown in [Tutorial: Debug a .NET console application](debugging-console-app.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, right-click the **StringLibraryTests** project, and select **Debug Tests** from the context menu. + +Visual Studio starts the test project with the debugger attached. Execution stops at any breakpoint you've added to the test project or the underlying library code. + +::: zone-end + +::: zone pivot="vscode,codespaces" + +If you're using Visual Studio Code as your IDE, you can use the same process shown in [Debug a .NET console application](debugging-console-app.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, open *StringLibraryTest/UnitTest1.cs*, and select **Debug Tests in current file** between lines 7 and 8. If you're unable to find it, press Ctrl+Shift+P to open the command palette and enter **Reload Window**. + +Visual Studio Code starts the test project with the debugger attached. Execution will stop at any breakpoint you've added to the test project or the underlying library code. + +::: zone-end + +## Additional resources + +::: zone pivot="visualstudio" + +- [Unit test basics - Visual Studio](/visualstudio/test/unit-test-basics) +- [Unit testing in .NET](../testing/index.md) + +::: zone-end + +::: zone pivot="vscode,codespaces" + +- [Unit testing in .NET](../testing/index.md) + +::: zone-end + +::: zone pivot="codespaces" + +## Cleanup resources + +GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "delete". + +::: zone-end + +## Next steps + +In this tutorial, you unit tested a class library. You can make the library available to others by publishing it to [NuGet](https://nuget.org) as a package. To learn how, follow a NuGet tutorial: + +> [!div class="nextstepaction"] +> [Create and publish a package using the dotnet CLI](/nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli) + +If you publish a library as a NuGet package, others can install and use it. To learn how, follow a NuGet tutorial: + +> [!div class="nextstepaction"] +> [Install and use a package using the dotnet CLI](/nuget/quickstart/install-and-use-a-package-using-the-dotnet-cli) + +A library doesn't have to be distributed as a package. It can be bundled with a console app that uses it. To learn how to publish a console app, see the earlier tutorial in this series: + +> [!div class="nextstepaction"] +> [Publish a .NET console application](publishing-console-app.md) diff --git a/docs/core/tutorials/testing-library-with-visual-studio-code.md b/docs/core/tutorials/testing-library-with-visual-studio-code.md deleted file mode 100644 index 11dd5467810ed..0000000000000 --- a/docs/core/tutorials/testing-library-with-visual-studio-code.md +++ /dev/null @@ -1,160 +0,0 @@ ---- -title: Test a .NET class library using Visual Studio Code -description: Learn how to use Visual Studio Code and run a unit test project for a .NET class library. -ms.date: 10/23/2025 -ai-usage: ai-assisted ---- -# Tutorial: Test a .NET class library using Visual Studio Code - -This tutorial shows how to automate unit testing by adding a test project to a solution. - -## Prerequisites - -This tutorial works with the solution that you create in [Create a .NET class library using Visual Studio Code](library-with-visual-studio-code.md). - -## Create a unit test project - -Unit tests provide automated software testing during your development and publishing. The testing framework that you use in this tutorial is MSTest. [MSTest](https://github.com/Microsoft/testfx-docs) is one of three test frameworks you can choose from. The others are [xUnit](https://xunit.net/) and [nUnit](https://nunit.org/). - -1. Start Visual Studio Code. - -1. Open the `ClassLibraryProjects` solution you created in [Create a .NET class library using Visual Studio Code](library-with-visual-studio-code.md). - -1. From **Solution Explorer**, select **New Project**, or from the Command Palette select **.NET: New Project**. - -1. Select **MSTest Test Project**, name it "StringLibraryTest", select the default directory, and select **Create Project**. - - The project template creates a *UnitTest1.cs* file with the following code: - - ```csharp - namespace StringLibraryTest; - - [TestClass] - public class UnitTest1 - { - [TestMethod] - public void TestMethod1() - { - } - } - ``` - - The source code created by the unit test template does the following: - - - It applies the attribute to the `UnitTest1` class. - - It applies the attribute to define `TestMethod1`. - - It imports the namespace, which contains the types used for unit testing. The namespace is imported via a `global using` directive in *GlobalUsings.cs*. - - Each method tagged with [[TestMethod]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute) in a test class tagged with [[TestClass]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute) is run automatically when the unit test is invoked. - -## Add a project reference - -For the test project to work with the `StringLibrary` class, add a reference in the `StringLibraryTest` project to the `StringLibrary` project. - -1. From **Solution Explorer** right click on the 'StringLibraryTest' Project and select **Add Project Reference**. - -1. Select "StringLibrary". - -## Add and run unit test methods - -When Visual Studio invokes a unit test, it runs each method that is marked with the attribute in a class that is marked with the attribute. A test method ends when the first failure is found or when all tests contained in the method have succeeded. - -The most common tests call members of the class. Many assert methods include at least two parameters, one of which is the expected test result and the other of which is the actual test result. Some of the `Assert` class's most frequently called methods are shown in the following table: - -| Assert methods | Function | -| ------------------ | -------- | -| `Assert.AreEqual` | Verifies that two values or objects are equal. The assert fails if the values or objects aren't equal. | -| `Assert.AreSame` | Verifies that two object variables refer to the same object. The assert fails if the variables refer to different objects. | -| `Assert.IsFalse` | Verifies that a condition is `false`. The assert fails if the condition is `true`. | -| `Assert.IsNotNull` | Verifies that an object isn't `null`. The assert fails if the object is `null`. | - -You can also use the method in a test method to indicate the type of exception it's expected to throw. The test fails if the specified exception isn't thrown. - -In testing the `StringLibrary.StartsWithUpper` method, you want to provide a number of strings that begin with an uppercase character. You expect the method to return `true` in these cases, so you can call the method. Similarly, you want to provide a number of strings that begin with something other than an uppercase character. You expect the method to return `false` in these cases, so you can call the method. - -Since your library method handles strings, you also want to make sure that it successfully handles an [empty string (`String.Empty`)](xref:System.String.Empty) and a `null` string. An empty string is one that has no characters and whose is 0. A `null` string is one that hasn't been initialized. You can call `StartsWithUpper` directly as a static method and pass a single argument. Or you can call `StartsWithUpper` as an extension method on a `string` variable assigned to `null`. - -You'll define three methods, each of which calls an method for each element in a string array. You'll call a method overload that lets you specify an error message to be displayed in case of test failure. The message identifies the string that caused the failure. - -To create the test methods: - -1. Open *StringLibraryTest/UnitTest1.cs* and replace all of the code with the following code. - - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: - - The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433). - -1. Save your changes. - -## Build and Run your Tests - -1. In **Solution Explorer**, right-click the solution and select **Build** or from the Command Palette, select **.NET: Build**. - -1. Select the **Testing** window, select **Run Tests** or from the Command Palette, select **Test: Run all Tests**. - - :::image type="content" source="media/testing-library-with-visual-studio-code/testingScreenshot.png" alt-text="Visual Studio Code Test Explorer"::: - -## Handle test failures - -If you're doing test-driven development (TDD), you write tests first and they fail the first time you run them. Then you add code to the app that makes the test succeed. For this tutorial, you created the test after writing the app code that it validates, so you haven't seen the test fail. To validate that a test fails when you expect it to fail, add an invalid value to the test input. - -1. Modify the `words` array in the `TestDoesNotStartWithUpper` method to include the string "Error". - - ```csharp - string[] words = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство", - "1234", ".", ";", " " }; - ``` - -1. Run the tests by clicking on the green error next to the test in the editor. - - The output shows that the test fails, and it provides an error message for the failed test: "Assert.IsFalse failed. Expected for 'Error': false; actual: True". Because of the failure, no strings in the array after "Error" were tested. - - :::image type="content" source="media/testing-library-with-visual-studio-code/failedTest.png" alt-text="Visual Studio Code Failed Test"::: - -1. Remove the string "Error" that you added in step. - -1. Rerun the test and the tests pass. - -## Test the Release version of the library - -Now that the tests have all passed when running the Debug build of the library, run the tests an additional time against the Release build of the library. A number of factors, including compiler optimizations, can sometimes produce different behavior between Debug and Release builds. - -1. Run the tests with the Release build configuration: - - ```dotnetcli - dotnet test StringLibraryTest/StringLibraryTest.csproj --configuration Release - ``` - - The tests pass. - -## Debug tests - -If you're using Visual Studio Code as your IDE, you can use the same process shown in [Debug a .NET console application using Visual Studio Code](debugging-with-visual-studio-code.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, open *StringLibraryTest/UnitTest1.cs*, and select **Debug Tests in current file** between lines 7 and 8. If you're unable to find it, press Ctrl+Shift+P to open the command palette and enter **Reload Window**. - -Visual Studio Code starts the test project with the debugger attached. Execution will stop at any breakpoint you've added to the test project or the underlying library code. - -## Additional resources - -- [Unit testing in .NET](../testing/index.md) - -## Next steps - -In this tutorial, you unit tested a class library. You can make the library available to others by publishing it to [NuGet](https://nuget.org) as a package. To learn how, follow a NuGet tutorial: - -> [!div class="nextstepaction"] -> [Create and publish a package using the dotnet CLI](/nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli) - -If you publish a library as a NuGet package, others can install and use it. To learn how, follow a NuGet tutorial: - -> [!div class="nextstepaction"] -> [Install and use a package using the dotnet CLI](/nuget/quickstart/install-and-use-a-package-using-the-dotnet-cli) - -A library doesn't have to be distributed as a package. It can be bundled with a console app that uses it. To learn how to publish a console app, see the earlier tutorial in this series: - -> [!div class="nextstepaction"] -> [Publish a .NET console application using Visual Studio Code](publishing-with-visual-studio-code.md) - -The Visual Studio Code extension C# Dev Kit provides more tools for developing C# apps and libraries: - -> [!div class="nextstepaction"] -> [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp-dev-kit) diff --git a/docs/core/tutorials/testing-library-with-visual-studio.md b/docs/core/tutorials/testing-library-with-visual-studio.md deleted file mode 100644 index 716a2ba3f7258..0000000000000 --- a/docs/core/tutorials/testing-library-with-visual-studio.md +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: Test a .NET class library using Visual Studio -description: Learn how to use Visual Studio to create and run a unit test project for a .NET class library. -ms.date: 01/14/2026 -ai-usage: ai-assisted -dev_langs: - - "csharp" - - "vb" -ms.custom: "vs-dotnet" ---- -# Tutorial: Test a .NET class library with .NET using Visual Studio - -This tutorial shows how to automate unit testing by adding a test project to a solution. - -## Prerequisites - -This tutorial works with the solution that you create in [Create a .NET class library using Visual Studio](library-with-visual-studio.md). - -## Create a unit test project - -Unit tests provide automated software testing during your development and publishing. [MSTest](https://github.com/Microsoft/testfx-docs) is one of three test frameworks you can choose from. The others are [xUnit](https://xunit.net/) and [nUnit](https://nunit.org/). - -1. Start Visual Studio. - -1. Open the `ClassLibraryProjects` solution you created in [Create a .NET class library using Visual Studio](library-with-visual-studio.md). - -1. Add a new unit test project named "StringLibraryTest" to the solution. - - 1. Right-click on the solution in **Solution Explorer** and select **Add** > **New project**. - - 1. On the **Add a new project** page, enter **mstest** in the search box. Choose **C#** or **Visual Basic** from the Language list, and then choose **All platforms** from the Platform list. - - 1. Choose the **MSTest Test Project** template, and then choose **Next**. - - 1. On the **Configure your new project** page, enter **StringLibraryTest** in the **Project name** box. Then choose **Next**. - - 1. On the **Additional information** page, select **.NET 10** in the **Framework** box, select **Microsoft.Testing.Platform** for the **Test runner**, and then choose **Create**. - - :::image type="content" source="./media/testing-library-with-visual-studio/additional-information-mstest.png" alt-text="Enter additional information for the MSTest Test Project"::: - -1. Visual Studio creates the project and opens the class file in the code window with the following code. If the language you want to use isn't shown, change the language selector at the top of the page. - - ```csharp - namespace StringLibraryTest - { - - [TestClass] - public sealed class Test1 - { - [TestMethod] - public void TestMethod1() - { - } - } - } - ``` - - ```vb - Imports Microsoft.VisualStudio.TestTools.UnitTesting - - Namespace StringLibraryTest - - Public Class Test1 - - Sub TestSub() - - End Sub - End Class - End Namespace - ``` - - The source code created by the unit test template does the following: - - - Includes in the StringLibraryTest project file in C#, and imports in Visual Basic. - - Applies the attribute to the `Test1` class. - - Applies the attribute to define `TestMethod1` in C# or `TestSub` in Visual Basic. - - Each method tagged with [[TestMethod]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute) in a test class tagged with [[TestClass]](xref:Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute) executes automatically when the unit test runs. - -## Add a project reference - -For the test project to work with the `StringLibrary` class, add a reference in the **StringLibraryTest** project to the `StringLibrary` project. Adding a reference to the `StringLibrary` assembly lets the compiler find **StringLibrary** methods while compiling the **StringLibraryTest** project. - -1. In **Solution Explorer**, right-click the **Dependencies** node of the **StringLibraryTest** project and select **Add Project Reference** from the context menu. - -1. In the **Reference Manager** dialog, select the box next to **StringLibrary**. - - :::image type="content" source="./media/testing-library-with-visual-studio/add-project-reference-string-library-test.png" alt-text="Add StringLibrary as a project reference for StringLibraryTest."::: - -1. Select **OK**. - -## Add and run unit test methods - -When Visual Studio runs a unit test, it executes each method marked with the attribute in a class marked with the attribute. A test method ends when the first failure is found or when all tests contained in the method succeed. - -The most common tests call members of the class. Many assert methods include at least two parameters, one of which is the expected test result and the other of which is the actual test result. Some of the `Assert` class's most frequently called methods are shown in the following table: - -| Assert methods | Function | -| ------------------ | -------- | -| `Assert.AreEqual` | Verifies that two values or objects are equal. The assert fails if the values or objects aren't equal. | -| `Assert.AreSame` | Verifies that two object variables refer to the same object. The assert fails if the variables refer to different objects. | -| `Assert.IsFalse` | Verifies that a condition is `false`. The assert fails if the condition is `true`. | -| `Assert.IsNotNull` | Verifies that an object isn't `null`. The assert fails if the object is `null`. | - -You can also use the (or `Assert.Throws` and `Assert.ThrowsExactly` if using MSTest 3.8 and later) method in a test method to indicate the type of exception it's expected to throw. The test fails if the specified exception isn't thrown. - -In testing the `StringLibrary.StartsWithUpper` method, you want to provide many strings that begin with an uppercase character. You expect the method to return `true` in these cases, so you can call the method. Similarly, you want to provide many strings that begin with something other than an uppercase character. You expect the method to return `false` in these cases, so you can call the method. - -Since your library method handles strings, you also want to make sure that it successfully handles an [empty string (`String.Empty`)](xref:System.String.Empty), a valid string that has no characters and whose is 0, and a `null` string that hasn't been initialized. Call `StartsWithUpper` directly as a static method and pass a single argument. Or call `StartsWithUpper` as an extension method on a `string` variable assigned to `null`. - -Define three methods, each of which calls an method for each element in a string array. Call a method overload that lets you specify an error message to be displayed in case of test failure. The message identifies the string that caused the failure. - -To create the test methods: - -1. In the *Test1.cs* or *Test1.vb* code window, replace the code with the following code: - - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: - :::code language="vb" source="./snippets/library-with-visual-studio/vb/StringLibraryTest/UnitTest1.vb"::: - - The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433). - -1. On the menu bar, select **File** > **Save Test1.cs As** or **File** > **Save Test1.vb As**. In the **Save File As** dialog, select the arrow beside the **Save** button, and select **Save with Encoding**. - -1. In the **Confirm Save As** dialog, select the **Yes** button to save the file. - -1. In the **Advanced Save Options** dialog, select **Unicode (UTF-8 with signature) - Codepage 65001** from the **Encoding** drop-down list and select **OK**. - - If you fail to save your source code as a UTF8-encoded file, Visual Studio might save it as an ASCII file. When that happens, the runtime doesn't accurately decode the UTF8 characters outside of the ASCII range, and the test results aren't correct. - -1. On the menu bar, select **Test** > **Run All Tests**. If the **Test Explorer** window doesn't open, open it by choosing **Test** > **Test Explorer**. The three tests are listed in the **Passed Tests** section, and the **Summary** section reports the result of the test run. - - :::image type="content" source="./media/testing-library-with-visual-studio/test-explorer-window.png" alt-text="Test Explorer window with passing tests"::: - -## Handle test failures - -If you're doing test-driven development (TDD), you write tests first and they fail the first time you run them. Then you add code to the app that makes the test succeed. For this tutorial, you created the test after writing the app code that it validates, so you haven't seen the test fail. To validate that a test fails when you expect it to fail, add an invalid value to the test input. - -1. Modify the `words` array in the `TestDoesNotStartWithUpper` method to include the string "Error". You don't need to save the file because Visual Studio automatically saves open files when a solution is built to run tests. - - ```csharp - string[] words = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство", - "1234", ".", ";", " " }; - ``` - - ```vb - Dim words() As String = { "alphabet", "Error", "zebra", "abc", "αυτοκινητοβιομηχανία", "государство", - "1234", ".", ";", " " } - - ``` - -1. Run the test by selecting **Test** > **Run All Tests** from the menu bar. The **Test Explorer** window indicates that two tests succeeded and one failed. - - :::image type="content" source="./media/testing-library-with-visual-studio/failed-test-window.png" alt-text="Test Explorer window with failing tests"::: - -1. Select the failed test, `TestDoesNotStartWith`. - - The **Test Explorer** window displays the message produced by the assert: "Assert.IsFalse failed. Expected for 'Error': false; actual: True." Because of the failure, the strings in the array after "Error" weren't tested. - - :::image type="content" source="./media/testing-library-with-visual-studio/failed-test-detail.png" alt-text="Test Explorer window showing the IsFalse assertion failure"::: - -1. Remove the string "Error" that you added in step 1. Rerun the test and the tests pass. - -## Test the Release version of the library - -Now that the tests have all passed when running the Debug build of the library, run the tests another time against the Release build of the library. Some factors, including compiler optimizations, can sometimes produce different behavior between Debug and Release builds. - -To test the Release build: - -1. In the Visual Studio toolbar, change the build configuration from **Debug** to **Release**. - -1. In **Solution Explorer**, right-click the **StringLibrary** project and select **Build** from the context menu to recompile the library. - -1. Run the unit tests by choosing **Test** > **Run All Tests** from the menu bar. The tests pass. - -## Debug tests - -If you're using Visual Studio as your IDE, you can use the same process shown in [Tutorial: Debug a .NET console application using Visual Studio](debugging-with-visual-studio.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, right-click the **StringLibraryTests** project, and select **Debug Tests** from the context menu. - -Visual Studio starts the test project with the debugger attached. Execution stops at any breakpoint you've added to the test project or the underlying library code. - -## Additional resources - -- [Unit test basics - Visual Studio](/visualstudio/test/unit-test-basics) -- [Unit testing in .NET](../testing/index.md) - -## Next steps - -In this tutorial, you unit tested a class library. Make the library available to others by publishing it to [NuGet](https://nuget.org) as a package. To learn how, follow a NuGet tutorial: - -> [!div class="nextstepaction"] -> [Create and publish a NuGet package using Visual Studio](/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli) - -If you publish a library as a NuGet package, others can install and use it. To learn how, follow a NuGet tutorial: - -> [!div class="nextstepaction"] -> [Install and use a package in Visual Studio](/nuget/quickstart/install-and-use-a-package-in-visual-studio) - -A library doesn't have to be distributed as a package. It can be bundled with a console app that uses it. To learn how to publish a console app, see the earlier tutorial in this series: - -> [!div class="nextstepaction"] -> [Publish a .NET console application using Visual Studio](publishing-with-visual-studio.md) diff --git a/docs/core/tutorials/with-visual-studio.md b/docs/core/tutorials/with-visual-studio.md deleted file mode 100644 index 0490eb7d67f97..0000000000000 --- a/docs/core/tutorials/with-visual-studio.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: Create a .NET console application using Visual Studio -description: Learn how to create a .NET console application with C# or Visual Basic using Visual Studio. -ms.date: 01/13/2026 -dev_langs: - - "csharp" - - "vb" -ms.custom: vs-dotnet ---- -# Tutorial: Create a .NET console application using Visual Studio - -This tutorial shows how to create and run a .NET console application in Visual Studio 2026. - -## Prerequisites - -- [Visual Studio 2026 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=inline+link) with the **.NET desktop development** workload installed. The .NET SDK is automatically installed when you select this workload. - - For more information, see [Install the .NET SDK with Visual Studio](../install/windows.md#install-with-visual-studio). - -## Create the app - -Create a .NET console app project named "HelloWorld". - -1. Start Visual Studio. - -1. On the start page, choose **Create a new project**. - - :::image type="content" source="./media/with-visual-studio/start-window.png" alt-text="Create a new project button selected on the Visual Studio start page"::: - -1. On the **Create a new project** page, enter **console** in the search box. Next, choose **C#** or **Visual Basic** from the language list, and then choose **All platforms** from the platform list. Choose the **Console App** template, and then choose **Next**. - - :::image type="content" source="./media/with-visual-studio/create-new-project.png" alt-text="Create a new project window with filters selected"::: - - > [!TIP] - > If you don't see the .NET templates, you're probably missing the required workload. Under the **Not finding what you're looking for?** message, choose the **Install more tools and features** link. The Visual Studio Installer opens. Make sure you have the **.NET desktop development** workload installed. - -1. In the **Configure your new project** dialog, enter **HelloWorld** in the **Project name** box. Then choose **Next**. - - :::image type="content" source="./media/with-visual-studio/configure-new-project.png" alt-text="Configure your new project window with Project name, location, and solution name fields"::: - -1. In the **Additional information** dialog: - - Select **.NET 10.0 (Long Term Support)**. - - Select **Create**. - - :::image type="content" source="./media/with-visual-studio/additional-information.png" alt-text="Enter additional information for the console app."::: - - The template creates a simple application that displays "Hello, World!" in the console window. The code is in the *Program.cs* or *Program.vb* file: - - ```csharp - // See https://aka.ms/new-console-template for more information - Console.WriteLine("Hello, World!"); - ``` - - ```vb - Imports System - - Module Program - Sub Main(args As String()) - Console.WriteLine("Hello World!") - End Sub - End Module - ``` - - If the language you want to use is not shown, change the language selector at the top of the page. - - The C# template uses top-level statements to call the method to display a message in the console window. The Visual Basic template defines a `Module Program` with a `Sub Main` method that calls the same method. - -## Run the app - -1. Press Ctrl+F5 to run the program without debugging. - - A console window opens with the text "Hello, World!" printed on the screen. (Or "Hello World!" without a comma in the Visual Basic project template.) - -1. Press any key to close the console window. - -## Enhance the app - -Enhance the application to prompt the user for their name and display it along with the date and time. - -1. In *Program.cs* or *Program.vb*, replace the contents with the following code: - - :::code language="csharp" source="./snippets/with-visual-studio/csharp/Program.cs" id="MainMethod"::: - :::code language="vb" source="./snippets/with-visual-studio/vb/Program.vb" id="MainMethod"::: - - This code displays a prompt in the console window and waits until the user enters a string followed by the Enter key. It stores this string in a variable named `name`. It also retrieves the value of the property, which contains the current local time, and assigns it to a variable named `currentDate`. And it displays these values in the console window. Finally, it displays a prompt in the console window and calls the method to wait for user input. - - is a platform-independent and language-independent way to represent a line break. Alternatives are `\n` in C# and `vbCrLf` in Visual Basic. - - The dollar sign (`$`) in front of a string lets you put expressions such as variable names in curly braces in the string. The expression value is inserted into the string in place of the expression. This syntax is referred to as [interpolated strings](../../csharp/language-reference/tokens/interpolated.md). - -1. Press Ctrl+F5 to run the program without debugging. - -1. Respond to the prompt by entering a name and pressing the Enter key. - - :::image type="content" source="./media/with-visual-studio/hello-world-update.png" alt-text="Console window with modified program output"::: - -1. Press any key to close the console window. - -## Additional resources - -- [Standard-term support (STS) releases and long-term support (LTS) releases](../releases-and-support.md#release-tracks). - -## Next steps - -In this tutorial, you created a .NET console application. In the next tutorial, you debug the app. - -> [!div class="nextstepaction"] -> [Debug a .NET console application using Visual Studio](debugging-with-visual-studio.md) diff --git a/docs/fundamentals/index.yml b/docs/fundamentals/index.yml index 82fe8517df101..b4ec5dd2a461d 100644 --- a/docs/fundamentals/index.yml +++ b/docs/fundamentals/index.yml @@ -89,10 +89,8 @@ landingContent: url: https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro - linkListType: tutorial links: - - text: Create a Hello World app in Visual Studio Code - url: ../core/tutorials/with-visual-studio-code.md - - text: Create a Hello World app in Visual Studio - url: ../core/tutorials/with-visual-studio.md + - text: Create a Hello World app + url: ../core/tutorials/console-app.md - text: Containerize a .NET Core app url: ../core/docker/build-container.md - linkListType: concept diff --git a/docs/fundamentals/toc.yml b/docs/fundamentals/toc.yml index 560e9b27fc79b..9ac06becd3b0d 100644 --- a/docs/fundamentals/toc.yml +++ b/docs/fundamentals/toc.yml @@ -97,52 +97,33 @@ items: items: - name: .NET 6 template changes href: ../core/tutorials/top-level-templates.md - - name: Use Visual Studio - items: - - name: Create a console app - href: ../core/tutorials/with-visual-studio.md - displayName: tutorials, visual studio, vs - - name: Debug an app - href: ../core/tutorials/debugging-with-visual-studio.md - displayName: tutorials, visual studio, vs - - name: Publish an app - href: ../core/tutorials/publishing-with-visual-studio.md - displayName: tutorials, visual studio, vs - - name: Create a library - href: ../core/tutorials/library-with-visual-studio.md - displayName: tutorials, visual studio, vs - - name: Unit test a library - href: ../core/tutorials/testing-library-with-visual-studio.md - displayName: tutorials, visual studio, vs - - name: Install and use a package - href: /nuget/quickstart/install-and-use-a-package-in-visual-studio?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json - displayName: tutorials, visual studio, vs - - name: Create and publish a package - href: /nuget/quickstart/create-and-publish-a-package-using-visual-studio?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json - displayName: tutorials, visual studio, vs - - name: Use Visual Studio Code - items: - - name: Create a console app - href: ../core/tutorials/with-visual-studio-code.md - displayName: tutorials, visual studio code, vs code, cli - - name: Debug an app - href: ../core/tutorials/debugging-with-visual-studio-code.md - displayName: tutorials, visual studio code, vs code - - name: Publish an app - href: ../core/tutorials/publishing-with-visual-studio-code.md - displayName: tutorials, visual studio code, vs code - - name: Create a library - href: ../core/tutorials/library-with-visual-studio-code.md - displayName: tutorials, visual studio code, vs code - - name: Unit test a library - href: ../core/tutorials/testing-library-with-visual-studio-code.md - displayName: tutorials, visual studio code, vs code - - name: Install and use a package - href: /nuget/quickstart/install-and-use-a-package-using-the-dotnet-cli?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json - displayName: tutorials, cli - - name: Create and publish a package - href: /nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json - displayName: tutorials + - name: Create a console app + href: ../core/tutorials/console-app.md + displayName: tutorials, visual studio, vs, visual studio code, vs code + - name: Debug an app + href: ../core/tutorials/debugging-console-app.md + displayName: tutorials, visual studio, vs, visual studio code, vs code + - name: Publish an app + href: ../core/tutorials/publishing-console-app.md + displayName: tutorials, visual studio, vs, visual studio code, vs code + - name: Create a library + href: ../core/tutorials/console-app-class-library.md + displayName: tutorials, visual studio, vs, visual studio code, vs code + - name: Unit test a library + href: ../core/tutorials/testing-console-app-class-library.md + displayName: tutorials, visual studio, vs, visual studio code, vs code + - name: Install and use a package using Visual Studio + href: /nuget/quickstart/install-and-use-a-package-in-visual-studio?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json + displayName: tutorials, visual studio, vs + - name: Create and publish a package using Visual Studio + href: /nuget/quickstart/create-and-publish-a-package-using-visual-studio?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json + displayName: tutorials, visual studio, vs + - name: Install and use a package using the .NET CLI + href: /nuget/quickstart/install-and-use-a-package-using-the-dotnet-cli?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json + displayName: tutorials, cli + - name: Create and publish a package using the .NET CLI + href: /nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json + displayName: tutorials, cli - name: More tutorials href: ../core/tutorials/index.md - name: What's new in .NET diff --git a/docs/standard/get-started.md b/docs/standard/get-started.md index b0d9e06008d6d..264bbeefcf4d2 100644 --- a/docs/standard/get-started.md +++ b/docs/standard/get-started.md @@ -1,7 +1,7 @@ --- title: Tutorials for getting started with .NET description: Choose a tutorial for learning .NET app development or one of the .NET programming languages. -ms.date: 09/30/2020 +ms.date: 02/12/2026 --- # Tutorials for getting started with .NET @@ -9,9 +9,7 @@ The following step-by-step tutorials run on Windows, Linux, or macOS, except as ## Tutorials for creating apps -* Create a console app - * [using Visual Studio Code](../core/tutorials/with-visual-studio-code.md) - * [using Visual Studio](../core/tutorials/with-visual-studio.md) (Windows) +* [Create a console app](../core/tutorials/console-app.md) * Create a web app * [with server-side web UI](/aspnet/core/tutorials/razor-pages/razor-pages-start) * [with client-side web UI](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) @@ -29,9 +27,7 @@ The following step-by-step tutorials run on Windows, Linux, or macOS, except as ## Tutorials for creating class libraries -* Create a class library - * [using Visual Studio Code](../core/tutorials/library-with-visual-studio-code.md) - * [using Visual Studio](../core/tutorials/library-with-visual-studio.md) (Windows) +* [Create a class library](../core/tutorials/console-app-class-library.md) ## Resources for learning .NET languages diff --git a/docs/zone-pivot-groups.yml b/docs/zone-pivot-groups.yml index 41cf8432c85d1..2f6c9a515c9bd 100644 --- a/docs/zone-pivot-groups.yml +++ b/docs/zone-pivot-groups.yml @@ -164,6 +164,8 @@ groups: title: Code editor prompt: Choose a code editor pivots: + - id: visualstudio + title: Visual Studio - id: vscode title: Visual Studio Code - id: codespaces From bf555895871360ae3840c015b0f6d5bba79d7116 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Thu, 12 Feb 2026 12:59:59 -0800 Subject: [PATCH 02/12] fix broken links and redirection errors --- .openpublishing.redirection.json | 10 +++++----- docs/core/apps.md | 2 +- docs/core/deploying/index.md | 4 ++-- docs/core/diagnostics/managed-debuggers.md | 4 ++-- docs/core/install/linux-alpine.md | 2 +- docs/core/install/linux-debian.md | 2 +- docs/core/install/linux-fedora.md | 2 +- docs/core/install/linux-opensuse.md | 2 +- docs/core/install/linux-rhel.md | 2 +- docs/core/install/linux-scripted-manual.md | 2 +- docs/core/install/linux-sles.md | 2 +- docs/core/install/linux-snap-sdk.md | 2 +- docs/core/install/linux-ubuntu-decision.md | 2 +- docs/core/install/linux-ubuntu-install.md | 2 +- docs/core/install/macos.md | 2 +- docs/core/install/windows.md | 3 +-- docs/core/tutorials/libraries.md | 2 +- docs/core/tutorials/testing-with-cli.md | 2 +- .../program-structure/main-command-line.md | 2 +- docs/iot/tutorials/adc.md | 2 +- docs/iot/tutorials/blink-led.md | 2 +- docs/iot/tutorials/gpio-input.md | 2 +- docs/iot/tutorials/lcd-display.md | 2 +- docs/iot/tutorials/temp-sensor.md | 2 +- docs/orleans/tutorials-and-samples/tutorial-1.md | 4 ++-- docs/samples-and-tutorials/index.md | 8 ++++---- docs/standard/net-standard.md | 2 +- docs/visual-basic/getting-started/index.md | 4 ++-- 28 files changed, 39 insertions(+), 40 deletions(-) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index ff3412e83e564..a08337284bec3 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -3,27 +3,27 @@ { "source_path": "docs/core/tutorials/with-visual-studio.md", "redirect_url": "/dotnet/core/tutorials/console-app", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "docs/core/tutorials/debugging-with-visual-studio.md", "redirect_url": "/dotnet/core/tutorials/debugging-console-app", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "docs/core/tutorials/publishing-with-visual-studio.md", "redirect_url": "/dotnet/core/tutorials/publishing-console-app", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "docs/core/tutorials/library-with-visual-studio.md", "redirect_url": "/dotnet/core/tutorials/console-app-class-library", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "docs/core/tutorials/testing-library-with-visual-studio.md", "redirect_url": "/dotnet/core/tutorials/testing-console-app-class-library", - "redirect_document_id": true + "redirect_document_id": false }, { "source_path": "docs/core/tutorials/with-visual-studio-code.md", diff --git a/docs/core/apps.md b/docs/core/apps.md index 8c5f33369b1cb..e27b83d01e456 100644 --- a/docs/core/apps.md +++ b/docs/core/apps.md @@ -23,7 +23,7 @@ ms.custom: "updateeachrelease" ## Other app types -* [Console apps](tutorials/with-visual-studio-code.md) +* [Console apps](tutorials/console-app.md) * [Internet of Things (IoT)](../iot/index.yml) * [Machine learning](../machine-learning/index.yml) * [Windows services](/aspnet/core/host-and-deploy/windows-service) diff --git a/docs/core/deploying/index.md b/docs/core/deploying/index.md index 63264e3d26523..7fb4f4db6cd89 100644 --- a/docs/core/deploying/index.md +++ b/docs/core/deploying/index.md @@ -15,13 +15,13 @@ This article explains the different ways to publish a .NET application. It cover ::: zone pivot="vscode" -For a short tutorial on publishing, see [Tutorial: Publish a .NET console application using Visual Studio Code](../tutorials/publishing-with-visual-studio-code.md). +For a short tutorial on publishing, see [Tutorial: Publish a .NET console application](../tutorials/publishing-console-app.md). ::: zone-end ::: zone pivot="visualstudio" -For a short tutorial on publishing, see [Tutorial: Publish a .NET console application using Visual Studio](../tutorials/publishing-with-visual-studio.md). +For a short tutorial on publishing, see [Tutorial: Publish a .NET console application](../tutorials/publishing-console-app.md). ::: zone-end diff --git a/docs/core/diagnostics/managed-debuggers.md b/docs/core/diagnostics/managed-debuggers.md index 346a446c29a00..cce4aceb63ae5 100644 --- a/docs/core/diagnostics/managed-debuggers.md +++ b/docs/core/diagnostics/managed-debuggers.md @@ -13,7 +13,7 @@ Microsoft provides debuggers for managed code in **Visual Studio** and **Visual **Visual Studio** is an integrated development environment with the most comprehensive debugger available. Visual Studio is an excellent choice for developers working on Windows. -- [Tutorial - Debugging a .NET Core application on Windows with Visual Studio](../tutorials/debugging-with-visual-studio.md) +- [Tutorial - Debugging a .NET application](../tutorials/debugging-console-app.md) - [Debug ASP.NET Core apps in Visual Studio](/visualstudio/debugger/how-to-enable-debugging-for-aspnet-applications#debug-aspnet-core-apps) While Visual Studio is a Windows application, it can also be used to debug Linux apps running remotely, in WSL, or in Docker containers: @@ -26,5 +26,5 @@ While Visual Studio is a Windows application, it can also be used to debug Linux **Visual Studio Code** is a lightweight cross-platform code editor. It uses the same .NET Core debugger implementation as Visual Studio, but with a simplified user interface. -- [Tutorial - Debugging a .NET Core application with Visual Studio Code](../tutorials/debugging-with-visual-studio-code.md) +- [Tutorial - Debugging a .NET application](../tutorials/debugging-console-app.md) - [Debugging in Visual Studio Code](https://code.visualstudio.com/docs/editor/debugging) diff --git a/docs/core/install/linux-alpine.md b/docs/core/install/linux-alpine.md index d2a115f40920b..88dbffc269668 100644 --- a/docs/core/install/linux-alpine.md +++ b/docs/core/install/linux-alpine.md @@ -90,4 +90,4 @@ Use the `apk add` command to install the dependencies. - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-debian.md b/docs/core/install/linux-debian.md index d56a6578e1120..b28cc730548be 100644 --- a/docs/core/install/linux-debian.md +++ b/docs/core/install/linux-debian.md @@ -163,4 +163,4 @@ sudo apt install libc6 - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-fedora.md b/docs/core/install/linux-fedora.md index 332565cfc2e7a..0cf0eb495abc8 100644 --- a/docs/core/install/linux-fedora.md +++ b/docs/core/install/linux-fedora.md @@ -101,4 +101,4 @@ For more information about solving these problems, see [Troubleshoot `fxr`, `lib - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-opensuse.md b/docs/core/install/linux-opensuse.md index 2b4a4c33bae64..96438d2739c27 100644 --- a/docs/core/install/linux-opensuse.md +++ b/docs/core/install/linux-opensuse.md @@ -139,4 +139,4 @@ For more information about the dependencies, see [Self-contained Linux apps](htt - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-rhel.md b/docs/core/install/linux-rhel.md index 4063a99f846a0..2d50a1c748043 100644 --- a/docs/core/install/linux-rhel.md +++ b/docs/core/install/linux-rhel.md @@ -118,4 +118,4 @@ For more information about solving these problems, see [Troubleshoot `fxr`, `lib - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-scripted-manual.md b/docs/core/install/linux-scripted-manual.md index b781569b1fcb7..7d91fa3af10d0 100644 --- a/docs/core/install/linux-scripted-manual.md +++ b/docs/core/install/linux-scripted-manual.md @@ -253,4 +253,4 @@ Set the following two environment variables in your shell profile: - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-sles.md b/docs/core/install/linux-sles.md index d9284abe05808..0470aeddfd88a 100644 --- a/docs/core/install/linux-sles.md +++ b/docs/core/install/linux-sles.md @@ -138,4 +138,4 @@ For more information about the dependencies, see [Self-contained Linux apps](htt - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-snap-sdk.md b/docs/core/install/linux-snap-sdk.md index 1aeb0c5b4fd05..5a9183b80cc30 100644 --- a/docs/core/install/linux-snap-sdk.md +++ b/docs/core/install/linux-snap-sdk.md @@ -233,4 +233,4 @@ The certificate location varies by distribution. Here are the locations for the - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI.](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-ubuntu-decision.md b/docs/core/install/linux-ubuntu-decision.md index 1678cb1938e3d..93f5daf44bbb8 100644 --- a/docs/core/install/linux-ubuntu-decision.md +++ b/docs/core/install/linux-ubuntu-decision.md @@ -353,4 +353,4 @@ When you install with a package manager, these libraries are installed for you. - [.NET CLI overview](../tools/index.md) - [How to enable Tab completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) diff --git a/docs/core/install/linux-ubuntu-install.md b/docs/core/install/linux-ubuntu-install.md index 730cd4b80f2f8..be9ff5718bc0e 100644 --- a/docs/core/install/linux-ubuntu-install.md +++ b/docs/core/install/linux-ubuntu-install.md @@ -246,4 +246,4 @@ When you install with a package manager, these libraries are installed for you. - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI.](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET SDK using Visual Studio Code.](../tutorials/with-visual-studio-code.md) +- [Tutorial: Create a console application with .NET.](../tutorials/console-app.md) diff --git a/docs/core/install/macos.md b/docs/core/install/macos.md index fa369d06c79fa..04d549aa6a29b 100644 --- a/docs/core/install/macos.md +++ b/docs/core/install/macos.md @@ -352,5 +352,5 @@ Set the following two environment variables in your shell profile: - [How to check if .NET is already installed](how-to-detect-installed-versions.md?pivots=os-macos). - [Working with macOS Catalina notarization](macos-notarization-issues.md). -- [Tutorial: Create a new app with Visual Studio Code](../tutorials/with-visual-studio-code.md). +- [Tutorial: Create a .NET console application](../tutorials/console-app.md). - [Tutorial: Containerize a .NET app](../docker/build-container.md). diff --git a/docs/core/install/windows.md b/docs/core/install/windows.md index 197bbbc97469b..acb948ceafc36 100644 --- a/docs/core/install/windows.md +++ b/docs/core/install/windows.md @@ -509,8 +509,7 @@ Install the Microsoft Visual C++ 2015-2019 Redistributable ([64-bit][vcc64] or [ - [.NET CLI overview](../tools/index.md) - [Upgrade to a new .NET version](upgrade.md). - [How to check if .NET is already installed](how-to-detect-installed-versions.md?pivots=os-windows). -- [Tutorial: Hello World tutorial](../tutorials/with-visual-studio.md). -- [Tutorial: Create a new app with Visual Studio Code](../tutorials/with-visual-studio-code.md). +- [Tutorial: Create a new console application](../tutorials/console-app.md). [esu]: /troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq [vcc64]: https://aka.ms/vs/16/release/vc_redist.x64.exe diff --git a/docs/core/tutorials/libraries.md b/docs/core/tutorials/libraries.md index 61476f046f9ee..55f5b08bd579e 100644 --- a/docs/core/tutorials/libraries.md +++ b/docs/core/tutorials/libraries.md @@ -7,7 +7,7 @@ ai-usage: ai-assisted --- # Develop libraries with the .NET CLI -This article covers how to write libraries for .NET using the .NET CLI. The CLI provides an efficient and low-level experience that works across any supported OS. You can still build libraries with Visual Studio, and if that's your preferred experience [refer to the Visual Studio guide](library-with-visual-studio.md). +This article covers how to write libraries for .NET using the .NET CLI. The CLI provides an efficient and low-level experience that works across any supported OS. You can still build libraries with Visual Studio, and if that's your preferred experience [refer to the Visual Studio guide](console-app-class-library.md). ## Prerequisites diff --git a/docs/core/tutorials/testing-with-cli.md b/docs/core/tutorials/testing-with-cli.md index e1c8c8624bcdd..5060d50dd0de5 100644 --- a/docs/core/tutorials/testing-with-cli.md +++ b/docs/core/tutorials/testing-with-cli.md @@ -7,7 +7,7 @@ ai-usage: ai-assisted # Organizing and testing projects with the .NET CLI -This tutorial follows [Tutorial: Create a console application with .NET using Visual Studio Code](with-visual-studio-code.md), taking you beyond the creation of a simple console app to develop advanced and well-organized applications. After showing you how to use folders to organize your code, the tutorial shows you how to extend a console application with the [xUnit](https://xunit.net/) testing framework. +This tutorial follows [Tutorial: Create a .NET console application](console-app.md), taking you beyond the creation of a simple console app to develop advanced and well-organized applications. After showing you how to use folders to organize your code, the tutorial shows you how to extend a console application with the [xUnit](https://xunit.net/) testing framework. > [!NOTE] > This tutorial recommends that you place the application project and test project in separate folders. Some developers prefer to keep these projects in the same folder. For more information, see GitHub issue [dotnet/docs #26395](https://github.com/dotnet/docs/issues/26395). diff --git a/docs/csharp/fundamentals/program-structure/main-command-line.md b/docs/csharp/fundamentals/program-structure/main-command-line.md index 08e82eaa09cd5..f575a59489787 100644 --- a/docs/csharp/fundamentals/program-structure/main-command-line.md +++ b/docs/csharp/fundamentals/program-structure/main-command-line.md @@ -78,7 +78,7 @@ However, returning `int` or `Task` enables the program to communicate statu The following example shows how the exit code for the process can be accessed. -This example uses [.NET Core](../../../core/introduction.md) command-line tools. If you're unfamiliar with .NET Core command-line tools, you can learn about them in this [get-started article](../../../core/tutorials/with-visual-studio-code.md). +This example uses [.NET Core](../../../core/introduction.md) command-line tools. If you're unfamiliar with .NET Core command-line tools, you can learn about them in this [get-started article](../../../core/tutorials/console-app.md). Create a new application by running `dotnet new console`. Modify the `Main` method in *Program.cs* as follows: diff --git a/docs/iot/tutorials/adc.md b/docs/iot/tutorials/adc.md index 9d9cbb20dab82..934a53bb757d2 100644 --- a/docs/iot/tutorials/adc.md +++ b/docs/iot/tutorials/adc.md @@ -60,7 +60,7 @@ Refer to the following pinout diagrams as needed: Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/with-visual-studio.md). Name it *AdcTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *AdcTutorial*. ```dotnetcli dotnet new console -o AdcTutorial diff --git a/docs/iot/tutorials/blink-led.md b/docs/iot/tutorials/blink-led.md index d35cb15c66099..98455be3e67f5 100644 --- a/docs/iot/tutorials/blink-led.md +++ b/docs/iot/tutorials/blink-led.md @@ -46,7 +46,7 @@ The image above depicts the following connections: Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/with-visual-studio.md). Name it *BlinkTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *BlinkTutorial*. ```dotnetcli dotnet new console -o BlinkTutorial diff --git a/docs/iot/tutorials/gpio-input.md b/docs/iot/tutorials/gpio-input.md index 76720e5236698..09ae10c202cf0 100644 --- a/docs/iot/tutorials/gpio-input.md +++ b/docs/iot/tutorials/gpio-input.md @@ -43,7 +43,7 @@ The image above depicts a direct connection between a ground pin and pin 21. Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/with-visual-studio.md). Name it *InputTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *InputTutorial*. ```dotnetcli dotnet new console -o InputTutorial diff --git a/docs/iot/tutorials/lcd-display.md b/docs/iot/tutorials/lcd-display.md index 0ab2db9cf2434..ac3452a2ed9c0 100644 --- a/docs/iot/tutorials/lcd-display.md +++ b/docs/iot/tutorials/lcd-display.md @@ -53,7 +53,7 @@ Refer to the following figures as needed: Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/with-visual-studio.md). Name it *LcdTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *LcdTutorial*. ```dotnetcli dotnet new console -o LcdTutorial diff --git a/docs/iot/tutorials/temp-sensor.md b/docs/iot/tutorials/temp-sensor.md index 1faf7f539cb2a..785d0c99ab3d7 100644 --- a/docs/iot/tutorials/temp-sensor.md +++ b/docs/iot/tutorials/temp-sensor.md @@ -55,7 +55,7 @@ The following are the connections from the Raspberry Pi to the BME280 breakout. Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/with-visual-studio.md). Name it *SensorTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *SensorTutorial*. ```dotnetcli dotnet new console -o SensorTutorial diff --git a/docs/orleans/tutorials-and-samples/tutorial-1.md b/docs/orleans/tutorials-and-samples/tutorial-1.md index cc962bf77f685..e8410ff5d22ad 100644 --- a/docs/orleans/tutorials-and-samples/tutorial-1.md +++ b/docs/orleans/tutorials-and-samples/tutorial-1.md @@ -54,9 +54,9 @@ For this tutorial, create four projects as part of the same solution: Replace the default code with the code provided for each project. -1. Start by creating a Console App project in a new solution. Call the project `Silo` and name the solution `OrleansHelloWorld`. For more information on creating a console app, see [Tutorial: Create a .NET console application using Visual Studio](../../core/tutorials/with-visual-studio.md). +1. Start by creating a Console App project in a new solution. Call the project `Silo` and name the solution `OrleansHelloWorld`. For more information on creating a console app, see [Tutorial: Create a .NET console application](../../core/tutorials/console-app.md). 1. Add another Console App project and name it `Client`. -1. Add a Class Library and name it `GrainInterfaces`. For information on creating a class library, see [Tutorial: Create a .NET class library using Visual Studio](../../core/tutorials/library-with-visual-studio.md). +1. Add a Class Library and name it `GrainInterfaces`. For information on creating a class library, see [Tutorial: Create a .NET class library](../../core/tutorials/console-app-class-library.md). 1. Add another Class Library and name it `Grains`. #### Delete default source files diff --git a/docs/samples-and-tutorials/index.md b/docs/samples-and-tutorials/index.md index c19e38e29a57d..501659f75a1c1 100644 --- a/docs/samples-and-tutorials/index.md +++ b/docs/samples-and-tutorials/index.md @@ -20,13 +20,13 @@ This guide shows you how to create an ASP.NET Core web app and associated unit t ### Tutorials -**[Tutorial: Create a .NET console application using Visual Studio Code](../core/tutorials/with-visual-studio-code.md)** +**[Tutorial: Create a .NET console application](../core/tutorials/console-app.md)** -This tutorial shows how to create and run a .NET console application by using Visual Studio Code and the .NET CLI. Project tasks, such as creating, compiling, and running a project are done by using the .NET CLI. +This tutorial shows how to create and run a .NET console application using Visual Studio, Visual Studio Code, or GitHub Codespaces. -**[Tutorial: Create a .NET class library using Visual Studio Code](../core/tutorials/library-with-visual-studio-code.md)** +**[Tutorial: Create a .NET class library](../core/tutorials/console-app-class-library.md)** -This tutorial shows how to write libraries for .NET using Visual Studio Code and the .NET CLI. Project tasks, such as creating, compiling, and running a project are done by using the .NET CLI. +This tutorial shows how to create a class library using Visual Studio, Visual Studio Code, or GitHub Codespaces. For more .NET tutorials, see [Learn .NET and the .NET SDK tools](../core/tutorials/index.md). diff --git a/docs/standard/net-standard.md b/docs/standard/net-standard.md index e62e77cc94541..4c627a1c699c5 100644 --- a/docs/standard/net-standard.md +++ b/docs/standard/net-standard.md @@ -149,5 +149,5 @@ Here are some problems with .NET Standard that help explain why .NET 5 and later - [.NET Standard versions (source)](https://github.com/dotnet/standard/blob/v2.1.0/docs/versions.md) - [.NET Standard versions (interactive UI)](https://dotnet.microsoft.com/platform/dotnet-standard#versions) -- [Build a .NET Standard library](../core/tutorials/library-with-visual-studio.md) +- [Build a .NET Standard library](../core/tutorials/console-app-class-library.md) - [Cross-platform targeting](./library-guidance/cross-platform-targeting.md) diff --git a/docs/visual-basic/getting-started/index.md b/docs/visual-basic/getting-started/index.md index c0ca39e38b0f7..88edc4d78310b 100644 --- a/docs/visual-basic/getting-started/index.md +++ b/docs/visual-basic/getting-started/index.md @@ -13,9 +13,9 @@ This section of the documentation helps you get started with Visual Basic applic ## Get started with Visual Basic and .NET Core -[Build a Hello World application with .NET Core in Visual Studio](../../core/tutorials/with-visual-studio.md) +[Build a Hello World application with .NET](../../core/tutorials/console-app.md) -[Build a class library with .NET Standard in Visual Studio](../../core/tutorials/library-with-visual-studio.md) +[Build a class library with .NET](../../core/tutorials/console-app-class-library.md) ## Additional information From 970b123a1e25f74c804a121155e09e6a21135260 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Tue, 17 Feb 2026 13:29:00 -0800 Subject: [PATCH 03/12] rename and redirect console app tutorials --- .openpublishing.redirection.json | 20 +++++++++---------- ...ass-library.md => create-class-library.md} | 2 +- .../{console-app.md => create-console-app.md} | 2 +- ...ng-console-app.md => debug-console-app.md} | 0 ...-console-app.md => publish-console-app.md} | 2 +- ...class-library.md => test-class-library.md} | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) rename docs/core/tutorials/{console-app-class-library.md => create-class-library.md} (99%) rename docs/core/tutorials/{console-app.md => create-console-app.md} (99%) rename docs/core/tutorials/{debugging-console-app.md => debug-console-app.md} (100%) rename docs/core/tutorials/{publishing-console-app.md => publish-console-app.md} (99%) rename docs/core/tutorials/{testing-console-app-class-library.md => test-class-library.md} (99%) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index a08337284bec3..c832fa0a38bd1 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -2,52 +2,52 @@ "redirections": [ { "source_path": "docs/core/tutorials/with-visual-studio.md", - "redirect_url": "/dotnet/core/tutorials/console-app", + "redirect_url": "/dotnet/core/tutorials/create-console-app", "redirect_document_id": false }, { "source_path": "docs/core/tutorials/debugging-with-visual-studio.md", - "redirect_url": "/dotnet/core/tutorials/debugging-console-app", + "redirect_url": "/dotnet/core/tutorials/debug-console-app", "redirect_document_id": false }, { "source_path": "docs/core/tutorials/publishing-with-visual-studio.md", - "redirect_url": "/dotnet/core/tutorials/publishing-console-app", + "redirect_url": "/dotnet/core/tutorials/publish-console-app", "redirect_document_id": false }, { "source_path": "docs/core/tutorials/library-with-visual-studio.md", - "redirect_url": "/dotnet/core/tutorials/console-app-class-library", + "redirect_url": "/dotnet/core/tutorials/create-class-library", "redirect_document_id": false }, { "source_path": "docs/core/tutorials/testing-library-with-visual-studio.md", - "redirect_url": "/dotnet/core/tutorials/testing-console-app-class-library", + "redirect_url": "/dotnet/core/tutorials/test-class-library", "redirect_document_id": false }, { "source_path": "docs/core/tutorials/with-visual-studio-code.md", - "redirect_url": "/dotnet/core/tutorials/console-app", + "redirect_url": "/dotnet/core/tutorials/create-console-app", "redirect_document_id": true }, { "source_path": "docs/core/tutorials/debugging-with-visual-studio-code.md", - "redirect_url": "/dotnet/core/tutorials/debugging-console-app", + "redirect_url": "/dotnet/core/tutorials/debug-console-app", "redirect_document_id": true }, { "source_path": "docs/core/tutorials/publishing-with-visual-studio-code.md", - "redirect_url": "/dotnet/core/tutorials/publishing-console-app", + "redirect_url": "/dotnet/core/tutorials/publish-console-app", "redirect_document_id": true }, { "source_path": "docs/core/tutorials/library-with-visual-studio-code.md", - "redirect_url": "/dotnet/core/tutorials/console-app-class-library", + "redirect_url": "/dotnet/core/tutorials/create-class-library", "redirect_document_id": true }, { "source_path": "docs/core/tutorials/testing-library-with-visual-studio-code.md", - "redirect_url": "/dotnet/core/tutorials/testing-console-app-class-library", + "redirect_url": "/dotnet/core/tutorials/test-class-library", "redirect_document_id": true }, { diff --git a/docs/core/tutorials/console-app-class-library.md b/docs/core/tutorials/create-class-library.md similarity index 99% rename from docs/core/tutorials/console-app-class-library.md rename to docs/core/tutorials/create-class-library.md index 2dd0a9434c224..d02b7d3b611f6 100644 --- a/docs/core/tutorials/console-app-class-library.md +++ b/docs/core/tutorials/create-class-library.md @@ -394,7 +394,7 @@ dotnet add reference ../StringLibrary/StringLibrary.csproj ## Cleanup resources -GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "delete". +GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "Delete". ::: zone-end diff --git a/docs/core/tutorials/console-app.md b/docs/core/tutorials/create-console-app.md similarity index 99% rename from docs/core/tutorials/console-app.md rename to docs/core/tutorials/create-console-app.md index b40f58517dd9a..cf251913b74be 100644 --- a/docs/core/tutorials/console-app.md +++ b/docs/core/tutorials/create-console-app.md @@ -329,7 +329,7 @@ Enhance the application to prompt the user for their name and display it along w ## Cleanup resources -GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "delete". +GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "Delete". ::: zone-end diff --git a/docs/core/tutorials/debugging-console-app.md b/docs/core/tutorials/debug-console-app.md similarity index 100% rename from docs/core/tutorials/debugging-console-app.md rename to docs/core/tutorials/debug-console-app.md diff --git a/docs/core/tutorials/publishing-console-app.md b/docs/core/tutorials/publish-console-app.md similarity index 99% rename from docs/core/tutorials/publishing-console-app.md rename to docs/core/tutorials/publish-console-app.md index 0cfbf6b2fd29d..2660e44cf600d 100644 --- a/docs/core/tutorials/publishing-console-app.md +++ b/docs/core/tutorials/publish-console-app.md @@ -293,7 +293,7 @@ In the following steps, you'll look at the files created by the publish process. ## Cleanup resources -GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "delete". +GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "Delete". ::: zone-end diff --git a/docs/core/tutorials/testing-console-app-class-library.md b/docs/core/tutorials/test-class-library.md similarity index 99% rename from docs/core/tutorials/testing-console-app-class-library.md rename to docs/core/tutorials/test-class-library.md index 3e82d3b067c9c..161fe68daafed 100644 --- a/docs/core/tutorials/testing-console-app-class-library.md +++ b/docs/core/tutorials/test-class-library.md @@ -404,7 +404,7 @@ Visual Studio Code starts the test project with the debugger attached. Execution ## Cleanup resources -GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "delete". +GitHub automatically deletes your Codespace after 30 days of inactivity. If you plan to explore more tutorials in this series, you can leave your Codespace provisioned. If you're ready to visit the [.NET site](https://dotnet.microsoft.com/download/dotnet) to download the .NET SDK, you can delete your Codespace. To delete your Codespace, open a browser window and navigate to [your Codespaces](https://github.com/codespaces). You see a list of your codespaces in the window. Select the three dots (`...`) in the entry for the learn tutorial codespace. Then select "Delete". ::: zone-end From d2ea1ecc841e231b8df325e8a2630c7c7544d544 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Tue, 17 Feb 2026 14:35:01 -0800 Subject: [PATCH 04/12] fix broken links after rename --- docs/core/apps.md | 2 +- docs/core/deploying/index.md | 4 ++-- docs/core/diagnostics/managed-debuggers.md | 4 ++-- docs/core/install/linux-alpine.md | 2 +- docs/core/install/linux-debian.md | 2 +- docs/core/install/linux-fedora.md | 2 +- docs/core/install/linux-opensuse.md | 2 +- docs/core/install/linux-rhel.md | 2 +- docs/core/install/linux-scripted-manual.md | 2 +- docs/core/install/linux-sles.md | 2 +- docs/core/install/linux-snap-sdk.md | 2 +- docs/core/install/linux-ubuntu-decision.md | 2 +- docs/core/install/linux-ubuntu-install.md | 2 +- docs/core/install/macos.md | 2 +- docs/core/install/windows.md | 2 +- docs/core/tutorials/create-class-library.md | 4 ++-- docs/core/tutorials/create-console-app.md | 2 +- docs/core/tutorials/debug-console-app.md | 10 +++++----- docs/core/tutorials/index.md | 10 +++++----- docs/core/tutorials/libraries.md | 2 +- docs/core/tutorials/publish-console-app.md | 10 +++++----- docs/core/tutorials/test-class-library.md | 12 +++++------ docs/core/tutorials/testing-with-cli.md | 2 +- .../program-structure/main-command-line.md | 2 +- docs/fundamentals/toc.yml | 20 +++++++------------ docs/iot/tutorials/adc.md | 2 +- docs/iot/tutorials/blink-led.md | 2 +- docs/iot/tutorials/gpio-input.md | 2 +- docs/iot/tutorials/lcd-display.md | 2 +- docs/iot/tutorials/temp-sensor.md | 2 +- .../tutorials-and-samples/tutorial-1.md | 4 ++-- docs/samples-and-tutorials/index.md | 4 ++-- docs/standard/get-started.md | 4 ++-- docs/standard/net-standard.md | 2 +- docs/visual-basic/getting-started/index.md | 4 ++-- 35 files changed, 65 insertions(+), 71 deletions(-) diff --git a/docs/core/apps.md b/docs/core/apps.md index e27b83d01e456..50b294c443e9a 100644 --- a/docs/core/apps.md +++ b/docs/core/apps.md @@ -23,7 +23,7 @@ ms.custom: "updateeachrelease" ## Other app types -* [Console apps](tutorials/console-app.md) +* [Console apps](tutorials/create-console-app.md) * [Internet of Things (IoT)](../iot/index.yml) * [Machine learning](../machine-learning/index.yml) * [Windows services](/aspnet/core/host-and-deploy/windows-service) diff --git a/docs/core/deploying/index.md b/docs/core/deploying/index.md index 7fb4f4db6cd89..7165da1e71e00 100644 --- a/docs/core/deploying/index.md +++ b/docs/core/deploying/index.md @@ -15,13 +15,13 @@ This article explains the different ways to publish a .NET application. It cover ::: zone pivot="vscode" -For a short tutorial on publishing, see [Tutorial: Publish a .NET console application](../tutorials/publishing-console-app.md). +For a short tutorial on publishing, see [Tutorial: Publish a .NET console application](../tutorials/publish-console-app.md). ::: zone-end ::: zone pivot="visualstudio" -For a short tutorial on publishing, see [Tutorial: Publish a .NET console application](../tutorials/publishing-console-app.md). +For a short tutorial on publishing, see [Tutorial: Publish a .NET console application](../tutorials/publish-console-app.md). ::: zone-end diff --git a/docs/core/diagnostics/managed-debuggers.md b/docs/core/diagnostics/managed-debuggers.md index cce4aceb63ae5..fe049abbcc0e9 100644 --- a/docs/core/diagnostics/managed-debuggers.md +++ b/docs/core/diagnostics/managed-debuggers.md @@ -13,7 +13,7 @@ Microsoft provides debuggers for managed code in **Visual Studio** and **Visual **Visual Studio** is an integrated development environment with the most comprehensive debugger available. Visual Studio is an excellent choice for developers working on Windows. -- [Tutorial - Debugging a .NET application](../tutorials/debugging-console-app.md) +- [Tutorial - Debugging a .NET application](../tutorials/debug-console-app.md) - [Debug ASP.NET Core apps in Visual Studio](/visualstudio/debugger/how-to-enable-debugging-for-aspnet-applications#debug-aspnet-core-apps) While Visual Studio is a Windows application, it can also be used to debug Linux apps running remotely, in WSL, or in Docker containers: @@ -26,5 +26,5 @@ While Visual Studio is a Windows application, it can also be used to debug Linux **Visual Studio Code** is a lightweight cross-platform code editor. It uses the same .NET Core debugger implementation as Visual Studio, but with a simplified user interface. -- [Tutorial - Debugging a .NET application](../tutorials/debugging-console-app.md) +- [Tutorial - Debugging a .NET application](../tutorials/debug-console-app.md) - [Debugging in Visual Studio Code](https://code.visualstudio.com/docs/editor/debugging) diff --git a/docs/core/install/linux-alpine.md b/docs/core/install/linux-alpine.md index 88dbffc269668..d932a53a935f1 100644 --- a/docs/core/install/linux-alpine.md +++ b/docs/core/install/linux-alpine.md @@ -90,4 +90,4 @@ Use the `apk add` command to install the dependencies. - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-debian.md b/docs/core/install/linux-debian.md index b28cc730548be..7c971f887a8fe 100644 --- a/docs/core/install/linux-debian.md +++ b/docs/core/install/linux-debian.md @@ -163,4 +163,4 @@ sudo apt install libc6 - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-fedora.md b/docs/core/install/linux-fedora.md index 0cf0eb495abc8..4a2fa47fb3995 100644 --- a/docs/core/install/linux-fedora.md +++ b/docs/core/install/linux-fedora.md @@ -101,4 +101,4 @@ For more information about solving these problems, see [Troubleshoot `fxr`, `lib - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-opensuse.md b/docs/core/install/linux-opensuse.md index 96438d2739c27..d23a42f447bb6 100644 --- a/docs/core/install/linux-opensuse.md +++ b/docs/core/install/linux-opensuse.md @@ -139,4 +139,4 @@ For more information about the dependencies, see [Self-contained Linux apps](htt - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-rhel.md b/docs/core/install/linux-rhel.md index 2d50a1c748043..a9db1b3cf31ee 100644 --- a/docs/core/install/linux-rhel.md +++ b/docs/core/install/linux-rhel.md @@ -118,4 +118,4 @@ For more information about solving these problems, see [Troubleshoot `fxr`, `lib - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-scripted-manual.md b/docs/core/install/linux-scripted-manual.md index 7d91fa3af10d0..340fb06a86504 100644 --- a/docs/core/install/linux-scripted-manual.md +++ b/docs/core/install/linux-scripted-manual.md @@ -253,4 +253,4 @@ Set the following two environment variables in your shell profile: - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-sles.md b/docs/core/install/linux-sles.md index 0470aeddfd88a..5b578ed987650 100644 --- a/docs/core/install/linux-sles.md +++ b/docs/core/install/linux-sles.md @@ -138,4 +138,4 @@ For more information about the dependencies, see [Self-contained Linux apps](htt - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-snap-sdk.md b/docs/core/install/linux-snap-sdk.md index 5a9183b80cc30..120fe1e34e577 100644 --- a/docs/core/install/linux-snap-sdk.md +++ b/docs/core/install/linux-snap-sdk.md @@ -233,4 +233,4 @@ The certificate location varies by distribution. Here are the locations for the - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI.](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-ubuntu-decision.md b/docs/core/install/linux-ubuntu-decision.md index 93f5daf44bbb8..ddc05947404d1 100644 --- a/docs/core/install/linux-ubuntu-decision.md +++ b/docs/core/install/linux-ubuntu-decision.md @@ -353,4 +353,4 @@ When you install with a package manager, these libraries are installed for you. - [.NET CLI overview](../tools/index.md) - [How to enable Tab completion for the .NET CLI](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET](../tutorials/create-console-app.md) diff --git a/docs/core/install/linux-ubuntu-install.md b/docs/core/install/linux-ubuntu-install.md index be9ff5718bc0e..6588817fb77bf 100644 --- a/docs/core/install/linux-ubuntu-install.md +++ b/docs/core/install/linux-ubuntu-install.md @@ -246,4 +246,4 @@ When you install with a package manager, these libraries are installed for you. - [.NET CLI overview](../tools/index.md) - [How to enable TAB completion for the .NET CLI.](../tools/enable-tab-autocomplete.md) -- [Tutorial: Create a console application with .NET.](../tutorials/console-app.md) +- [Tutorial: Create a console application with .NET.](../tutorials/create-console-app.md) diff --git a/docs/core/install/macos.md b/docs/core/install/macos.md index 04d549aa6a29b..8927b3d6e9c3c 100644 --- a/docs/core/install/macos.md +++ b/docs/core/install/macos.md @@ -352,5 +352,5 @@ Set the following two environment variables in your shell profile: - [How to check if .NET is already installed](how-to-detect-installed-versions.md?pivots=os-macos). - [Working with macOS Catalina notarization](macos-notarization-issues.md). -- [Tutorial: Create a .NET console application](../tutorials/console-app.md). +- [Tutorial: Create a .NET console application](../tutorials/create-console-app.md). - [Tutorial: Containerize a .NET app](../docker/build-container.md). diff --git a/docs/core/install/windows.md b/docs/core/install/windows.md index acb948ceafc36..20605de2f87dd 100644 --- a/docs/core/install/windows.md +++ b/docs/core/install/windows.md @@ -509,7 +509,7 @@ Install the Microsoft Visual C++ 2015-2019 Redistributable ([64-bit][vcc64] or [ - [.NET CLI overview](../tools/index.md) - [Upgrade to a new .NET version](upgrade.md). - [How to check if .NET is already installed](how-to-detect-installed-versions.md?pivots=os-windows). -- [Tutorial: Create a new console application](../tutorials/console-app.md). +- [Tutorial: Create a new console application](../tutorials/create-console-app.md). [esu]: /troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq [vcc64]: https://aka.ms/vs/16/release/vc_redist.x64.exe diff --git a/docs/core/tutorials/create-class-library.md b/docs/core/tutorials/create-class-library.md index d02b7d3b611f6..6ab6da30154b7 100644 --- a/docs/core/tutorials/create-class-library.md +++ b/docs/core/tutorials/create-class-library.md @@ -403,7 +403,7 @@ GitHub automatically deletes your Codespace after 30 days of inactivity. If you In this tutorial, you created a class library. In the next tutorial, you learn how to unit test the class library. > [!div class="nextstepaction"] -> [Unit test a .NET class library](testing-console-app-class-library.md) +> [Unit test a .NET class library](test-class-library.md) Or, you can skip automated unit testing and learn how to share the library by creating a NuGet package: @@ -413,4 +413,4 @@ Or, you can skip automated unit testing and learn how to share the library by cr Or, learn how to publish a console app. If you publish the console app from the solution you created in this tutorial, the class library goes with it as a *.dll* file. > [!div class="nextstepaction"] -> [Publish a .NET console application](publishing-console-app.md) +> [Publish a .NET console application](publish-console-app.md) diff --git a/docs/core/tutorials/create-console-app.md b/docs/core/tutorials/create-console-app.md index cf251913b74be..46ff67780e61b 100644 --- a/docs/core/tutorials/create-console-app.md +++ b/docs/core/tutorials/create-console-app.md @@ -338,4 +338,4 @@ GitHub automatically deletes your Codespace after 30 days of inactivity. If you In this tutorial, you created a .NET console application. In the next tutorial, you debug the app. > [!div class="nextstepaction"] -> [Debug a .NET console application](debugging-console-app.md) +> [Debug a .NET console application](debug-console-app.md) diff --git a/docs/core/tutorials/debug-console-app.md b/docs/core/tutorials/debug-console-app.md index 5def0e7815037..439b548153944 100644 --- a/docs/core/tutorials/debug-console-app.md +++ b/docs/core/tutorials/debug-console-app.md @@ -33,7 +33,7 @@ This tutorial introduces the debugging tools available in GitHub Codespaces for ## Prerequisites -This tutorial works with the console app that you create in [Create a .NET console application](console-app.md). +This tutorial works with the console app that you create in [Create a .NET console application](create-console-app.md). ::: zone pivot="visualstudio" @@ -47,7 +47,7 @@ By default, Visual Studio uses the Debug build configuration, so you don't need 1. Start Visual Studio. -1. Open the project that you created in [Create a .NET console application](console-app.md). +1. Open the project that you created in [Create a .NET console application](create-console-app.md). The current build configuration is shown on the toolbar. The following toolbar image shows that Visual Studio is configured to compile the Debug version of the app: @@ -81,7 +81,7 @@ A *breakpoint* temporarily interrupts the execution of the application before th 1. Start Visual Studio Code. -1. Open the folder of the project that you created in [Create a .NET console application](console-app.md). +1. Open the folder of the project that you created in [Create a .NET console application](create-console-app.md). 1. Open the *Program.cs* file. @@ -95,7 +95,7 @@ A *breakpoint* temporarily interrupts the execution of the application before th ::: zone pivot="codespaces" -1. Open your GitHub Codespace that you created in [Create a .NET console application](console-app.md). +1. Open your GitHub Codespace that you created in [Create a .NET console application](create-console-app.md). 1. Open the *HelloWorld.cs* file. @@ -434,4 +434,4 @@ dotnet run --configuration Release HelloWorld.cs In this tutorial, you used debugging tools. In the next tutorial, you publish a deployable version of the app. > [!div class="nextstepaction"] -> [Publish a .NET console application](publishing-console-app.md) +> [Publish a .NET console application](publish-console-app.md) diff --git a/docs/core/tutorials/index.md b/docs/core/tutorials/index.md index d096796640bdd..df424b98dbc61 100644 --- a/docs/core/tutorials/index.md +++ b/docs/core/tutorials/index.md @@ -14,11 +14,11 @@ The following tutorials show how to develop console apps and libraries for .NET These tutorials support Visual Studio, Visual Studio Code, and GitHub Codespaces. Choose your preferred development environment using the zone pivot selector at the top of each article. -- [Create a console app](console-app.md) -- [Debug an app](debugging-console-app.md) -- [Publish an app](publishing-console-app.md) -- [Create a class library](console-app-class-library.md) -- [Unit test a class library](testing-console-app-class-library.md) +- [Create a console app](create-console-app.md) +- [Debug an app](debug-console-app.md) +- [Publish an app](publish-console-app.md) +- [Create a class library](create-class-library.md) +- [Unit test a class library](test-class-library.md) - [Install and use a package](/nuget/quickstart/install-and-use-a-package-in-visual-studio) - [Create and publish a package](/nuget/quickstart/create-and-publish-a-package-using-visual-studio) diff --git a/docs/core/tutorials/libraries.md b/docs/core/tutorials/libraries.md index 55f5b08bd579e..6430dfbad27d4 100644 --- a/docs/core/tutorials/libraries.md +++ b/docs/core/tutorials/libraries.md @@ -7,7 +7,7 @@ ai-usage: ai-assisted --- # Develop libraries with the .NET CLI -This article covers how to write libraries for .NET using the .NET CLI. The CLI provides an efficient and low-level experience that works across any supported OS. You can still build libraries with Visual Studio, and if that's your preferred experience [refer to the Visual Studio guide](console-app-class-library.md). +This article covers how to write libraries for .NET using the .NET CLI. The CLI provides an efficient and low-level experience that works across any supported OS. You can still build libraries with Visual Studio, and if that's your preferred experience [refer to the Visual Studio guide](create-class-library.md). ## Prerequisites diff --git a/docs/core/tutorials/publish-console-app.md b/docs/core/tutorials/publish-console-app.md index 2660e44cf600d..513b35d0f634f 100644 --- a/docs/core/tutorials/publish-console-app.md +++ b/docs/core/tutorials/publish-console-app.md @@ -11,7 +11,7 @@ This tutorial shows how to publish a console app so that other users can run it. ## Prerequisites -- This tutorial works with the console app that you create in [Create a .NET console application](console-app.md). +- This tutorial works with the console app that you create in [Create a .NET console application](create-console-app.md). ## Publish the app @@ -19,7 +19,7 @@ This tutorial shows how to publish a console app so that other users can run it. 1. Start Visual Studio. -1. Open the *HelloWorld* project that you created in [Create a .NET console application](console-app.md). +1. Open the *HelloWorld* project that you created in [Create a .NET console application](create-console-app.md). 1. Make sure that Visual Studio is using the Release build configuration. If necessary, change the build configuration setting on the toolbar from **Debug** to **Release**. @@ -53,7 +53,7 @@ This tutorial shows how to publish a console app so that other users can run it. 1. Start Visual Studio Code. -1. Open the *HelloWorld* project folder that you created in [Create a .NET console application](console-app.md). +1. Open the *HelloWorld* project folder that you created in [Create a .NET console application](create-console-app.md). 1. Choose **View** > **Terminal** from the main menu. @@ -80,7 +80,7 @@ This tutorial shows how to publish a console app so that other users can run it. ::: zone pivot="codespaces" -1. Open your GitHub Codespace that you created in [Create a .NET console application](console-app.md). +1. Open your GitHub Codespace that you created in [Create a .NET console application](create-console-app.md). 1. Add the following line of code to the top of *HelloWorld.cs*: @@ -302,4 +302,4 @@ GitHub automatically deletes your Codespace after 30 days of inactivity. If you In this tutorial, you published a console app. In the next tutorial, you create a class library. > [!div class="nextstepaction"] -> [Create a .NET class library](console-app-class-library.md) +> [Create a .NET class library](create-class-library.md) diff --git a/docs/core/tutorials/test-class-library.md b/docs/core/tutorials/test-class-library.md index 161fe68daafed..3320a861154ba 100644 --- a/docs/core/tutorials/test-class-library.md +++ b/docs/core/tutorials/test-class-library.md @@ -14,7 +14,7 @@ This tutorial shows how to automate unit testing by adding a test project to a s ## Prerequisites -This tutorial works with the solution that you create in [Create a .NET class library](console-app-class-library.md). +This tutorial works with the solution that you create in [Create a .NET class library](create-class-library.md). ## Create a unit test project @@ -24,7 +24,7 @@ Unit tests provide automated software testing during your development and publis 1. Start Visual Studio. -1. Open the `ClassLibraryProjects` solution you created in [Create a .NET class library](console-app-class-library.md). +1. Open the `ClassLibraryProjects` solution you created in [Create a .NET class library](create-class-library.md). 1. Add a new unit test project named "StringLibraryTest" to the solution. @@ -85,7 +85,7 @@ Unit tests provide automated software testing during your development and publis 1. Start Visual Studio Code. -1. Open the `ClassLibraryProjects` solution you created in [Create a .NET class library](console-app-class-library.md). +1. Open the `ClassLibraryProjects` solution you created in [Create a .NET class library](create-class-library.md). 1. From **Solution Explorer**, select **New Project**, or from the Command Palette select **.NET: New Project**. @@ -371,7 +371,7 @@ The tests pass. ::: zone pivot="visualstudio" -If you're using Visual Studio as your IDE, you can use the same process shown in [Tutorial: Debug a .NET console application](debugging-console-app.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, right-click the **StringLibraryTests** project, and select **Debug Tests** from the context menu. +If you're using Visual Studio as your IDE, you can use the same process shown in [Tutorial: Debug a .NET console application](debug-console-app.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, right-click the **StringLibraryTests** project, and select **Debug Tests** from the context menu. Visual Studio starts the test project with the debugger attached. Execution stops at any breakpoint you've added to the test project or the underlying library code. @@ -379,7 +379,7 @@ Visual Studio starts the test project with the debugger attached. Execution stop ::: zone pivot="vscode,codespaces" -If you're using Visual Studio Code as your IDE, you can use the same process shown in [Debug a .NET console application](debugging-console-app.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, open *StringLibraryTest/UnitTest1.cs*, and select **Debug Tests in current file** between lines 7 and 8. If you're unable to find it, press Ctrl+Shift+P to open the command palette and enter **Reload Window**. +If you're using Visual Studio Code as your IDE, you can use the same process shown in [Debug a .NET console application](debug-console-app.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, open *StringLibraryTest/UnitTest1.cs*, and select **Debug Tests in current file** between lines 7 and 8. If you're unable to find it, press Ctrl+Shift+P to open the command palette and enter **Reload Window**. Visual Studio Code starts the test project with the debugger attached. Execution will stop at any breakpoint you've added to the test project or the underlying library code. @@ -423,4 +423,4 @@ If you publish a library as a NuGet package, others can install and use it. To l A library doesn't have to be distributed as a package. It can be bundled with a console app that uses it. To learn how to publish a console app, see the earlier tutorial in this series: > [!div class="nextstepaction"] -> [Publish a .NET console application](publishing-console-app.md) +> [Publish a .NET console application](publish-console-app.md) diff --git a/docs/core/tutorials/testing-with-cli.md b/docs/core/tutorials/testing-with-cli.md index 5060d50dd0de5..e2ea04e319e3e 100644 --- a/docs/core/tutorials/testing-with-cli.md +++ b/docs/core/tutorials/testing-with-cli.md @@ -7,7 +7,7 @@ ai-usage: ai-assisted # Organizing and testing projects with the .NET CLI -This tutorial follows [Tutorial: Create a .NET console application](console-app.md), taking you beyond the creation of a simple console app to develop advanced and well-organized applications. After showing you how to use folders to organize your code, the tutorial shows you how to extend a console application with the [xUnit](https://xunit.net/) testing framework. +This tutorial follows [Tutorial: Create a .NET console application](create-console-app.md), taking you beyond the creation of a simple console app to develop advanced and well-organized applications. After showing you how to use folders to organize your code, the tutorial shows you how to extend a console application with the [xUnit](https://xunit.net/) testing framework. > [!NOTE] > This tutorial recommends that you place the application project and test project in separate folders. Some developers prefer to keep these projects in the same folder. For more information, see GitHub issue [dotnet/docs #26395](https://github.com/dotnet/docs/issues/26395). diff --git a/docs/csharp/fundamentals/program-structure/main-command-line.md b/docs/csharp/fundamentals/program-structure/main-command-line.md index f575a59489787..a4c6c2400cf64 100644 --- a/docs/csharp/fundamentals/program-structure/main-command-line.md +++ b/docs/csharp/fundamentals/program-structure/main-command-line.md @@ -78,7 +78,7 @@ However, returning `int` or `Task` enables the program to communicate statu The following example shows how the exit code for the process can be accessed. -This example uses [.NET Core](../../../core/introduction.md) command-line tools. If you're unfamiliar with .NET Core command-line tools, you can learn about them in this [get-started article](../../../core/tutorials/console-app.md). +This example uses [.NET Core](../../../core/introduction.md) command-line tools. If you're unfamiliar with .NET Core command-line tools, you can learn about them in this [get-started article](../../../core/tutorials/create-console-app.md). Create a new application by running `dotnet new console`. Modify the `Main` method in *Program.cs* as follows: diff --git a/docs/fundamentals/toc.yml b/docs/fundamentals/toc.yml index 9ac06becd3b0d..ab9317486f867 100644 --- a/docs/fundamentals/toc.yml +++ b/docs/fundamentals/toc.yml @@ -98,30 +98,24 @@ items: - name: .NET 6 template changes href: ../core/tutorials/top-level-templates.md - name: Create a console app - href: ../core/tutorials/console-app.md + href: ../core/tutorials/create-console-app.md displayName: tutorials, visual studio, vs, visual studio code, vs code - name: Debug an app - href: ../core/tutorials/debugging-console-app.md + href: ../core/tutorials/debug-console-app.md displayName: tutorials, visual studio, vs, visual studio code, vs code - name: Publish an app - href: ../core/tutorials/publishing-console-app.md + href: ../core/tutorials/publish-console-app.md displayName: tutorials, visual studio, vs, visual studio code, vs code - name: Create a library - href: ../core/tutorials/console-app-class-library.md + href: ../core/tutorials/create-class-library.md displayName: tutorials, visual studio, vs, visual studio code, vs code - name: Unit test a library - href: ../core/tutorials/testing-console-app-class-library.md + href: ../core/tutorials/test-class-library.md displayName: tutorials, visual studio, vs, visual studio code, vs code - - name: Install and use a package using Visual Studio - href: /nuget/quickstart/install-and-use-a-package-in-visual-studio?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json - displayName: tutorials, visual studio, vs - - name: Create and publish a package using Visual Studio - href: /nuget/quickstart/create-and-publish-a-package-using-visual-studio?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json - displayName: tutorials, visual studio, vs - - name: Install and use a package using the .NET CLI + - name: Install and use a package href: /nuget/quickstart/install-and-use-a-package-using-the-dotnet-cli?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json displayName: tutorials, cli - - name: Create and publish a package using the .NET CLI + - name: Create and publish a package href: /nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json displayName: tutorials, cli - name: More tutorials diff --git a/docs/iot/tutorials/adc.md b/docs/iot/tutorials/adc.md index 934a53bb757d2..ddc8869af7fbb 100644 --- a/docs/iot/tutorials/adc.md +++ b/docs/iot/tutorials/adc.md @@ -60,7 +60,7 @@ Refer to the following pinout diagrams as needed: Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *AdcTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/create-console-app.md). Name it *AdcTutorial*. ```dotnetcli dotnet new console -o AdcTutorial diff --git a/docs/iot/tutorials/blink-led.md b/docs/iot/tutorials/blink-led.md index 98455be3e67f5..cee5b7249f06f 100644 --- a/docs/iot/tutorials/blink-led.md +++ b/docs/iot/tutorials/blink-led.md @@ -46,7 +46,7 @@ The image above depicts the following connections: Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *BlinkTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/create-console-app.md). Name it *BlinkTutorial*. ```dotnetcli dotnet new console -o BlinkTutorial diff --git a/docs/iot/tutorials/gpio-input.md b/docs/iot/tutorials/gpio-input.md index 09ae10c202cf0..a716c1d20230a 100644 --- a/docs/iot/tutorials/gpio-input.md +++ b/docs/iot/tutorials/gpio-input.md @@ -43,7 +43,7 @@ The image above depicts a direct connection between a ground pin and pin 21. Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *InputTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/create-console-app.md). Name it *InputTutorial*. ```dotnetcli dotnet new console -o InputTutorial diff --git a/docs/iot/tutorials/lcd-display.md b/docs/iot/tutorials/lcd-display.md index ac3452a2ed9c0..212b45dd859e3 100644 --- a/docs/iot/tutorials/lcd-display.md +++ b/docs/iot/tutorials/lcd-display.md @@ -53,7 +53,7 @@ Refer to the following figures as needed: Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *LcdTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/create-console-app.md). Name it *LcdTutorial*. ```dotnetcli dotnet new console -o LcdTutorial diff --git a/docs/iot/tutorials/temp-sensor.md b/docs/iot/tutorials/temp-sensor.md index 785d0c99ab3d7..61c64ab55d948 100644 --- a/docs/iot/tutorials/temp-sensor.md +++ b/docs/iot/tutorials/temp-sensor.md @@ -55,7 +55,7 @@ The following are the connections from the Raspberry Pi to the BME280 breakout. Complete the following steps in your preferred development environment: -1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/console-app.md). Name it *SensorTutorial*. +1. Create a new .NET Console App using either the [.NET CLI](../../core/tools/dotnet-new.md) or [Visual Studio](../../core/tutorials/create-console-app.md). Name it *SensorTutorial*. ```dotnetcli dotnet new console -o SensorTutorial diff --git a/docs/orleans/tutorials-and-samples/tutorial-1.md b/docs/orleans/tutorials-and-samples/tutorial-1.md index e8410ff5d22ad..a00588837b8ac 100644 --- a/docs/orleans/tutorials-and-samples/tutorial-1.md +++ b/docs/orleans/tutorials-and-samples/tutorial-1.md @@ -54,9 +54,9 @@ For this tutorial, create four projects as part of the same solution: Replace the default code with the code provided for each project. -1. Start by creating a Console App project in a new solution. Call the project `Silo` and name the solution `OrleansHelloWorld`. For more information on creating a console app, see [Tutorial: Create a .NET console application](../../core/tutorials/console-app.md). +1. Start by creating a Console App project in a new solution. Call the project `Silo` and name the solution `OrleansHelloWorld`. For more information on creating a console app, see [Tutorial: Create a .NET console application](../../core/tutorials/create-console-app.md). 1. Add another Console App project and name it `Client`. -1. Add a Class Library and name it `GrainInterfaces`. For information on creating a class library, see [Tutorial: Create a .NET class library](../../core/tutorials/console-app-class-library.md). +1. Add a Class Library and name it `GrainInterfaces`. For information on creating a class library, see [Tutorial: Create a .NET class library](../../core/tutorials/create-class-library.md). 1. Add another Class Library and name it `Grains`. #### Delete default source files diff --git a/docs/samples-and-tutorials/index.md b/docs/samples-and-tutorials/index.md index 501659f75a1c1..e793e563fe556 100644 --- a/docs/samples-and-tutorials/index.md +++ b/docs/samples-and-tutorials/index.md @@ -20,11 +20,11 @@ This guide shows you how to create an ASP.NET Core web app and associated unit t ### Tutorials -**[Tutorial: Create a .NET console application](../core/tutorials/console-app.md)** +**[Tutorial: Create a .NET console application](../core/tutorials/create-console-app.md)** This tutorial shows how to create and run a .NET console application using Visual Studio, Visual Studio Code, or GitHub Codespaces. -**[Tutorial: Create a .NET class library](../core/tutorials/console-app-class-library.md)** +**[Tutorial: Create a .NET class library](../core/tutorials/create-class-library.md)** This tutorial shows how to create a class library using Visual Studio, Visual Studio Code, or GitHub Codespaces. diff --git a/docs/standard/get-started.md b/docs/standard/get-started.md index 264bbeefcf4d2..3d59414e27a19 100644 --- a/docs/standard/get-started.md +++ b/docs/standard/get-started.md @@ -9,7 +9,7 @@ The following step-by-step tutorials run on Windows, Linux, or macOS, except as ## Tutorials for creating apps -* [Create a console app](../core/tutorials/console-app.md) +* [Create a console app](../core/tutorials/create-console-app.md) * Create a web app * [with server-side web UI](/aspnet/core/tutorials/razor-pages/razor-pages-start) * [with client-side web UI](https://dotnet.microsoft.com/learn/aspnet/blazor-tutorial/intro) @@ -27,7 +27,7 @@ The following step-by-step tutorials run on Windows, Linux, or macOS, except as ## Tutorials for creating class libraries -* [Create a class library](../core/tutorials/console-app-class-library.md) +* [Create a class library](../core/tutorials/create-class-library.md) ## Resources for learning .NET languages diff --git a/docs/standard/net-standard.md b/docs/standard/net-standard.md index 4c627a1c699c5..682f6098c96a9 100644 --- a/docs/standard/net-standard.md +++ b/docs/standard/net-standard.md @@ -149,5 +149,5 @@ Here are some problems with .NET Standard that help explain why .NET 5 and later - [.NET Standard versions (source)](https://github.com/dotnet/standard/blob/v2.1.0/docs/versions.md) - [.NET Standard versions (interactive UI)](https://dotnet.microsoft.com/platform/dotnet-standard#versions) -- [Build a .NET Standard library](../core/tutorials/console-app-class-library.md) +- [Build a .NET Standard library](../core/tutorials/create-class-library.md) - [Cross-platform targeting](./library-guidance/cross-platform-targeting.md) diff --git a/docs/visual-basic/getting-started/index.md b/docs/visual-basic/getting-started/index.md index 88edc4d78310b..813a2a855259d 100644 --- a/docs/visual-basic/getting-started/index.md +++ b/docs/visual-basic/getting-started/index.md @@ -13,9 +13,9 @@ This section of the documentation helps you get started with Visual Basic applic ## Get started with Visual Basic and .NET Core -[Build a Hello World application with .NET](../../core/tutorials/console-app.md) +[Build a Hello World application with .NET](../../core/tutorials/create-console-app.md) -[Build a class library with .NET](../../core/tutorials/console-app-class-library.md) +[Build a class library with .NET](../../core/tutorials/create-class-library.md) ## Additional information From 0f7e2dec9e32a2347caea049cccc01eb3a81ae02 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Tue, 17 Feb 2026 14:43:08 -0800 Subject: [PATCH 05/12] fix another broken link --- docs/core/tutorials/index.md | 4 ++-- docs/fundamentals/index.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/core/tutorials/index.md b/docs/core/tutorials/index.md index df424b98dbc61..16ba9a5943e33 100644 --- a/docs/core/tutorials/index.md +++ b/docs/core/tutorials/index.md @@ -19,8 +19,8 @@ These tutorials support Visual Studio, Visual Studio Code, and GitHub Codespaces - [Publish an app](publish-console-app.md) - [Create a class library](create-class-library.md) - [Unit test a class library](test-class-library.md) -- [Install and use a package](/nuget/quickstart/install-and-use-a-package-in-visual-studio) -- [Create and publish a package](/nuget/quickstart/create-and-publish-a-package-using-visual-studio) +- [Install and use a package](/nuget/quickstart/install-and-use-a-package-using-the-dotnet-cli) +- [Create and publish a package](/nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli) ## F# tutorials diff --git a/docs/fundamentals/index.yml b/docs/fundamentals/index.yml index b4ec5dd2a461d..bd92ebcbee989 100644 --- a/docs/fundamentals/index.yml +++ b/docs/fundamentals/index.yml @@ -90,7 +90,7 @@ landingContent: - linkListType: tutorial links: - text: Create a Hello World app - url: ../core/tutorials/console-app.md + url: ../core/tutorials/create-console-app.md - text: Containerize a .NET Core app url: ../core/docker/build-container.md - linkListType: concept From 7eab4172278378a8615c38891db55d148d594db4 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Wed, 18 Feb 2026 09:17:55 -0800 Subject: [PATCH 06/12] change wording to file-based app --- docs/core/tutorials/create-console-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/tutorials/create-console-app.md b/docs/core/tutorials/create-console-app.md index 46ff67780e61b..0fdcdb69f47d8 100644 --- a/docs/core/tutorials/create-console-app.md +++ b/docs/core/tutorials/create-console-app.md @@ -47,7 +47,7 @@ In this tutorial, you: > [!div class="checklist"] > > * Launch a GitHub Codespace with a C# development environment. -> * Create a "HelloWorld" .NET single-file app. +> * Create a "HelloWorld" .NET file-based app. > * Enhance the app to prompt the user for their name and display it in the console window. ::: zone-end From 7b9435004c15100dee60c37bb9d56e548e9d6bea Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Wed, 18 Feb 2026 09:37:19 -0800 Subject: [PATCH 07/12] fix formatting and update tutorial links in documentation --- docs/core/tutorials/test-class-library.md | 2 +- docs/fundamentals/toc.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/core/tutorials/test-class-library.md b/docs/core/tutorials/test-class-library.md index 3320a861154ba..e116fa02fd10e 100644 --- a/docs/core/tutorials/test-class-library.md +++ b/docs/core/tutorials/test-class-library.md @@ -242,7 +242,7 @@ To create the test methods: 1. Save your changes. -## Build and Run your Tests +## Build and run your tests 1. In **Solution Explorer**, right-click the solution and select **Build** or from the Command Palette, select **.NET: Build**. diff --git a/docs/fundamentals/toc.yml b/docs/fundamentals/toc.yml index ab9317486f867..d10db20899e78 100644 --- a/docs/fundamentals/toc.yml +++ b/docs/fundamentals/toc.yml @@ -95,8 +95,6 @@ items: href: ../standard/glossary.md - name: Tutorials items: - - name: .NET 6 template changes - href: ../core/tutorials/top-level-templates.md - name: Create a console app href: ../core/tutorials/create-console-app.md displayName: tutorials, visual studio, vs, visual studio code, vs code @@ -118,6 +116,8 @@ items: - name: Create and publish a package href: /nuget/quickstart/create-and-publish-a-package-using-the-dotnet-cli?toc=/dotnet/fundamentals/toc.json&bc=/dotnet/breadcrumb/toc.json displayName: tutorials, cli + - name: .NET 6 template changes + href: ../core/tutorials/top-level-templates.md - name: More tutorials href: ../core/tutorials/index.md - name: What's new in .NET From ea6a8a77e945f1cf86dfeb9f7e4a9606ac07a191 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Wed, 18 Feb 2026 16:34:30 -0800 Subject: [PATCH 08/12] rename snippet and media folders --- docs/core/tutorials/create-class-library.md | 34 +++++----- docs/core/tutorials/create-console-app.md | 30 ++++----- docs/core/tutorials/debug-console-app.md | 46 ++++++------- .../add-reference-context-menu.png | Bin 0 -> 22227 bytes .../create-class-library/blank-solution.png | Bin 0 -> 42761 bytes .../manage-project-references.png | Bin 0 -> 17935 bytes .../run-showcase.png | Bin .../set-startup-project-context-menu.png | Bin 0 -> 28905 bytes .../vb/library-project-properties.png | Bin 0 -> 55397 bytes .../additional-information.png | Bin .../codespaces-create-new-file.png | Bin .../configure-new-project.png | Bin .../create-codespace-on-main.png | Bin .../create-dotnet-project.png | Bin .../create-new-project.png | Bin .../hello-world-update.png | Bin .../run-program-class.png | Bin .../start-window.png | Bin .../breakpoint-context-menu.png | Bin .../breakpoint-hit.png | Bin .../breakpoint-set.png | Bin .../breakpoint-settings.png | Bin .../change-variable-values.png | Bin .../changed-variable-values.png | Bin .../codespaces-breakpoint-hit.png | Bin .../codespaces-breakpoint-set.png | Bin .../codespaces-changed-variable-values.png | Bin .../codespaces-select-debug-pane.png | Bin .../conditional-expression.png | Bin .../continue-debugging.png | Bin .../immediate-window-output.png | Bin .../locals-immediate-window.png | Bin .../run-modified-program.png | Bin .../select-debug-console.png | Bin .../select-debug-pane.png | Bin .../set-breakpoint.png | Bin .../start-debugging.png | Bin .../step-into-method.png | Bin .../step-into.png | Bin .../step-out.png | Bin .../use-debug-configuration.png | Bin .../use-release-configuration.png | Bin .../breakpoint-hit.png | Bin 115488 -> 0 bytes .../add-reference-context-menu.png | Bin 19529 -> 0 bytes .../blank-solution.png | Bin 42032 -> 0 bytes .../manage-project-references.png | Bin 18639 -> 0 bytes .../set-startup-project-context-menu.png | Bin 29281 -> 0 bytes .../vb/library-project-properties.png | Bin 58055 -> 0 bytes .../codespaces-published-files-output.png | Bin .../open-in-terminal.png | Bin .../pick-publish-target.png | Bin .../pick-specific-publish-target.png | Bin .../publish-context-menu.png | Bin .../publish-page-loc-tab.png | Bin .../publish-page.png | Bin .../published-files-output-visual-studio.png} | Bin .../published-files-output.png | Bin .../show-all-files.png | Bin .../use-release-configuration.png | Bin .../FailedTest.png | Bin .../TestingScreenshot.png | Bin ...-project-reference-string-library-test.png | Bin .../additional-information-mstest.png | Bin .../failed-test-detail.png | Bin .../failed-test-window.png | Bin .../test-explorer-window.png | Bin docs/core/tutorials/publish-console-app.md | 22 +++---- .../csharp/ShowCase/Program.cs | 30 +++++++++ .../csharp/ShowCase/ShowCase.csproj | 0 .../csharp/StringLibrary/Class1.cs | 0 .../csharp/StringLibrary/StringLibrary.csproj | 0 .../StringLibraryTest/MSTestSettings.cs | 0 .../StringLibraryTest.csproj | 0 .../csharp/StringLibraryTest/Test1.cs | 0 .../vb/ShowCase/Program.vb | 0 .../vb/ShowCase/ShowCase.vbproj | 0 .../vb/StringLibrary/Class1.vb | 0 .../vb/StringLibrary/StringLibrary.vbproj | 0 .../StringLibraryTest.vbproj | 0 .../vb/StringLibraryTest/UnitTest1.vb | 0 .../csharp/HelloWorld.cs | 0 .../csharp/HelloWorld.csproj | 0 .../csharp/Program-Read.cs | 0 .../csharp/Program.cs | 0 .../vb/HelloWorld.vbproj | 0 .../vb/Program.vb | 0 .../csharp/ClassLibraryProjects.sln | 62 ------------------ .../csharp/ShowCase/Program.cs | 36 ---------- .../vb/ClassLibraryProjects.sln | 37 ----------- docs/core/tutorials/test-class-library.md | 39 +++++------ 90 files changed, 116 insertions(+), 220 deletions(-) create mode 100644 docs/core/tutorials/media/create-class-library/add-reference-context-menu.png create mode 100644 docs/core/tutorials/media/create-class-library/blank-solution.png create mode 100644 docs/core/tutorials/media/create-class-library/manage-project-references.png rename docs/core/tutorials/media/{library-with-visual-studio => create-class-library}/run-showcase.png (100%) create mode 100644 docs/core/tutorials/media/create-class-library/set-startup-project-context-menu.png create mode 100644 docs/core/tutorials/media/create-class-library/vb/library-project-properties.png rename docs/core/tutorials/media/{with-visual-studio => create-console-app}/additional-information.png (100%) rename docs/core/tutorials/media/{with-visual-studio-code => create-console-app}/codespaces-create-new-file.png (100%) rename docs/core/tutorials/media/{with-visual-studio => create-console-app}/configure-new-project.png (100%) rename docs/core/tutorials/media/{with-visual-studio-code => create-console-app}/create-codespace-on-main.png (100%) rename docs/core/tutorials/media/{with-visual-studio-code => create-console-app}/create-dotnet-project.png (100%) rename docs/core/tutorials/media/{with-visual-studio => create-console-app}/create-new-project.png (100%) rename docs/core/tutorials/media/{with-visual-studio => create-console-app}/hello-world-update.png (100%) rename docs/core/tutorials/media/{with-visual-studio-code => create-console-app}/run-program-class.png (100%) rename docs/core/tutorials/media/{with-visual-studio => create-console-app}/start-window.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/breakpoint-context-menu.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio => debug-console-app}/breakpoint-hit.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/breakpoint-set.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio => debug-console-app}/breakpoint-settings.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/change-variable-values.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/changed-variable-values.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/codespaces-breakpoint-hit.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/codespaces-breakpoint-set.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/codespaces-changed-variable-values.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/codespaces-select-debug-pane.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/conditional-expression.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/continue-debugging.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio => debug-console-app}/immediate-window-output.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio => debug-console-app}/locals-immediate-window.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/run-modified-program.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/select-debug-console.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/select-debug-pane.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio => debug-console-app}/set-breakpoint.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/start-debugging.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio => debug-console-app}/step-into-method.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/step-into.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio-code => debug-console-app}/step-out.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio => debug-console-app}/use-debug-configuration.png (100%) rename docs/core/tutorials/media/{debugging-with-visual-studio => debug-console-app}/use-release-configuration.png (100%) delete mode 100644 docs/core/tutorials/media/debugging-with-visual-studio-code/breakpoint-hit.png delete mode 100644 docs/core/tutorials/media/library-with-visual-studio/add-reference-context-menu.png delete mode 100644 docs/core/tutorials/media/library-with-visual-studio/blank-solution.png delete mode 100644 docs/core/tutorials/media/library-with-visual-studio/manage-project-references.png delete mode 100644 docs/core/tutorials/media/library-with-visual-studio/set-startup-project-context-menu.png delete mode 100644 docs/core/tutorials/media/library-with-visual-studio/vb/library-project-properties.png rename docs/core/tutorials/media/{publishing-with-visual-studio-code => publish-console-app}/codespaces-published-files-output.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio-code => publish-console-app}/open-in-terminal.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio => publish-console-app}/pick-publish-target.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio => publish-console-app}/pick-specific-publish-target.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio => publish-console-app}/publish-context-menu.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio => publish-console-app}/publish-page-loc-tab.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio => publish-console-app}/publish-page.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio/published-files-output.png => publish-console-app/published-files-output-visual-studio.png} (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio-code => publish-console-app}/published-files-output.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio => publish-console-app}/show-all-files.png (100%) rename docs/core/tutorials/media/{publishing-with-visual-studio => publish-console-app}/use-release-configuration.png (100%) rename docs/core/tutorials/media/{testing-library-with-visual-studio-code => test-class-library}/FailedTest.png (100%) rename docs/core/tutorials/media/{testing-library-with-visual-studio-code => test-class-library}/TestingScreenshot.png (100%) rename docs/core/tutorials/media/{testing-library-with-visual-studio => test-class-library}/add-project-reference-string-library-test.png (100%) rename docs/core/tutorials/media/{testing-library-with-visual-studio => test-class-library}/additional-information-mstest.png (100%) rename docs/core/tutorials/media/{testing-library-with-visual-studio => test-class-library}/failed-test-detail.png (100%) rename docs/core/tutorials/media/{testing-library-with-visual-studio => test-class-library}/failed-test-window.png (100%) rename docs/core/tutorials/media/{testing-library-with-visual-studio => test-class-library}/test-explorer-window.png (100%) create mode 100644 docs/core/tutorials/snippets/create-class-library/csharp/ShowCase/Program.cs rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/csharp/ShowCase/ShowCase.csproj (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/csharp/StringLibrary/Class1.cs (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/csharp/StringLibrary/StringLibrary.csproj (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/csharp/StringLibraryTest/MSTestSettings.cs (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/csharp/StringLibraryTest/StringLibraryTest.csproj (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/csharp/StringLibraryTest/Test1.cs (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/vb/ShowCase/Program.vb (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/vb/ShowCase/ShowCase.vbproj (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/vb/StringLibrary/Class1.vb (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/vb/StringLibrary/StringLibrary.vbproj (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/vb/StringLibraryTest/StringLibraryTest.vbproj (100%) rename docs/core/tutorials/snippets/{library-with-visual-studio => create-class-library}/vb/StringLibraryTest/UnitTest1.vb (100%) rename docs/core/tutorials/snippets/{with-visual-studio-code => create-console-app}/csharp/HelloWorld.cs (100%) rename docs/core/tutorials/snippets/{with-visual-studio => create-console-app}/csharp/HelloWorld.csproj (100%) rename docs/core/tutorials/snippets/{with-visual-studio => create-console-app}/csharp/Program-Read.cs (100%) rename docs/core/tutorials/snippets/{with-visual-studio => create-console-app}/csharp/Program.cs (100%) rename docs/core/tutorials/snippets/{with-visual-studio => create-console-app}/vb/HelloWorld.vbproj (100%) rename docs/core/tutorials/snippets/{with-visual-studio => create-console-app}/vb/Program.vb (100%) delete mode 100644 docs/core/tutorials/snippets/library-with-visual-studio/csharp/ClassLibraryProjects.sln delete mode 100644 docs/core/tutorials/snippets/library-with-visual-studio/csharp/ShowCase/Program.cs delete mode 100644 docs/core/tutorials/snippets/library-with-visual-studio/vb/ClassLibraryProjects.sln diff --git a/docs/core/tutorials/create-class-library.md b/docs/core/tutorials/create-class-library.md index 6ab6da30154b7..9b537ea9f55b9 100644 --- a/docs/core/tutorials/create-class-library.md +++ b/docs/core/tutorials/create-class-library.md @@ -20,7 +20,7 @@ When you create a class library, you can distribute it as a third-party componen ::: zone pivot="visualstudio" -- [Visual Studio 2026 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=inline+link) with the **.NET desktop development** workload installed. The .NET SDK is automatically installed when you select this workload. +- [Visual Studio](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=inline+link) with the **.NET desktop development** workload installed. The .NET SDK is automatically installed when you select this workload. For more information, see [Install the .NET SDK with Visual Studio](../install/windows.md#install-with-visual-studio). @@ -52,7 +52,7 @@ To create the blank solution: 1. On the **Create a new project** page, enter **solution** in the search box. Choose the **Blank Solution** template, and then choose **Next**. - :::image type="content" source="media/library-with-visual-studio/blank-solution.png" alt-text="Blank solution template in Visual Studio"::: + :::image type="content" source="media/create-class-library/blank-solution.png" alt-text="Blank solution template in Visual Studio"::: 1. On the **Configure your new project** page, enter **ClassLibraryProjects** in the **Solution name** box. Then choose **Create**. @@ -126,14 +126,14 @@ Start by creating a GitHub Codespace with the tutorial environment, then create 1. If you're using Visual Basic, clear the text in the **Default namespace** text box. - :::image type="content" source="./media/library-with-visual-studio/vb/library-project-properties.png" alt-text="Project properties for the class library"::: + :::image type="content" source="./media/create-class-library/vb/library-project-properties.png" alt-text="Project properties for the class library"::: For each project, Visual Basic automatically creates a namespace that corresponds to the project name. In this tutorial, you define a top-level namespace by using the [`namespace`](../../visual-basic/language-reference/statements/namespace-statement.md) keyword in the code file. 1. Replace the code in the code window for *Class1.cs* or *Class1.vb* with the following code, and save the file. If the language you want to use isn't shown, change the language selector at the top of the page. - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs"::: - :::code language="vb" source="./snippets/library-with-visual-studio/vb/StringLibrary/Class1.vb"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/StringLibrary/Class1.cs"::: + :::code language="vb" source="./snippets/create-class-library/vb/StringLibrary/Class1.vb"::: The class library, `UtilityLibraries.StringLibrary`, contains a method named `StartsWithUpper`. This method returns a value that indicates whether the current string instance begins with an uppercase character. The Unicode standard distinguishes uppercase characters from lowercase characters. The method returns `true` if a character is uppercase. @@ -149,7 +149,7 @@ Start by creating a GitHub Codespace with the tutorial environment, then create 1. Replace the contents of *Class1.cs* with the following code: - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/StringLibrary/Class1.cs"::: The class library, `UtilityLibraries.StringLibrary`, contains a method named `StartsWithUpper`. This method returns a value that indicates whether the current string instance begins with an uppercase character. The Unicode standard distinguishes uppercase characters from lowercase characters. The method returns `true` if a character is uppercase. @@ -185,7 +185,7 @@ Start by creating a GitHub Codespace with the tutorial environment, then create 1. Open *Class1.cs* and replace its contents with the following code: - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/StringLibrary/Class1.cs"::: The class library, `UtilityLibraries.StringLibrary`, contains a method named `StartsWithUpper`. This method returns a value that indicates whether the current string instance begins with an uppercase character. The Unicode standard distinguishes uppercase characters from lowercase characters. The method returns `true` if a character is uppercase. @@ -209,11 +209,11 @@ Add a console application that uses the class library. The app will prompt the u 1. Add a new .NET console application named **ShowCase** to the solution. - 1. Right-click on the solution in **Solution Explorer** and select **Add** > **New project**. + 1. Right-click on the solution in **Solution Explorer** and select **Add** > **New Project**. 1. On the **Add a new project** page, enter **console** in the search box. Choose **C#** or **Visual Basic** from the Language list, and then choose **All platforms** from the Platform list. - 1. Choose the **Console Application** template, and then choose **Next**. + 1. Choose the **Console App** template, and then choose **Next**. 1. On the **Configure your new project** page, enter **ShowCase** in the **Project name** box. Then choose **Next**. @@ -221,8 +221,8 @@ Add a console application that uses the class library. The app will prompt the u 1. In the code window for the *Program.cs* or *Program.vb* file, replace all of the code with the following code. - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/ShowCase/Program.cs"::: - :::code language="vb" source="./snippets/library-with-visual-studio/vb/ShowCase/Program.vb"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/ShowCase/Program.cs"::: + :::code language="vb" source="./snippets/create-class-library/vb/ShowCase/Program.vb"::: The code uses the `row` variable to maintain a count of the number of rows of data written to the console window. Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user. @@ -240,7 +240,7 @@ Add a console application that uses the class library. The app will prompt the u 1. Open *ShowCase/Program.cs* and replace all of the code with the following code. - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/ShowCase/Program.cs"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/ShowCase/Program.cs"::: The code uses the `row` variable to maintain a count of the number of rows of data written to the console window. Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user. @@ -261,7 +261,7 @@ Add a console application that uses the class library. The app will prompt the u 1. Open *ShowCase/Program.cs* and replace all of the code with the following code: - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/ShowCase/Program.cs"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/ShowCase/Program.cs"::: The code uses the `row` variable to maintain a count of the number of rows of data written to the console window. Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user. @@ -279,11 +279,11 @@ Initially, the new console app project doesn't have access to the class library. 1. In **Solution Explorer**, right-click the `ShowCase` project's **Dependencies** node, and select **Add Project Reference**. - :::image type="content" source="media/library-with-visual-studio/add-reference-context-menu.png" alt-text="Add reference context menu in Visual Studio"::: + :::image type="content" source="media/create-class-library/add-reference-context-menu.png" alt-text="Add reference context menu in Visual Studio"::: 1. In the **Reference Manager** dialog, select the **StringLibrary** project, and select **OK**. - :::image type="content" source="media/library-with-visual-studio/manage-project-references.png" alt-text="Reference Manager dialog with StringLibrary selected"::: + :::image type="content" source="media/create-class-library/manage-project-references.png" alt-text="Reference Manager dialog with StringLibrary selected"::: ::: zone-end @@ -321,13 +321,13 @@ dotnet add reference ../StringLibrary/StringLibrary.csproj 1. In **Solution Explorer**, right-click the **ShowCase** project and select **Set as StartUp Project** in the context menu. - :::image type="content" source="media/library-with-visual-studio/set-startup-project-context-menu.png" alt-text="Visual Studio project context menu to set startup project"::: + :::image type="content" source="media/create-class-library/set-startup-project-context-menu.png" alt-text="Visual Studio project context menu to set startup project"::: 1. Press Ctrl+F5 to compile and run the program without debugging. 1. Try out the program by entering strings and pressing Enter, then press Enter to exit. - :::image type="content" source="media/library-with-visual-studio/run-showcase.png" alt-text="Console window with ShowCase running"::: + :::image type="content" source="media/create-class-library/run-showcase.png" alt-text="Console window with ShowCase running"::: ::: zone-end diff --git a/docs/core/tutorials/create-console-app.md b/docs/core/tutorials/create-console-app.md index 0fdcdb69f47d8..885c03ea871a3 100644 --- a/docs/core/tutorials/create-console-app.md +++ b/docs/core/tutorials/create-console-app.md @@ -56,7 +56,7 @@ In this tutorial, you: ::: zone pivot="visualstudio" -- [Visual Studio 2026 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=inline+link) with the **.NET desktop development** workload installed. The .NET SDK is automatically installed when you select this workload. +- [Visual Studio](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=inline+link) with the **.NET desktop development** workload installed. The .NET SDK is automatically installed when you select this workload. For more information, see [Install the .NET SDK with Visual Studio](../install/windows.md#install-with-visual-studio). @@ -84,24 +84,24 @@ Create a .NET console app project named "HelloWorld". 1. On the start page, choose **Create a new project**. - :::image type="content" source="./media/with-visual-studio/start-window.png" alt-text="Create a new project button selected on the Visual Studio start page"::: + :::image type="content" source="./media/create-console-app/start-window.png" alt-text="Create a new project button selected on the Visual Studio start page"::: 1. On the **Create a new project** page, enter **console** in the search box. Next, choose **C#** or **Visual Basic** from the language list, and then choose **All platforms** from the platform list. Choose the **Console App** template, and then choose **Next**. - :::image type="content" source="./media/with-visual-studio/create-new-project.png" alt-text="Create a new project window with filters selected"::: + :::image type="content" source="./media/create-console-app/create-new-project.png" alt-text="Create a new project window with filters selected"::: > [!TIP] > If you don't see the .NET templates, you're probably missing the required workload. Under the **Not finding what you're looking for?** message, choose the **Install more tools and features** link. The Visual Studio Installer opens. Make sure you have the **.NET desktop development** workload installed. 1. In the **Configure your new project** dialog, enter **HelloWorld** in the **Project name** box. Then choose **Next**. - :::image type="content" source="./media/with-visual-studio/configure-new-project.png" alt-text="Configure your new project window with Project name, location, and solution name fields"::: + :::image type="content" source="./media/create-console-app/configure-new-project.png" alt-text="Configure your new project window with Project name, location, and solution name fields"::: 1. In the **Additional information** dialog: - Select **.NET 10.0 (Long Term Support)**. - Select **Create**. - :::image type="content" source="./media/with-visual-studio/additional-information.png" alt-text="Enter additional information for the console app."::: + :::image type="content" source="./media/create-console-app/additional-information.png" alt-text="Enter additional information for the console app."::: The template creates a simple application that displays "Hello, World!" in the console window. The code is in the *Program.cs* or *Program.vb* file: @@ -134,7 +134,7 @@ Create a .NET console app project named "HelloWorld". 1. Go to the Explorer view and select **Create .NET Project**. Alternatively, you can bring up the Command Palette using Ctrl+Shift+P (Command+Shift+P on MacOS) and then type ".NET" and find and select the .NET: New Project command. - :::image type="content" source="media/with-visual-studio-code/create-dotnet-project.png" alt-text="The .NET: New Project command in the Command Palette"::: + :::image type="content" source="media/create-console-app/create-dotnet-project.png" alt-text="The .NET: New Project command in the Command Palette"::: 1. After selecting the command, you need to choose the project template. Choose **Console App**. @@ -169,7 +169,7 @@ Start a GitHub Codespace with the tutorial environment. 1. Select the `+` sign or the green **Create codespace on main** button to create a new Codespace using this environment. - :::image type="content" source="media/with-visual-studio-code/create-codespace-on-main.png" alt-text="Create a new Codespace from the tutorial repository"::: + :::image type="content" source="media/create-console-app/create-codespace-on-main.png" alt-text="Create a new Codespace from the tutorial repository"::: ### Create a .NET file-based app @@ -177,11 +177,11 @@ In Codespaces, you'll create a [file-based app](../sdk/file-based-apps.md). File 1. When your codespace loads, right-click on the *tutorials* folder and select **New File...**. Enter the name *HelloWorld.cs* and then press Enter. - :::image type="content" source="media/with-visual-studio-code/codespaces-create-new-file.png" alt-text="Create a new file named HelloWorld.cs in the tutorials folder"::: + :::image type="content" source="media/create-console-app/codespaces-create-new-file.png" alt-text="Create a new file named HelloWorld.cs in the tutorials folder"::: 1. *HelloWorld.cs* opens in the editor. Type or copy the following code into the file: - :::code language="csharp" source="./snippets/with-visual-studio-code/csharp/HelloWorld.cs" id="HelloWorld"::: + :::code language="csharp" source="./snippets/create-console-app/csharp/HelloWorld.cs" id="HelloWorld"::: ::: zone-end @@ -228,8 +228,8 @@ Enhance the application to prompt the user for their name and display it along w 1. In *Program.cs* or *Program.vb*, replace the contents with the following code: - :::code language="csharp" source="./snippets/with-visual-studio/csharp/Program.cs" id="MainMethod"::: - :::code language="vb" source="./snippets/with-visual-studio/vb/Program.vb" id="MainMethod"::: + :::code language="csharp" source="./snippets/create-console-app/csharp/Program.cs" id="MainMethod"::: + :::code language="vb" source="./snippets/create-console-app/vb/Program.vb" id="MainMethod"::: This code displays a prompt in the console window and waits until the user enters a string followed by the Enter key. It stores this string in a variable named `name`. It also retrieves the value of the property, which contains the current local time, and assigns it to a variable named `currentDate`. And it displays these values in the console window. Finally, it displays a prompt in the console window and calls the method to wait for user input. @@ -241,7 +241,7 @@ Enhance the application to prompt the user for their name and display it along w 1. Respond to the prompt by entering a name and pressing the Enter key. - :::image type="content" source="./media/with-visual-studio/hello-world-update.png" alt-text="Console window with modified program output"::: + :::image type="content" source="./media/create-console-app/hello-world-update.png" alt-text="Console window with modified program output"::: 1. Press any key to close the console window. @@ -253,7 +253,7 @@ Enhance the application to prompt the user for their name and display it along w 1. Replace the contents of the class with the following code: - :::code language="csharp" source="./snippets/with-visual-studio/csharp/Program-Read.cs" id="MainMethod"::: + :::code language="csharp" source="./snippets/create-console-app/csharp/Program-Read.cs" id="MainMethod"::: This code displays a prompt in the console window and waits until the user enters a string followed by the Enter key. It stores this string in a variable named `name`. It also retrieves the value of the property, which contains the current local time, and assigns it to a variable named `currentDate`. And it displays these values in the console window. Finally, it displays a prompt in the console window and calls the method to wait for user input. @@ -270,7 +270,7 @@ Enhance the application to prompt the user for their name and display it along w 1. Respond to the prompt by entering a name and pressing the Enter key. - :::image type="content" source="media/with-visual-studio-code/run-program-class.png" alt-text="Terminal window with modified program output"::: + :::image type="content" source="media/create-console-app/run-program-class.png" alt-text="Terminal window with modified program output"::: Press Enter to exit the program. @@ -280,7 +280,7 @@ Enhance the application to prompt the user for their name and display it along w 1. Update *HelloWorld.cs* with the following code: - :::code language="csharp" source="./snippets/with-visual-studio-code/csharp/HelloWorld.cs" id="MainMethod"::: + :::code language="csharp" source="./snippets/create-console-app/csharp/HelloWorld.cs" id="MainMethod"::: This code displays a prompt in the console window and waits until the user enters a string followed by the Enter key. It stores this string in a variable named `name`. It also retrieves the value of the property, which contains the current local time, and assigns it to a variable named `currentDate`. And it displays these values in the console window. Finally, it displays a prompt in the console window and calls the method to wait for user input. diff --git a/docs/core/tutorials/debug-console-app.md b/docs/core/tutorials/debug-console-app.md index 439b548153944..284723aafba59 100644 --- a/docs/core/tutorials/debug-console-app.md +++ b/docs/core/tutorials/debug-console-app.md @@ -51,7 +51,7 @@ By default, Visual Studio uses the Debug build configuration, so you don't need The current build configuration is shown on the toolbar. The following toolbar image shows that Visual Studio is configured to compile the Debug version of the app: - :::image type="content" source="./media/debugging-with-visual-studio/use-debug-configuration.png" alt-text="Visual Studio toolbar with debug highlighted"::: + :::image type="content" source="./media/debug-console-app/use-debug-configuration.png" alt-text="Visual Studio toolbar with debug highlighted"::: ::: zone-end @@ -65,7 +65,7 @@ A *breakpoint* temporarily interrupts the execution of the application before th As the following image shows, Visual Studio indicates the line on which the breakpoint is set by highlighting it and displaying a red dot in the left margin. - :::image type="content" source="./media/debugging-with-visual-studio/set-breakpoint.png" alt-text="Visual Studio Program window with breakpoint set"::: + :::image type="content" source="./media/debug-console-app/set-breakpoint.png" alt-text="Visual Studio Program window with breakpoint set"::: 1. Press F5 to run the program in Debug mode. Another way to start debugging is by choosing **Debug** > **Start Debugging** from the menu. @@ -73,7 +73,7 @@ A *breakpoint* temporarily interrupts the execution of the application before th 1. Program execution stops when it reaches the breakpoint and before the `Console.WriteLine` method executes. The **Locals** window displays the values of variables that are defined in the currently executing method. - :::image type="content" source="./media/debugging-with-visual-studio/breakpoint-hit.png" alt-text="Screenshot of a breakpoint in Visual Studio"::: + :::image type="content" source="./media/debug-console-app/breakpoint-hit.png" alt-text="Screenshot of a breakpoint in Visual Studio"::: ::: zone-end @@ -89,7 +89,7 @@ A *breakpoint* temporarily interrupts the execution of the application before th Visual Studio Code indicates the line on which the breakpoint is set by displaying a red dot in the left margin. - :::image type="content" source="media/debugging-with-visual-studio-code/breakpoint-set.png" alt-text="Breakpoint set"::: + :::image type="content" source="media/debug-console-app/breakpoint-set.png" alt-text="Breakpoint set"::: ::: zone-end @@ -101,7 +101,7 @@ A *breakpoint* temporarily interrupts the execution of the application before th 1. Set a *breakpoint* on the line that displays the name, date, and time, by clicking in the left margin of the code window. The left margin is to the left of the line numbers. You can also set a breakpoint are by pressing F9 while the line of code is selected. - :::image type="content" source="media/debugging-with-visual-studio-code/codespaces-breakpoint-set.png" alt-text="Breakpoint set"::: + :::image type="content" source="media/debug-console-app/codespaces-breakpoint-set.png" alt-text="Breakpoint set"::: ::: zone-end @@ -121,23 +121,23 @@ By default, Visual Studio Code launch settings use the Debug build configuration 1. Open the Debug view by selecting the Debugging icon on the left side menu. - :::image type="content" source="media/debugging-with-visual-studio-code/select-debug-pane.png" alt-text="Open the Debug tab in Visual Studio Code"::: + :::image type="content" source="media/debug-console-app/select-debug-pane.png" alt-text="Open the Debug tab in Visual Studio Code"::: 1. Select **Run and Debug**. If asked, select **C#** and then select **C#: Launch startup project**. Other ways to start the program in debugging mode are by pressing F5 or choosing **Run** > **Start Debugging** from the menu. - :::image type="content" source="media/debugging-with-visual-studio-code/start-debugging.png" alt-text="Start debugging"::: + :::image type="content" source="media/debug-console-app/start-debugging.png" alt-text="Start debugging"::: 1. If asked to **Select Launch Configuration**, select **C#: Debug Active File**. 1. Select the **Debug Console** tab to see the "What is your name?" prompt that the program displays before waiting for a response. - :::image type="content" source="media/debugging-with-visual-studio-code/select-debug-console.png" alt-text="Select the Debug Console tab"::: + :::image type="content" source="media/debug-console-app/select-debug-console.png" alt-text="Select the Debug Console tab"::: 1. Enter a string in the **Debug Console** window in response to the prompt for a name, and then press Enter. Program execution stops when it reaches the breakpoint and before the `Console.WriteLine` method runs. The **Locals** section of the **Variables** window displays the values of variables that are defined in the currently running method. - :::image type="content" source="media/debugging-with-visual-studio-code/breakpoint-hit.png" alt-text="Breakpoint hit, showing Locals"::: + :::image type="content" source="media/debug-console-app/breakpoint-hit.png" alt-text="Breakpoint hit, showing Locals"::: ::: zone-end @@ -147,7 +147,7 @@ By default, GitHub Codespaces uses the Debug build configuration, so you don't n 1. Open the Debug view by selecting the Debugging icon on the left side menu. - :::image type="content" source="media/debugging-with-visual-studio-code/codespaces-select-debug-pane.png" alt-text="Open the Debug tab in Visual Studio Code"::: + :::image type="content" source="media/debug-console-app/codespaces-select-debug-pane.png" alt-text="Open the Debug tab in Visual Studio Code"::: 1. Select **Run and Debug**. If asked, select **C#** as the debugger and then select **C#: Debug Active File** as the Launch Configuration. @@ -157,7 +157,7 @@ By default, GitHub Codespaces uses the Debug build configuration, so you don't n Program execution stops when it reaches the breakpoint and before the `Console.WriteLine` method runs. The **Locals** section of the **Variables** window displays the values of variables that are defined in the currently running method. - :::image type="content" source="media/debugging-with-visual-studio-code/codespaces-breakpoint-hit.png" alt-text="Breakpoint hit, showing Locals"::: + :::image type="content" source="media/debug-console-app/codespaces-breakpoint-hit.png" alt-text="Breakpoint hit, showing Locals"::: ::: zone-end @@ -175,7 +175,7 @@ The **Immediate** window lets you interact with the application you're debugging The **Immediate** window displays the value of the string variable and the properties of the value. In addition, the values of the variables are updated in the **Locals** window. - :::image type="content" source="./media/debugging-with-visual-studio/locals-immediate-window.png" alt-text="Locals and Immediate Windows in Visual Studio"::: + :::image type="content" source="./media/debug-console-app/locals-immediate-window.png" alt-text="Locals and Immediate Windows in Visual Studio"::: 1. Press F5 to continue program execution. Another way to continue is by choosing **Debug** > **Continue** from the menu. @@ -195,7 +195,7 @@ The **Debug Console** window lets you interact with the application you're debug 1. Enter `name = "Gracie"` at the prompt at the bottom of the **Debug Console** window and press Enter. - :::image type="content" source="media/debugging-with-visual-studio-code/change-variable-values.png" alt-text="Change variable values"::: + :::image type="content" source="media/debug-console-app/change-variable-values.png" alt-text="Change variable values"::: 1. Enter `currentDate = DateTime.Parse("2026-01-28T20:54:00Z").ToUniversalTime()` at the bottom of the **Debug Console** window and press Enter. @@ -203,11 +203,11 @@ The **Debug Console** window lets you interact with the application you're debug 1. Continue program execution by selecting the **Continue** button in the toolbar. Another way to continue is by pressing F5. - :::image type="content" source="media/debugging-with-visual-studio-code/continue-debugging.png" alt-text="Continue debugging"::: + :::image type="content" source="media/debug-console-app/continue-debugging.png" alt-text="Continue debugging"::: The values displayed in the console window correspond to the changes you made in the **Debug Console**. - :::image type="content" source="media/debugging-with-visual-studio-code/codespaces-changed-variable-values.png" alt-text="Terminal showing the entered values"::: + :::image type="content" source="media/debug-console-app/codespaces-changed-variable-values.png" alt-text="Terminal showing the entered values"::: 1. Press Enter to exit the application and stop debugging. @@ -221,7 +221,7 @@ The program displays the string that the user enters. What happens if the user d 1. Right-click on the red dot that represents the breakpoint. In the context menu, select **Conditions** to open the **Breakpoint Settings** dialog. Select the box for **Conditions** if it's not already selected. - :::image type="content" source="./media/debugging-with-visual-studio/breakpoint-settings.png" alt-text="Editor showing breakpoint settings panel - C#"::: + :::image type="content" source="./media/debug-console-app/breakpoint-settings.png" alt-text="Editor showing breakpoint settings panel - C#"::: 1. For the **Conditional Expression**, enter the following code in the text field. @@ -259,7 +259,7 @@ The program displays the string that the user enters. What happens if the user d The question mark directs the immediate window to [evaluate an expression](/visualstudio/ide/reference/immediate-window#enter-commands). - :::image type="content" source="./media/debugging-with-visual-studio/immediate-window-output.png" alt-text="Immediate Window returning a value of true after the statement is executed - C#"::: + :::image type="content" source="./media/debug-console-app/immediate-window-output.png" alt-text="Immediate Window returning a value of true after the statement is executed - C#"::: 1. Press F5 to continue program execution. @@ -273,7 +273,7 @@ The program displays the string that the user enters. What happens if the user d 1. Right-click (Ctrl-click on macOS) on the red dot that represents the breakpoint. In the context menu, select **Edit Breakpoint** to open a dialog that lets you enter a conditional expression. - :::image type="content" source="media/debugging-with-visual-studio-code/breakpoint-context-menu.png" alt-text="Breakpoint context menu"::: + :::image type="content" source="media/debug-console-app/breakpoint-context-menu.png" alt-text="Breakpoint context menu"::: 1. Select `Expression` in the drop-down, enter the following conditional expression, and press Enter. @@ -281,7 +281,7 @@ The program displays the string that the user enters. What happens if the user d String.IsNullOrEmpty(name) ``` - :::image type="content" source="media/debugging-with-visual-studio-code/conditional-expression.png" alt-text="Enter a conditional expression"::: + :::image type="content" source="media/debug-console-app/conditional-expression.png" alt-text="Enter a conditional expression"::: Each time the breakpoint is hit, the debugger calls the `String.IsNullOrEmpty(name)` method, and it breaks on this line only if the method call returns `true`. @@ -323,7 +323,7 @@ Visual Studio also allows you to step line by line through a program and monitor Visual Studio highlights and displays an arrow beside the next line of execution. - :::image type="content" source="./media/debugging-with-visual-studio/step-into-method.png" alt-text="Visual Studio step into method - C#"::: + :::image type="content" source="./media/debug-console-app/step-into-method.png" alt-text="Visual Studio step into method - C#"::: At this point, the **Locals** window shows that the `args` array is empty, and `name` and `currentDate` have default values. In addition, Visual Studio has opened a blank console window. @@ -359,7 +359,7 @@ Visual Studio Code also allows you to step line by line through a program and mo 1. Select **Step Into** from the Debug toolbar or press F11. - :::image type="content" source="media/debugging-with-visual-studio-code/step-into.png" alt-text="Step-Into button"::: + :::image type="content" source="media/debug-console-app/step-into.png" alt-text="Step-Into button"::: Visual Studio Code highlights the next line. @@ -387,7 +387,7 @@ Visual Studio Code also allows you to step line by line through a program and mo 1. Select **Step Out** or press Shift+F11. - :::image type="content" source="media/debugging-with-visual-studio-code/step-out.png" alt-text="Step-Out button"::: + :::image type="content" source="media/debug-console-app/step-out.png" alt-text="Step-Out button"::: The terminal displays "Press any key to exit..." @@ -403,7 +403,7 @@ Once you've tested the Debug version of your application, you should also compil To build and test the Release version of your console application, change the build configuration on the toolbar from **Debug** to **Release**. -:::image type="content" source="./media/debugging-with-visual-studio/use-release-configuration.png" alt-text="default Visual Studio toolbar with release highlighted"::: +:::image type="content" source="./media/debug-console-app/use-release-configuration.png" alt-text="default Visual Studio toolbar with release highlighted"::: When you press F5 or choose **Build Solution** from the **Build** menu, Visual Studio compiles the Release version of the application. You can test it as you did the Debug version. diff --git a/docs/core/tutorials/media/create-class-library/add-reference-context-menu.png b/docs/core/tutorials/media/create-class-library/add-reference-context-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..2ed115bdb4161c176eaf015b092dcce12bb8b68e GIT binary patch literal 22227 zcma&N1yo#Jw=IYScPk(S_uvpDK!D&RXmEFTC%7dzgg|gfaCdhncp$h03-0dFyT0$g z@7>$|dUTHgqpD7w+Gn42_FikQx#kK}l$XLleU1tP1A`$WE&c%p1~vlxt0E(UBV?1^ zli&r``Gb@wOxfs*9q{3q`CGZSFff%dX!nK);4_MYw5Br*3}z?vAGRUZ`T+bO#8O4W zMMF-O-`L)k)zHM=$duK?)&ZOi10yKx;b3TNZR$c{WNL0{_lEwcxt*TE(&P=jI=39V zoP(IDg{8Eolc}<&yo#}>wef2cdSM|9R6!4ZFoLbAiy?)Ft&N>CzsDP@e+K3U@1cj; zsDuQaOw9N{h)e$G4Djg({T@*g4raIa$CNEY2V8 zTns%}?3}6pGl00Mv$2z2BBzP_FFf6M?3!Up|@jf0gPI%Vj4eg!8> zQ!oqYC51Qy|M~uZ91~=NPUOE$Oz7Vu;9kMI|797dnf{k`P3?e5-GS|xi|+OoxCyrp7P{Jx|U;BVJ5LaUS2 zDo#OHxw=`I7@tb?{hD9~G3Ac^j^kNn7!@M=hcL~Y)>??8`UDy;qIx;ee35FHuyob3 zaFw~!=J4?7z8P;S`O(&TWekn;=5Si_T-w#}-S8pJaQazx2QU3-*UmIQwkR@X3-NE? zV79h<63LP4ORSUpI>H_&aQKsgB-BWX;*ObB7ff*va!^`h_3o4Dv zBq^}5hfu)50R~4n@IsYk@D`a;TwSA+s=A1vv~;ofrE(f=&Tx_1D+0~l0mB_zF@i2_ zXO9vIxzht1TM27xyxTb!nOB$alqMeUWMzBGbek)@uIv`Q&qj^QNrWzB90~NhvGGl|(-`?(Fiy+%gRO*rY*`FTETrt8AL}PWC_};upRwhpAd^ zRxL9DyXiViJ##I-{PxAA9)YUq<>S8nyFzze@8`@7IzN1>cu>@(tRij2=! EcrgZ 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 Pyg@BBT~yI|o4fxH@qVmp literal 0 HcmV?d00001 diff --git a/docs/core/tutorials/media/create-class-library/vb/library-project-properties.png b/docs/core/tutorials/media/create-class-library/vb/library-project-properties.png new file mode 100644 index 0000000000000000000000000000000000000000..2f9ee6f9010f6ff155d9506e4c80fd208f8afd02 GIT binary patch literal 55397 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 RfgUZB(rvX{1vgEf{4eC2#R&ia literal 0 HcmV?d00001 diff --git a/docs/core/tutorials/media/with-visual-studio/additional-information.png b/docs/core/tutorials/media/create-console-app/additional-information.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio/additional-information.png rename to docs/core/tutorials/media/create-console-app/additional-information.png diff --git a/docs/core/tutorials/media/with-visual-studio-code/codespaces-create-new-file.png b/docs/core/tutorials/media/create-console-app/codespaces-create-new-file.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio-code/codespaces-create-new-file.png rename to docs/core/tutorials/media/create-console-app/codespaces-create-new-file.png diff --git a/docs/core/tutorials/media/with-visual-studio/configure-new-project.png b/docs/core/tutorials/media/create-console-app/configure-new-project.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio/configure-new-project.png rename to docs/core/tutorials/media/create-console-app/configure-new-project.png diff --git a/docs/core/tutorials/media/with-visual-studio-code/create-codespace-on-main.png b/docs/core/tutorials/media/create-console-app/create-codespace-on-main.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio-code/create-codespace-on-main.png rename to docs/core/tutorials/media/create-console-app/create-codespace-on-main.png diff --git a/docs/core/tutorials/media/with-visual-studio-code/create-dotnet-project.png b/docs/core/tutorials/media/create-console-app/create-dotnet-project.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio-code/create-dotnet-project.png rename to docs/core/tutorials/media/create-console-app/create-dotnet-project.png diff --git a/docs/core/tutorials/media/with-visual-studio/create-new-project.png b/docs/core/tutorials/media/create-console-app/create-new-project.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio/create-new-project.png rename to docs/core/tutorials/media/create-console-app/create-new-project.png diff --git a/docs/core/tutorials/media/with-visual-studio/hello-world-update.png b/docs/core/tutorials/media/create-console-app/hello-world-update.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio/hello-world-update.png rename to docs/core/tutorials/media/create-console-app/hello-world-update.png diff --git a/docs/core/tutorials/media/with-visual-studio-code/run-program-class.png b/docs/core/tutorials/media/create-console-app/run-program-class.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio-code/run-program-class.png rename to docs/core/tutorials/media/create-console-app/run-program-class.png diff --git a/docs/core/tutorials/media/with-visual-studio/start-window.png b/docs/core/tutorials/media/create-console-app/start-window.png similarity index 100% rename from docs/core/tutorials/media/with-visual-studio/start-window.png rename to docs/core/tutorials/media/create-console-app/start-window.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/breakpoint-context-menu.png b/docs/core/tutorials/media/debug-console-app/breakpoint-context-menu.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/breakpoint-context-menu.png rename to docs/core/tutorials/media/debug-console-app/breakpoint-context-menu.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio/breakpoint-hit.png b/docs/core/tutorials/media/debug-console-app/breakpoint-hit.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio/breakpoint-hit.png rename to docs/core/tutorials/media/debug-console-app/breakpoint-hit.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/breakpoint-set.png b/docs/core/tutorials/media/debug-console-app/breakpoint-set.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/breakpoint-set.png rename to docs/core/tutorials/media/debug-console-app/breakpoint-set.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio/breakpoint-settings.png b/docs/core/tutorials/media/debug-console-app/breakpoint-settings.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio/breakpoint-settings.png rename to docs/core/tutorials/media/debug-console-app/breakpoint-settings.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/change-variable-values.png b/docs/core/tutorials/media/debug-console-app/change-variable-values.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/change-variable-values.png rename to docs/core/tutorials/media/debug-console-app/change-variable-values.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/changed-variable-values.png b/docs/core/tutorials/media/debug-console-app/changed-variable-values.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/changed-variable-values.png rename to docs/core/tutorials/media/debug-console-app/changed-variable-values.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/codespaces-breakpoint-hit.png b/docs/core/tutorials/media/debug-console-app/codespaces-breakpoint-hit.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/codespaces-breakpoint-hit.png rename to docs/core/tutorials/media/debug-console-app/codespaces-breakpoint-hit.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/codespaces-breakpoint-set.png b/docs/core/tutorials/media/debug-console-app/codespaces-breakpoint-set.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/codespaces-breakpoint-set.png rename to docs/core/tutorials/media/debug-console-app/codespaces-breakpoint-set.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/codespaces-changed-variable-values.png b/docs/core/tutorials/media/debug-console-app/codespaces-changed-variable-values.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/codespaces-changed-variable-values.png rename to docs/core/tutorials/media/debug-console-app/codespaces-changed-variable-values.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/codespaces-select-debug-pane.png b/docs/core/tutorials/media/debug-console-app/codespaces-select-debug-pane.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/codespaces-select-debug-pane.png rename to docs/core/tutorials/media/debug-console-app/codespaces-select-debug-pane.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/conditional-expression.png b/docs/core/tutorials/media/debug-console-app/conditional-expression.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/conditional-expression.png rename to docs/core/tutorials/media/debug-console-app/conditional-expression.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/continue-debugging.png b/docs/core/tutorials/media/debug-console-app/continue-debugging.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/continue-debugging.png rename to docs/core/tutorials/media/debug-console-app/continue-debugging.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio/immediate-window-output.png b/docs/core/tutorials/media/debug-console-app/immediate-window-output.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio/immediate-window-output.png rename to docs/core/tutorials/media/debug-console-app/immediate-window-output.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio/locals-immediate-window.png b/docs/core/tutorials/media/debug-console-app/locals-immediate-window.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio/locals-immediate-window.png rename to docs/core/tutorials/media/debug-console-app/locals-immediate-window.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/run-modified-program.png b/docs/core/tutorials/media/debug-console-app/run-modified-program.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/run-modified-program.png rename to docs/core/tutorials/media/debug-console-app/run-modified-program.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/select-debug-console.png b/docs/core/tutorials/media/debug-console-app/select-debug-console.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/select-debug-console.png rename to docs/core/tutorials/media/debug-console-app/select-debug-console.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/select-debug-pane.png b/docs/core/tutorials/media/debug-console-app/select-debug-pane.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/select-debug-pane.png rename to docs/core/tutorials/media/debug-console-app/select-debug-pane.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio/set-breakpoint.png b/docs/core/tutorials/media/debug-console-app/set-breakpoint.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio/set-breakpoint.png rename to docs/core/tutorials/media/debug-console-app/set-breakpoint.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/start-debugging.png b/docs/core/tutorials/media/debug-console-app/start-debugging.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/start-debugging.png rename to docs/core/tutorials/media/debug-console-app/start-debugging.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio/step-into-method.png b/docs/core/tutorials/media/debug-console-app/step-into-method.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio/step-into-method.png rename to docs/core/tutorials/media/debug-console-app/step-into-method.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/step-into.png b/docs/core/tutorials/media/debug-console-app/step-into.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/step-into.png rename to docs/core/tutorials/media/debug-console-app/step-into.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/step-out.png b/docs/core/tutorials/media/debug-console-app/step-out.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio-code/step-out.png rename to docs/core/tutorials/media/debug-console-app/step-out.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio/use-debug-configuration.png b/docs/core/tutorials/media/debug-console-app/use-debug-configuration.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio/use-debug-configuration.png rename to docs/core/tutorials/media/debug-console-app/use-debug-configuration.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio/use-release-configuration.png b/docs/core/tutorials/media/debug-console-app/use-release-configuration.png similarity index 100% rename from docs/core/tutorials/media/debugging-with-visual-studio/use-release-configuration.png rename to docs/core/tutorials/media/debug-console-app/use-release-configuration.png diff --git a/docs/core/tutorials/media/debugging-with-visual-studio-code/breakpoint-hit.png b/docs/core/tutorials/media/debugging-with-visual-studio-code/breakpoint-hit.png deleted file mode 100644 index 74249ba9c5e54a3f611dd6cd4de5bbbb68b34757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115488 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 JPDHLkV1nV);+6ma diff --git a/docs/core/tutorials/media/library-with-visual-studio/add-reference-context-menu.png b/docs/core/tutorials/media/library-with-visual-studio/add-reference-context-menu.png deleted file mode 100644 index f131d1922a7169d73b58f19b612f600d63188639..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19529 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�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 bYiCd1=LexSO?z8+8*gt7{hfB@&%6Hv%BfMH diff --git a/docs/core/tutorials/media/library-with-visual-studio/manage-project-references.png b/docs/core/tutorials/media/library-with-visual-studio/manage-project-references.png deleted file mode 100644 index bdfc4bee57046c7b3a87016c2e2de3d03b5fa420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18639 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�%z_~)0K7pDHWiiit`+# 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 DKBT(v diff --git a/docs/core/tutorials/media/library-with-visual-studio/set-startup-project-context-menu.png b/docs/core/tutorials/media/library-with-visual-studio/set-startup-project-context-menu.png deleted file mode 100644 index 0ab6809dd5e8554d2bcfd85c6c2f6c1849f61a6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29281 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

8gP)2J+x6k4~A<_~SrM1QC2SYWw|6 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

i5Rkd%6$veMYA!Y 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


P(LY-280$%IR!$mE6&oB_QD~CBksOLq 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 on macOS), and select **Open in Integrated Terminal**. - :::image type="content" source="media/publishing-with-visual-studio-code/open-in-terminal.png" alt-text="Context menu showing Open in Terminal"::: + :::image type="content" source="media/publish-console-app/open-in-terminal.png" alt-text="Context menu showing Open in Terminal"::: 1. On Windows or Linux, run the app by using the executable. diff --git a/docs/core/tutorials/snippets/create-class-library/csharp/ShowCase/Program.cs b/docs/core/tutorials/snippets/create-class-library/csharp/ShowCase/Program.cs new file mode 100644 index 0000000000000..23b98ee94d3db --- /dev/null +++ b/docs/core/tutorials/snippets/create-class-library/csharp/ShowCase/Program.cs @@ -0,0 +1,30 @@ +using System; +using UtilityLibraries; + +int row = 0; + +do +{ + if (row == 0 || row >= 25) + ResetConsole(); + + string? input = Console.ReadLine(); + if (string.IsNullOrEmpty(input)) break; + Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + + $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}"); + row += 3; +} while (true); +return; + +// Declare a ResetConsole local method +void ResetConsole() +{ + if (row > 0) + { + Console.WriteLine("Press any key to continue..."); + Console.ReadKey(); + } + Console.Clear(); + Console.WriteLine($"{Environment.NewLine}Press only to exit; otherwise, enter a string and press :{Environment.NewLine}"); + row = 3; +} \ No newline at end of file diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/ShowCase/ShowCase.csproj b/docs/core/tutorials/snippets/create-class-library/csharp/ShowCase/ShowCase.csproj similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/csharp/ShowCase/ShowCase.csproj rename to docs/core/tutorials/snippets/create-class-library/csharp/ShowCase/ShowCase.csproj diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs b/docs/core/tutorials/snippets/create-class-library/csharp/StringLibrary/Class1.cs similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibrary/Class1.cs rename to docs/core/tutorials/snippets/create-class-library/csharp/StringLibrary/Class1.cs diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibrary/StringLibrary.csproj b/docs/core/tutorials/snippets/create-class-library/csharp/StringLibrary/StringLibrary.csproj similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibrary/StringLibrary.csproj rename to docs/core/tutorials/snippets/create-class-library/csharp/StringLibrary/StringLibrary.csproj diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/MSTestSettings.cs b/docs/core/tutorials/snippets/create-class-library/csharp/StringLibraryTest/MSTestSettings.cs similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/MSTestSettings.cs rename to docs/core/tutorials/snippets/create-class-library/csharp/StringLibraryTest/MSTestSettings.cs diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj b/docs/core/tutorials/snippets/create-class-library/csharp/StringLibraryTest/StringLibraryTest.csproj similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj rename to docs/core/tutorials/snippets/create-class-library/csharp/StringLibraryTest/StringLibraryTest.csproj diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs b/docs/core/tutorials/snippets/create-class-library/csharp/StringLibraryTest/Test1.cs similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs rename to docs/core/tutorials/snippets/create-class-library/csharp/StringLibraryTest/Test1.cs diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/vb/ShowCase/Program.vb b/docs/core/tutorials/snippets/create-class-library/vb/ShowCase/Program.vb similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/vb/ShowCase/Program.vb rename to docs/core/tutorials/snippets/create-class-library/vb/ShowCase/Program.vb diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/vb/ShowCase/ShowCase.vbproj b/docs/core/tutorials/snippets/create-class-library/vb/ShowCase/ShowCase.vbproj similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/vb/ShowCase/ShowCase.vbproj rename to docs/core/tutorials/snippets/create-class-library/vb/ShowCase/ShowCase.vbproj diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibrary/Class1.vb b/docs/core/tutorials/snippets/create-class-library/vb/StringLibrary/Class1.vb similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibrary/Class1.vb rename to docs/core/tutorials/snippets/create-class-library/vb/StringLibrary/Class1.vb diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibrary/StringLibrary.vbproj b/docs/core/tutorials/snippets/create-class-library/vb/StringLibrary/StringLibrary.vbproj similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibrary/StringLibrary.vbproj rename to docs/core/tutorials/snippets/create-class-library/vb/StringLibrary/StringLibrary.vbproj diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibraryTest/StringLibraryTest.vbproj b/docs/core/tutorials/snippets/create-class-library/vb/StringLibraryTest/StringLibraryTest.vbproj similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibraryTest/StringLibraryTest.vbproj rename to docs/core/tutorials/snippets/create-class-library/vb/StringLibraryTest/StringLibraryTest.vbproj diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibraryTest/UnitTest1.vb b/docs/core/tutorials/snippets/create-class-library/vb/StringLibraryTest/UnitTest1.vb similarity index 100% rename from docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibraryTest/UnitTest1.vb rename to docs/core/tutorials/snippets/create-class-library/vb/StringLibraryTest/UnitTest1.vb diff --git a/docs/core/tutorials/snippets/with-visual-studio-code/csharp/HelloWorld.cs b/docs/core/tutorials/snippets/create-console-app/csharp/HelloWorld.cs similarity index 100% rename from docs/core/tutorials/snippets/with-visual-studio-code/csharp/HelloWorld.cs rename to docs/core/tutorials/snippets/create-console-app/csharp/HelloWorld.cs diff --git a/docs/core/tutorials/snippets/with-visual-studio/csharp/HelloWorld.csproj b/docs/core/tutorials/snippets/create-console-app/csharp/HelloWorld.csproj similarity index 100% rename from docs/core/tutorials/snippets/with-visual-studio/csharp/HelloWorld.csproj rename to docs/core/tutorials/snippets/create-console-app/csharp/HelloWorld.csproj diff --git a/docs/core/tutorials/snippets/with-visual-studio/csharp/Program-Read.cs b/docs/core/tutorials/snippets/create-console-app/csharp/Program-Read.cs similarity index 100% rename from docs/core/tutorials/snippets/with-visual-studio/csharp/Program-Read.cs rename to docs/core/tutorials/snippets/create-console-app/csharp/Program-Read.cs diff --git a/docs/core/tutorials/snippets/with-visual-studio/csharp/Program.cs b/docs/core/tutorials/snippets/create-console-app/csharp/Program.cs similarity index 100% rename from docs/core/tutorials/snippets/with-visual-studio/csharp/Program.cs rename to docs/core/tutorials/snippets/create-console-app/csharp/Program.cs diff --git a/docs/core/tutorials/snippets/with-visual-studio/vb/HelloWorld.vbproj b/docs/core/tutorials/snippets/create-console-app/vb/HelloWorld.vbproj similarity index 100% rename from docs/core/tutorials/snippets/with-visual-studio/vb/HelloWorld.vbproj rename to docs/core/tutorials/snippets/create-console-app/vb/HelloWorld.vbproj diff --git a/docs/core/tutorials/snippets/with-visual-studio/vb/Program.vb b/docs/core/tutorials/snippets/create-console-app/vb/Program.vb similarity index 100% rename from docs/core/tutorials/snippets/with-visual-studio/vb/Program.vb rename to docs/core/tutorials/snippets/create-console-app/vb/Program.vb diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/ClassLibraryProjects.sln b/docs/core/tutorials/snippets/library-with-visual-studio/csharp/ClassLibraryProjects.sln deleted file mode 100644 index c42ddbab0bbbe..0000000000000 --- a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/ClassLibraryProjects.sln +++ /dev/null @@ -1,62 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26124.0 -MinimumVisualStudioVersion = 15.0.26124.0 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StringLibrary", "StringLibrary\StringLibrary.csproj", "{416074E7-2C56-41FE-AC15-BBEAB23B8538}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShowCase", "ShowCase\ShowCase.csproj", "{67277DB1-F9E6-4515-8228-BE1DD9E26760}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StringLibraryTest", "StringLibraryTest\StringLibraryTest.csproj", "{581A96A9-A9AF-4AC2-A7E9-3B26A5269765}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Debug|Any CPU.Build.0 = Debug|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Debug|x64.ActiveCfg = Debug|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Debug|x64.Build.0 = Debug|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Debug|x86.ActiveCfg = Debug|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Debug|x86.Build.0 = Debug|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Release|Any CPU.ActiveCfg = Release|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Release|Any CPU.Build.0 = Release|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Release|x64.ActiveCfg = Release|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Release|x64.Build.0 = Release|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Release|x86.ActiveCfg = Release|Any CPU - {416074E7-2C56-41FE-AC15-BBEAB23B8538}.Release|x86.Build.0 = Release|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Debug|x64.ActiveCfg = Debug|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Debug|x64.Build.0 = Debug|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Debug|x86.ActiveCfg = Debug|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Debug|x86.Build.0 = Debug|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Release|Any CPU.Build.0 = Release|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Release|x64.ActiveCfg = Release|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Release|x64.Build.0 = Release|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Release|x86.ActiveCfg = Release|Any CPU - {67277DB1-F9E6-4515-8228-BE1DD9E26760}.Release|x86.Build.0 = Release|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Debug|Any CPU.Build.0 = Debug|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Debug|x64.ActiveCfg = Debug|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Debug|x64.Build.0 = Debug|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Debug|x86.ActiveCfg = Debug|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Debug|x86.Build.0 = Debug|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Release|Any CPU.ActiveCfg = Release|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Release|Any CPU.Build.0 = Release|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Release|x64.ActiveCfg = Release|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Release|x64.Build.0 = Release|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Release|x86.ActiveCfg = Release|Any CPU - {581A96A9-A9AF-4AC2-A7E9-3B26A5269765}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/ShowCase/Program.cs b/docs/core/tutorials/snippets/library-with-visual-studio/csharp/ShowCase/Program.cs deleted file mode 100644 index 1b3eb80e8aa8e..0000000000000 --- a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/ShowCase/Program.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using UtilityLibraries; - -class Program -{ - static void Main(string[] args) - { - int row = 0; - - do - { - if (row == 0 || row >= 25) - ResetConsole(); - - string? input = Console.ReadLine(); - if (string.IsNullOrEmpty(input)) break; - Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + - $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}"); - row += 3; - } while (true); - return; - - // Declare a ResetConsole local method - void ResetConsole() - { - if (row > 0) - { - Console.WriteLine("Press any key to continue..."); - Console.ReadKey(); - } - Console.Clear(); - Console.WriteLine($"{Environment.NewLine}Press only to exit; otherwise, enter a string and press :{Environment.NewLine}"); - row = 3; - } - } -} diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/vb/ClassLibraryProjects.sln b/docs/core/tutorials/snippets/library-with-visual-studio/vb/ClassLibraryProjects.sln deleted file mode 100644 index b2c46f68ced9e..0000000000000 --- a/docs/core/tutorials/snippets/library-with-visual-studio/vb/ClassLibraryProjects.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30114.105 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "StringLibrary", "StringLibrary\StringLibrary.vbproj", "{487A968D-CC91-4AA4-8B0E-03824397B584}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShowCase", "ShowCase\ShowCase.vbproj", "{A5033F8D-6CB5-4918-913B-FE837CBE9682}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "StringLibraryTest", "StringLibraryTest\StringLibraryTest.vbproj", "{FD86969C-F208-46E6-86C7-15A3709488D1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {487A968D-CC91-4AA4-8B0E-03824397B584}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {487A968D-CC91-4AA4-8B0E-03824397B584}.Debug|Any CPU.Build.0 = Debug|Any CPU - {487A968D-CC91-4AA4-8B0E-03824397B584}.Release|Any CPU.ActiveCfg = Release|Any CPU - {487A968D-CC91-4AA4-8B0E-03824397B584}.Release|Any CPU.Build.0 = Release|Any CPU - {A5033F8D-6CB5-4918-913B-FE837CBE9682}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A5033F8D-6CB5-4918-913B-FE837CBE9682}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A5033F8D-6CB5-4918-913B-FE837CBE9682}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A5033F8D-6CB5-4918-913B-FE837CBE9682}.Release|Any CPU.Build.0 = Release|Any CPU - {FD86969C-F208-46E6-86C7-15A3709488D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD86969C-F208-46E6-86C7-15A3709488D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FD86969C-F208-46E6-86C7-15A3709488D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FD86969C-F208-46E6-86C7-15A3709488D1}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DC88EBD6-DDF7-4BF2-A779-D490A7C669B9} - EndGlobalSection -EndGlobal diff --git a/docs/core/tutorials/test-class-library.md b/docs/core/tutorials/test-class-library.md index e116fa02fd10e..e923d792447a6 100644 --- a/docs/core/tutorials/test-class-library.md +++ b/docs/core/tutorials/test-class-library.md @@ -38,7 +38,7 @@ Unit tests provide automated software testing during your development and publis 1. On the **Additional information** page, select **.NET 10** in the **Framework** box, select **Microsoft.Testing.Platform** for the **Test runner**, and then choose **Create**. - :::image type="content" source="./media/testing-library-with-visual-studio/additional-information-mstest.png" alt-text="Enter additional information for the MSTest Test Project"::: + :::image type="content" source="./media/test-class-library/additional-information-mstest.png" alt-text="Enter additional information for the MSTest Test Project"::: 1. Visual Studio creates the project and opens the class file in the code window with the following code. If the language you want to use isn't shown, change the language selector at the top of the page. @@ -91,13 +91,13 @@ Unit tests provide automated software testing during your development and publis 1. Select **MSTest Test Project**, name it "StringLibraryTest", select the default directory, and select **Create Project**. - The project template creates a *UnitTest1.cs* file with the following code: + The project template creates *StringLibraryTest/Test1.cs* with the following code: ```csharp namespace StringLibraryTest; [TestClass] - public class UnitTest1 + public class Test1 { [TestMethod] public void TestMethod1() @@ -108,7 +108,7 @@ Unit tests provide automated software testing during your development and publis The source code created by the unit test template does the following: - - It applies the attribute to the `UnitTest1` class. + - It applies the attribute to the `Test1` class. - It applies the attribute to define `TestMethod1`. - It imports the namespace, which contains the types used for unit testing. The namespace is imported via a `global using` directive in *GlobalUsings.cs*. @@ -126,13 +126,13 @@ Unit tests provide automated software testing during your development and publis dotnet new mstest -n StringLibraryTest ``` - The project template creates a *UnitTest1.cs* file with the following code: + The project template creates *StringLibraryTest/Test1.cs* with the following code: ```csharp namespace StringLibraryTest; [TestClass] - public class UnitTest1 + public class Test1 { [TestMethod] public void TestMethod1() @@ -143,7 +143,7 @@ Unit tests provide automated software testing during your development and publis The source code created by the unit test template does the following: - - It applies the attribute to the `UnitTest1` class. + - It applies the attribute to the `Test1` class. - It applies the attribute to define `TestMethod1`. - It imports the namespace, which contains the types used for unit testing. @@ -161,7 +161,7 @@ For the test project to work with the `StringLibrary` class, add a reference in 1. In the **Reference Manager** dialog, select the box next to **StringLibrary**. - :::image type="content" source="./media/testing-library-with-visual-studio/add-project-reference-string-library-test.png" alt-text="Add StringLibrary as a project reference for StringLibraryTest."::: + :::image type="content" source="./media/test-class-library/add-project-reference-string-library-test.png" alt-text="Add StringLibrary as a project reference for StringLibraryTest."::: 1. Select **OK**. @@ -213,8 +213,8 @@ To create the test methods: 1. In the *Test1.cs* or *Test1.vb* code window, replace the code with the following code: - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: - :::code language="vb" source="./snippets/library-with-visual-studio/vb/StringLibraryTest/UnitTest1.vb"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/StringLibraryTest/Test1.cs"::: + :::code language="vb" source="./snippets/create-class-library/vb/StringLibraryTest/UnitTest1.vb"::: The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433). @@ -228,13 +228,13 @@ To create the test methods: 1. On the menu bar, select **Test** > **Run All Tests**. If the **Test Explorer** window doesn't open, open it by choosing **Test** > **Test Explorer**. The three tests are listed in the **Passed Tests** section, and the **Summary** section reports the result of the test run. - :::image type="content" source="./media/testing-library-with-visual-studio/test-explorer-window.png" alt-text="Test Explorer window with passing tests"::: + :::image type="content" source="./media/test-class-library/test-explorer-window.png" alt-text="Test Explorer window with passing tests"::: ::: zone-end ::: zone pivot="vscode" -1. Open *StringLibraryTest/UnitTest1.cs* and replace all of the code with the following code. +1. Open *StringLibraryTest/Test1.cs* and replace all of the code with the following code. :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: @@ -248,15 +248,15 @@ To create the test methods: 1. Select the **Testing** window, select **Run Tests** or from the Command Palette, select **Test: Run all Tests**. - :::image type="content" source="media/testing-library-with-visual-studio-code/testingScreenshot.png" alt-text="Visual Studio Code Test Explorer"::: + :::image type="content" source="media/test-class-library-code/testingScreenshot.png" alt-text="Visual Studio Code Test Explorer"::: ::: zone-end ::: zone pivot="codespaces" -1. Open *StringLibraryTest/UnitTest1.cs* and replace all of the code with the following code: +1. Open *StringLibraryTest/Test1.cs* and replace all of the code with the following code: - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/StringLibraryTest/Test1.cs"::: The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433). @@ -291,13 +291,14 @@ If you're doing test-driven development (TDD), you write tests first and they fa 1. Run the test by selecting **Test** > **Run All Tests** from the menu bar. The **Test Explorer** window indicates that two tests succeeded and one failed. - :::image type="content" source="./media/testing-library-with-visual-studio/failed-test-window.png" alt-text="Test Explorer window with failing tests"::: + :::image type="content" source="./media/test-class-library +/failed-test-window.png" alt-text="Test Explorer window with failing tests"::: 1. Select the failed test, `TestDoesNotStartWith`. The **Test Explorer** window displays the message produced by the assert: "Assert.IsFalse failed. Expected for 'Error': false; actual: True." Because of the failure, the strings in the array after "Error" weren't tested. - :::image type="content" source="./media/testing-library-with-visual-studio/failed-test-detail.png" alt-text="Test Explorer window showing the IsFalse assertion failure"::: + :::image type="content" source="./media/test-class-library/failed-test-detail.png" alt-text="Test Explorer window showing the IsFalse assertion failure"::: ::: zone-end @@ -307,7 +308,7 @@ If you're doing test-driven development (TDD), you write tests first and they fa The output shows that the test fails, and it provides an error message for the failed test: "Assert.IsFalse failed. Expected for 'Error': false; actual: True". Because of the failure, no strings in the array after "Error" were tested. - :::image type="content" source="media/testing-library-with-visual-studio-code/failedTest.png" alt-text="Visual Studio Code Failed Test"::: + :::image type="content" source="media/test-class-library-code/failedTest.png" alt-text="Visual Studio Code Failed Test"::: ::: zone-end @@ -379,7 +380,7 @@ Visual Studio starts the test project with the debugger attached. Execution stop ::: zone pivot="vscode,codespaces" -If you're using Visual Studio Code as your IDE, you can use the same process shown in [Debug a .NET console application](debug-console-app.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, open *StringLibraryTest/UnitTest1.cs*, and select **Debug Tests in current file** between lines 7 and 8. If you're unable to find it, press Ctrl+Shift+P to open the command palette and enter **Reload Window**. +If you're using Visual Studio Code as your IDE, you can use the same process shown in [Debug a .NET console application](debug-console-app.md) to debug code using your unit test project. Instead of starting the *ShowCase* app project, open *StringLibraryTest/Test1.cs*, and select **Debug Tests in current file** between lines 7 and 8. If you're unable to find it, press Ctrl+Shift+P to open the command palette and enter **Reload Window**. Visual Studio Code starts the test project with the debugger attached. Execution will stop at any breakpoint you've added to the test project or the underlying library code. From 642367c1edaa2d2965e3525bd0b4d9287ed0e536 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Wed, 18 Feb 2026 16:52:47 -0800 Subject: [PATCH 09/12] update image paths in test-class-library.md for Visual Studio Code examples --- docs/core/tutorials/test-class-library.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/core/tutorials/test-class-library.md b/docs/core/tutorials/test-class-library.md index e923d792447a6..3a5d41cc1d2c8 100644 --- a/docs/core/tutorials/test-class-library.md +++ b/docs/core/tutorials/test-class-library.md @@ -248,7 +248,7 @@ To create the test methods: 1. Select the **Testing** window, select **Run Tests** or from the Command Palette, select **Test: Run all Tests**. - :::image type="content" source="media/test-class-library-code/testingScreenshot.png" alt-text="Visual Studio Code Test Explorer"::: + :::image type="content" source="media/test-class-library/testingScreenshot.png" alt-text="Visual Studio Code Test Explorer"::: ::: zone-end @@ -308,7 +308,7 @@ If you're doing test-driven development (TDD), you write tests first and they fa The output shows that the test fails, and it provides an error message for the failed test: "Assert.IsFalse failed. Expected for 'Error': false; actual: True". Because of the failure, no strings in the array after "Error" were tested. - :::image type="content" source="media/test-class-library-code/failedTest.png" alt-text="Visual Studio Code Failed Test"::: + :::image type="content" source="media/test-class-library/failedTest.png" alt-text="Visual Studio Code Failed Test"::: ::: zone-end From 35667c4c21e31d687ecb1de1cf30dd9cec792284 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Thu, 19 Feb 2026 10:34:49 -0800 Subject: [PATCH 10/12] fix error and warning --- docs/core/tutorials/create-class-library.md | 2 +- docs/core/tutorials/test-class-library.md | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/core/tutorials/create-class-library.md b/docs/core/tutorials/create-class-library.md index 9b537ea9f55b9..03d3aa212f713 100644 --- a/docs/core/tutorials/create-class-library.md +++ b/docs/core/tutorials/create-class-library.md @@ -92,7 +92,7 @@ Start by creating a GitHub Codespace with the tutorial environment, then create 1. Select the `+` sign or the green **Create codespace on main** button to create a new Codespace using this environment. - :::image type="content" source="media/with-visual-studio-code/create-codespace-on-main.png" alt-text="Create a new Codespace from the tutorial repository"::: + :::image type="content" source="media/create-console-app/create-codespace-on-main.png" alt-text="Create a new Codespace from the tutorial repository"::: 1. When your codespace loads, open the terminal and navigate to the tutorials folder: diff --git a/docs/core/tutorials/test-class-library.md b/docs/core/tutorials/test-class-library.md index 3a5d41cc1d2c8..ced7e95d3fa2f 100644 --- a/docs/core/tutorials/test-class-library.md +++ b/docs/core/tutorials/test-class-library.md @@ -236,7 +236,7 @@ To create the test methods: 1. Open *StringLibraryTest/Test1.cs* and replace all of the code with the following code. - :::code language="csharp" source="./snippets/library-with-visual-studio/csharp/StringLibraryTest/Test1.cs"::: + :::code language="csharp" source="./snippets/test-class-library/csharp/StringLibraryTest/Test1.cs"::: The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433). @@ -291,8 +291,7 @@ If you're doing test-driven development (TDD), you write tests first and they fa 1. Run the test by selecting **Test** > **Run All Tests** from the menu bar. The **Test Explorer** window indicates that two tests succeeded and one failed. - :::image type="content" source="./media/test-class-library -/failed-test-window.png" alt-text="Test Explorer window with failing tests"::: + :::image type="content" source="./media/test-class-library/failed-test-window.png" alt-text="Test Explorer window with failing tests"::: 1. Select the failed test, `TestDoesNotStartWith`. From f208abcac31decc9b0a6312ec72fe6e51c58677f Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Thu, 19 Feb 2026 10:56:55 -0800 Subject: [PATCH 11/12] clean up snippets --- docs/core/tutorials/create-console-app.md | 6 +++--- .../snippets/create-console-app/csharp/HelloWorld.cs | 12 ------------ .../create-console-app/csharp/Program-Read.cs | 11 ----------- 3 files changed, 3 insertions(+), 26 deletions(-) delete mode 100644 docs/core/tutorials/snippets/create-console-app/csharp/HelloWorld.cs delete mode 100644 docs/core/tutorials/snippets/create-console-app/csharp/Program-Read.cs diff --git a/docs/core/tutorials/create-console-app.md b/docs/core/tutorials/create-console-app.md index 885c03ea871a3..d492d49dc60de 100644 --- a/docs/core/tutorials/create-console-app.md +++ b/docs/core/tutorials/create-console-app.md @@ -181,7 +181,7 @@ In Codespaces, you'll create a [file-based app](../sdk/file-based-apps.md). File 1. *HelloWorld.cs* opens in the editor. Type or copy the following code into the file: - :::code language="csharp" source="./snippets/create-console-app/csharp/HelloWorld.cs" id="HelloWorld"::: + :::code language="csharp" source="../snippets/get-started/csharp/hello-world.cs" id="HelloWorld"::: ::: zone-end @@ -253,7 +253,7 @@ Enhance the application to prompt the user for their name and display it along w 1. Replace the contents of the class with the following code: - :::code language="csharp" source="./snippets/create-console-app/csharp/Program-Read.cs" id="MainMethod"::: + :::code language="csharp" source="./snippets/create-console-app/csharp/Program.cs" id="MainMethod"::: This code displays a prompt in the console window and waits until the user enters a string followed by the Enter key. It stores this string in a variable named `name`. It also retrieves the value of the property, which contains the current local time, and assigns it to a variable named `currentDate`. And it displays these values in the console window. Finally, it displays a prompt in the console window and calls the method to wait for user input. @@ -280,7 +280,7 @@ Enhance the application to prompt the user for their name and display it along w 1. Update *HelloWorld.cs* with the following code: - :::code language="csharp" source="./snippets/create-console-app/csharp/HelloWorld.cs" id="MainMethod"::: + :::code language="csharp" source="./snippets/create-console-app/csharp/Program.cs" id="MainMethod"::: This code displays a prompt in the console window and waits until the user enters a string followed by the Enter key. It stores this string in a variable named `name`. It also retrieves the value of the property, which contains the current local time, and assigns it to a variable named `currentDate`. And it displays these values in the console window. Finally, it displays a prompt in the console window and calls the method to wait for user input. diff --git a/docs/core/tutorials/snippets/create-console-app/csharp/HelloWorld.cs b/docs/core/tutorials/snippets/create-console-app/csharp/HelloWorld.cs deleted file mode 100644 index 5255638abec71..0000000000000 --- a/docs/core/tutorials/snippets/create-console-app/csharp/HelloWorld.cs +++ /dev/null @@ -1,12 +0,0 @@ -// -Console.WriteLine("Hello, World!"); -// - -// -Console.WriteLine("What is your name?"); -var name = Console.ReadLine(); -var currentDate = DateTime.Now; -Console.WriteLine($"{Environment.NewLine}Hello, {name}, on {currentDate:d} at {currentDate:t}!"); -Console.Write($"{Environment.NewLine}Press Enter to exit..."); -Console.Read(); -// \ No newline at end of file diff --git a/docs/core/tutorials/snippets/create-console-app/csharp/Program-Read.cs b/docs/core/tutorials/snippets/create-console-app/csharp/Program-Read.cs deleted file mode 100644 index 199a6e9d1e18e..0000000000000 --- a/docs/core/tutorials/snippets/create-console-app/csharp/Program-Read.cs +++ /dev/null @@ -1,11 +0,0 @@ -//Variant of Program.cs that reads input from the debug console instead of the terminal -#if READ -// -Console.WriteLine("What is your name?"); -var name = Console.ReadLine(); -var currentDate = DateTime.Now; -Console.WriteLine($"{Environment.NewLine}Hello, {name}, on {currentDate:d} at {currentDate:t}!"); -Console.Write($"{Environment.NewLine}Press Enter to exit..."); -Console.Read(); -// -#endif From 571f46cd74faa355b211644b713b00d7b378c1a5 Mon Sep 17 00:00:00 2001 From: Meaghan Osagie Date: Thu, 19 Feb 2026 11:17:50 -0800 Subject: [PATCH 12/12] fix snippet warning --- docs/core/tutorials/test-class-library.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/tutorials/test-class-library.md b/docs/core/tutorials/test-class-library.md index ced7e95d3fa2f..47dc2596292dd 100644 --- a/docs/core/tutorials/test-class-library.md +++ b/docs/core/tutorials/test-class-library.md @@ -236,7 +236,7 @@ To create the test methods: 1. Open *StringLibraryTest/Test1.cs* and replace all of the code with the following code. - :::code language="csharp" source="./snippets/test-class-library/csharp/StringLibraryTest/Test1.cs"::: + :::code language="csharp" source="./snippets/create-class-library/csharp/StringLibraryTest/Test1.cs"::: The test of uppercase characters in the `TestStartsWithUpper` method includes the Greek capital letter alpha (U+0391) and the Cyrillic capital letter EM (U+041C). The test of lowercase characters in the `TestDoesNotStartWithUpper` method includes the Greek small letter alpha (U+03B1) and the Cyrillic small letter Ghe (U+0433).