Introducing this book and its contents
Let’s get started by introducing you to the code solutions, structure, and content of this book.
Getting code solutions for this book
The GitHub repository for this book has solutions that use full application projects for all code tasks and exercises, found at the following link:
https://github.com/markjprice/cs13net9
After navigating to the GitHub repository in your web browser, press the .
(dot) key on your keyboard, or manually change .com
to .dev
in the link to convert the repository into a live code editor based on VS Code, called GitHub Codespaces, as shown in Figure 1.1:
Figure 1.1: GitHub Codespaces live-editing the book’s GitHub repository
Warning! When you access a repository using GitHub Codespaces, its GitHub Repositories extension will attempt to download the repository’s index. By default, the maximum size can be up to 50MB but the repository exceeds this limit, so you will see the following warning message: Repository exceeds download size limit! Continuing with partial text services.
You can ignore this message because you are not using the full features.
We provide you with a PDF file that has color images of the screenshots and diagrams used in this book. You can download this file from https://packt.link/gbp/9781837635870.
VS Code in a web browser is great to run alongside your chosen local code editor as you work through the book’s coding tasks. You can compare your code to the solution code and easily copy and paste parts if needed.
You do not need to use or know anything about Git to get the solution code of this book. You can download a ZIP file containing all the code solutions by using the following direct link and then extract the ZIP file into your local filesystem: https://github.com/markjprice/cs13net9/archive/refs/heads/main.zip.
.NET terms used in this book
Throughout this book, I use the term modern .NET to refer to .NET 9 and its predecessors, like .NET 6, that derive from .NET Core. I use the term legacy .NET to refer to .NET Framework, Mono, Xamarin, and .NET Standard.
Modern .NET is a unification of those legacy platforms and standards.
The structure and style of this book
After this first chapter, the book will be divided into three parts: language, libraries, and web development.
First, we will cover the grammar and vocabulary of the C# language; second, we will cover the types available in the .NET libraries for building app features; and third, we will cover the fundamentals of cross-platform websites, services, and browser apps that you can build using C# and .NET.
Most people learn complex topics best by imitation and repetition, rather than reading a detailed explanation of the theory; therefore, I will not overload you with detailed explanations of every step throughout this book. The idea is to get you to write some code and see it run.
You don’t need to know all the nitty-gritty details immediately. That will be something that comes with time as you build your own apps and go beyond what any book can teach you.
In the words of Samuel Johnson, author of the English dictionary in 1755, I have committed “a few wild blunders, and risible absurdities, from which no work of such multiplicity is free.” I take sole responsibility for these and hope you appreciate the challenge of my attempt to lash the wind by writing this book about rapidly evolving technologies, like C# and .NET, and the apps that you can build with them.
If you have a complaint about this book, then please contact me before writing a negative review on Amazon. Authors cannot respond to Amazon reviews, so I cannot contact you to resolve the problem and help you or listen to your feedback and try to do better in the next edition. Please ask a question on the Discord channel for this book at https://packt.link/csharp13dotnet9, email me at [email protected]
, or raise an issue in the GitHub repository for the book at the following link: https://github.com/markjprice/cs13net9/issues.
Topics covered by this book
The following topics are covered in this book:
- Language fundamentals: Fundamental features of the C# language, from declaring variables to writing functions and object-oriented programming.
- Library fundamentals: Fundamental features of the .NET base class library, as well as some important optional packages for common tasks like database access.
- Modern web development fundamentals: Modern features of the ASP.NET Core framework for server-side and client-side website and web service development. This includes Blazor and Minimal APIs and excludes controller-based features like MVC and Web API, or legacy features like Razor Pages.
This book, C# 13 and .NET 9 – Modern Cross-Platform Development Fundamentals, is best read linearly, chapter by chapter, because it builds up fundamental skills and knowledge.
Topics covered by Apps and Services with .NET 8
The following topics are available in a companion book, Apps and Services with .NET 8:
- Data: SQL Server and Azure Cosmos DB.
- Specialized libraries: Dates, times, time zones, and internationalization; common third-party libraries for image handling, logging, mapping, and generating PDFs; multitasking and concurrency; and many more.
- Services: Caching, queuing, background services, gRPC, GraphQL, Azure Functions, SignalR, and Minimal APIs.
- User interfaces: ASP.NET Core, Blazor, and .NET MAUI.
This book can be read more like a cookbook, so if you are especially interested in building gRPC services, then you can read that chapter without the preceding chapters about minimal API services.
Topics covered by Tools and Skills for .NET 8
The following topics are available in a companion book, Tools and Skills for .NET 8:
- Debugging and memory analysis.
- All the important types of testing, from unit and integration to performance and web UI testing.
- Docker and .NET Aspire for local distributed development and testing.
- Design patterns and solution architecture.
- Preparing for an interview to get the .NET developer career that you want.
My books for .NET 8 are equally applicable to .NET 9. You can make your projects target .NET 9 and all the code examples will work. You should not need to wait for packages to upgrade to also target .NET 9, due to backward compatibility.
Finding all my books
To see a list of all the books I have published with Packt, you can use the following link:
https://subscription.packtpub.com/search?query=mark+j.+price
A similar list is available on Amazon:
https://www.amazon.com/Mark-J-Price/e/B071DW3QGN/
You can search other book-selling sites for my books too.