Book Image

C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals - Eighth Edition

By : Mark J. Price
4.6 (14)
Book Image

C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals - Eighth Edition

4.6 (14)
By: Mark J. Price

Overview of this book

This latest edition of the bestselling Packt series will give you a solid foundation to start building projects using modern C# and .NET with confidence. You'll learn about object-oriented programming; writing, testing, and debugging functions; and implementing interfaces. You'll take on .NET APIs for managing and querying data, working with the fi lesystem, and serialization. As you progress, you'll explore examples of cross-platform projects you can build and deploy, such as websites and services using ASP.NET Core. This latest edition integrates .NET 8 enhancements into its examples: type aliasing and primary constructors for concise and expressive code. You'll handle errors robustly through the new built-in guard clauses and explore a simplified implementation of caching in ASP.NET Core 8. If that's not enough, you'll also see how native ahead-of-time (AOT) compiler publish lets web services reduce memory use and run faster. You'll work with the seamless new HTTP editor in Visual Studio 2022 to enhance the testing and debugging process. You'll even get introduced to Blazor Full Stack with its new unified hosting model for unparalleled web development flexibility.
Table of Contents (18 chapters)

Practicing and exploring

Test your knowledge and understanding by answering some questions, getting some hands-on practice, and exploring the topics covered in this chapter with deeper research.

Exercise 2.1 – Test your knowledge

To get the best answer to some of these questions, you will need to do your own research. I want you to “think outside the book,” so I have deliberately not provided all the answers in the book.

I want to encourage you to get into the good habit of looking for help elsewhere, following the principle of “teach a person to fish.”

  1. What statement can you type in a C# file to discover the compiler and language version?
  2. What are the two types of comments in C#?
  3. What is the difference between a verbatim string and an interpolated string?
  4. Why should you be careful when using float and double values?
  5. How can you determine how many bytes a type like double uses in memory?
  6. When should you use the var keyword?
  7. What is the newest syntax to create an instance of a class like XmlDocument?
  8. Why should you be careful when using the dynamic type?
  9. How do you right-align a format string?
  10. What character separates arguments for a console app?

Appendix, Answers to the Test Your Knowledge Questions, is available to download from a link in the README on the GitHub repository:

Exercise 2.2 – Test your knowledge of number types

What type would you choose for the following “numbers”?

  • A person’s telephone number
  • A person’s height
  • A person’s age
  • A person’s salary
  • A book’s ISBN
  • A book’s price
  • A book’s shipping weight
  • A country’s population
  • The number of stars in the universe
  • The number of employees in each of the small or medium businesses in the UK (up to about 50,000 employees per business)

Exercise 2.3 – Practice number sizes and ranges

In the Chapter02 solution, create a console app project named Ch02Ex03Numbers that outputs the number of bytes in memory that each of the following number types uses and the minimum and maximum values they can have: sbyte, byte, short, ushort, int, uint, long, ulong, Int128, UInt128, Half, float, double, and decimal.

The result of running your console app should look something like Figure 2.14:

Figure 2.14: The result of outputting number type sizes

Code solutions for all exercises are available to download or clone from the GitHub repository at the following link:

Exercise 2.4 – Explore topics

Use the links on the following page to learn more details about the topics covered in this chapter:

Exercise 2.5 – Explore Spectre

No, not the villainous organization from the James Bond films! Spectre is a package that enhances console apps. You can read about it at the following link: