-
Book Overview & Buying
-
Table Of Contents
Tools and Skills for .NET 10 - Second Edition
By :
This section is about how to find quality information about programming on the web. You will learn about Microsoft Learn documentation, including its new MCP server for integration with AI systems, getting help while coding and using dotnet commands, getting help from fellow readers in the book’s Discord channel, searching the .NET source code for implementation details, and finally, making the most of modern AI tools like GitHub Copilot.
This is useful information that all readers should know and refer to throughout reading any of my .NET 10 books, especially if you are new to .NET.
This section has been made into a separate Appendix C, both to make it reusable in all four of my .NET 10 books, and to avoid wasting pages in the print book for those readers who have already read it from one of the other books.
An online Markdown version of Appendix C is available in the book’s GitHub repository at the following link: https://github.com/markjprice/markjprice/blob/main/articles/getting-help.md. Since this is hosted in my personal GitHub account, I can keep it updated more frequently throughout the three-year support period of .NET 10.
As part of this book’s free exclusive benefits, you can also access a PDF version of the book, which includes Appendix C. You can unlock it and the other benefits at the following link: https://packtpub.com/unlock, then search for this book by name. Ensure it’s the correct edition. Have your purchase invoice ready before you start.
My books are specifically written in a tutorial style so that you can get started quickly and confidently before then switching to the official documentation for more details or specialized scenarios.
This technique is commonly used by developers to learn how to code. More than 50% use books or other physical media, and then more than 80% use other online resources, as shown in the Stack Overflow Survey 2023 at the following link: https://survey.stackoverflow.co/2023/#section-learning-to-code-learning-how-to-code.
The definitive resource for getting help with Microsoft developer tools and platforms is in the technical documentation on Microsoft Learn, and you can find it at the following link: https://learn.microsoft.com/en-us/docs.
At the command prompt, you can ask the dotnet tool for help with its commands. The syntax is:
dotnet help <command>
This will cause your web browser to open a page in the documentation about the specified command. Common dotnet commands include new, build, and run.
Warning! The dotnet help new command worked with .NET Core 3.1 to .NET 6, but it returns an error with .NET 7 or later: Specified command 'new' is not a valid SDK command. Specify a valid SDK command. For more information, run dotnet help. Hopefully, the .NET team will fix that bug soon!
Another type of help is command-line documentation. It follows this syntax:
dotnet <command> -?|-h|--help
For example, dotnet new -?, dotnet new -h, or dotnet new --help output documentation about the new command at the command prompt.
One of the biggest changes in coding and development in the past few years is the emergence of generative AI tools and LLMs that can help with coding tasks like completing a code statement, implementing an entire function, writing unit tests, and suggesting debugging fixes for existing code.
ChatGPT currently has several free models like 5.1 and 5.2, and the Plus individual subscription ($20 per month) or the Pro individual subscription ($200 per month). There are also Team and Enterprise subscriptions. You can compare options at the following link: https://openai.com/chatgpt/pricing/.
Let’s say you need to understand more about .NET tools and skills. You might enter the following prompt: “What are the most important tools and skills for a professional .NET developer to learn?”
The response would be something like the following:
"Hey there! When it comes to being a professional .NET developer, there are several essential tools and skills you should consider mastering. Here's a detailed breakdown:
Tools:
Visual Studio: This IDE is the go-to choice for .NET development. Make sure you're comfortable with its features and extensions.VS Code: While Visual Studio is powerful, VS Code is a lightweight, versatile code editor that's becoming increasingly popular among .NET developers..NET Core/.NET 5 and beyond: Stay up to date with the latest versions of the .NET framework. .NET 5 and its successors offer cross-platform support and performance improvements.Git and GitHub: Version control is crucial. Git is a widely used distributed version control system, and GitHub provides a platform for collaborative development and code sharing.Azure DevOps: Familiarize yourself with Azure DevOps for managing projects and continuous integration and continuous deployment (CI/CD) pipelines.NuGet: Understanding package management with NuGet is essential for adding libraries and packages to your .NET projects.Docker: Containerization is becoming increasingly important for deploying .NET applications. Docker can help you create and manage containers effectively.Skills:
C#: As a .NET developer, C# is your primary language. Master object-oriented programming concepts, asynchronous programming, and LINQ.ASP.NET Core: For web development, ASP.NET Core is the framework of choice. Learn about MVC architecture, Razor Pages, and API development.Entity Framework Core: Understand how to work with databases using Entity Framework Core for efficient data access.Dependency injection: Grasp the principles of dependency injection and how it's used in .NET for managing object dependencies.Unit testing: Writing unit tests using tools like xUnit or NUnit is crucial for ensuring the reliability of your code.Web API design: If you're building APIs, learn about RESTful design principles, authentication, and versioning.Frontend technologies: Familiarize yourself with HTML, CSS, JavaScript, and frontend frameworks like React or Angular if you're involved in web development.Azure services: If you're working in the cloud, explore Azure services like Azure Functions, Azure SQL Database, and Azure App Service.Security: Understand security best practices, including authentication, authorization, and data protection.Performance optimization: Learn about profiling, caching, and other techniques to optimize the performance of your applications.Agile methodologies: Agile practices like Scrum and Kanban are widely used in software development. Understanding them can improve team collaboration.Soft skills: Communication, problem solving, and teamwork are essential soft skills for any professional developer.Now, I've covered quite a bit here, but remember that the tech landscape is always evolving. Staying curious and continuously learning is a vital skill in itself. If you have any specific questions or need more details on any of these topics, feel free to ask!"
There are a few topics that ChatGPT mentions that my books do not cover. These are:
You might have heard the term prompt engineering. This is an important skill for any professional to have since modern tasks will commonly be completed more efficiently by collaborating with an AI.
AI tools that integrate closely with your code editor like GitHub Copilot will be covered in Chapter 2, Making the Most of Your Code Editor.
To clarify or get a deeper understanding of a topic, or any piece of information, you can use the following prompt templates:
Use affirmative directives and avoid negative formulations like “don’t.”
For complex answers, or when it responds with a shallow answer, include the phrase “think step-by-step.”
Assign a role to the large language models. For example, “You are an expert solution architect with decades of experience implementing .NET.”
If you’re unsure how to phrase a prompt, get the LLM to help you! For example:
“I want you to be my Prompt Engineer. Your goal is to assist me in creating the best prompt for my needs. The prompt will be used by you, ChatGPT. You will follow these steps: Your first response will be to ask me what the prompt should be about. I will provide my answer, but we will need to work together to improve it through continuous iterations by going through the next steps. Based on my input, you will generate three sections:
We will continue this iterative process with me providing more information to you and you updating the prompt in the Revised prompt section until it’s complete. Thank you!”
If you own a PC with an Nvidia GTX card, then you can download a free chat app to customize and converse with local LLMs. It can even process files like PDFs. If any of you try adding a PDF of any of my books so that you can ask questions about them, please let me know how you get on. You can find out more at the following link: https://blogs.nvidia.com/blog/chat-with-rtx-available-now/.
According to the Stack Overflow Survey (https://survey.stackoverflow.co/2025/ai/#1-ai-tools-in-the-development-process/), “84% of all respondents are using or are planning to use AI tools in their development process this year. Those learning to code are more likely than professional developers to be using or use AI tools.”
Asking questions in programming forums and Discord channels is an art as much as it is a science. To maximize your chances of receiving a helpful answer, there’s a blend of clarity, specificity, and community awareness that you should aim for.
Here are some tips for asking questions:
Good practice: Oddly, I’ve been seeing more and more examples of readers taking photos of their screen and posting those. These are harder to read and limited in what they can show. It’s better to copy and paste the text of your code or the error message so that others can copy and paste it themselves. Or at least take a high-resolution screenshot instead of a photo!
`public void`, and surround code blocks with three backticks with an optional language code, as shown in the following code:
```cs
using static System.Console;
WriteLine("This is C# formatted code.");
```
Good practice: After the three backticks that start a code block in Markdown, specify a language code like cs, csharp, js, javascript, json, html, css, cpp, xml, mermaid, python, java, ruby, go, sql, bash, or shell.
To learn how to format text in Discord channel messages, see the following link: https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline.
Incorporating these approaches when asking questions not only increases your likelihood of getting a useful response but also contributes positively to the community by showing respect for others’ time and effort.
Good practice: Never just say “Hello” as a message on any chat system. You can read why at the following link: https://nohello.net/. Similarly, don’t ask to ask: https://dontasktoask.com/.
Change the font size
Change margin width
Change background colour